微服务项目:尚融宝(33)(服务调用(1))

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 微服务项目:尚融宝(33)(服务调用(1))

认清现实,放弃幻想,准备斗争


一、运行Nacos注册中心



1、Nacos下载和安装


下载地址:

https://github.com/alibaba/nacos/releases


2、Windows启动Nacos


参考:

https://github.com/alibaba/nacos


解压:将下载的压缩包解压

启动:startup.cmd -m standalone


3、访问


http://localhost:8848/nacos

用户名密码:nacos/nacos


二、服务发现



1、引入依赖


service-base模块中配置Nacos客户端依赖


<!--服务发现-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>



2、添加服务配置信息


在需要注册到注册中心的微服务放入配置文件中添加配置


#spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # nacos服务地址


每个服务模块都要配置

 

3、启动微服务


启动已注册的微服务,查看 “服务管理 => 服务列表”,可就以看到已注册的微服务


750b2c6cd1974f07b1d3f06c1d2a89b4.png


需求



发送短信时校验手机号是否注册


一、校验手机号是否注册



1、UserInfoController


service-core中添加controller方法:将网络图片保存到OSS服务器中


@ApiOperation("校验手机号是否注册")
@GetMapping("/checkMobile/{mobile}")
public boolean checkMobile(@PathVariable String mobile){
    return userInfoService.checkMobile(mobile);
}



2、UserInfoService


接口:


boolean checkMobile(String mobile);


实现:


@Override
public boolean checkMobile(String mobile) {
    QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("mobile", mobile);
    Integer count = baseMapper.selectCount(queryWrapper);
    return count > 0;
}



三、接口的远程调用



service-sms中添加远程调用


1、CoreUserInfoClient


接口:


@FeignClient(value = "service-core")
public interface CoreUserInfoClient {
    @GetMapping("/api/core/userInfo/checkMobile/{mobile}")
    boolean checkMobile(@PathVariable String mobile);
}



2、ApiSmsController


引入client


1. @Resource
2. private CoreUserInfoClient coreUserInfoClient;


在获取验证码方法中调用远程方法校验手机号是否存在


//手机号是否注册
boolean result = coreUserInfoClient.checkMobile(mobile);
System.out.println("result = " + result);
Assert.isTrue(result == false, ResponseEnum.MOBILE_EXIST_ERROR);
//生成验证码
.....


四、超时控制



openfeign默认的连接超时时间为1秒,测试时很可能会出现远程调用超时错误。

可以在配置文件中添加如下配置:


feign:
  client:
    config:
      default:
        connectTimeout: 10000 #连接超时配置
        readTimeout: 600000 #执行超时配置



相关文章
|
2月前
|
消息中间件 监控 开发工具
微服务(三)-实现自动刷新配置(不重启项目情况下)
微服务(三)-实现自动刷新配置(不重启项目情况下)
|
6月前
|
微服务
jeecg微服务项目调用接口报错Token验证失效的解决方法
jeecg微服务项目调用接口报错Token验证失效的解决方法
|
4月前
|
负载均衡 Java 开发者
如何在Spring Boot项目中实现微服务架构?
如何在Spring Boot项目中实现微服务架构?
|
4月前
|
消息中间件 负载均衡 Java
最容易学会的springboot gralde spring cloud 多模块微服务项目
最容易学会的springboot gralde spring cloud 多模块微服务项目
|
6月前
|
监控 数据可视化 安全
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
环境实时数据、动态监测报警,实时监控施工环境状态,有针对性地预防施工过程中的环境污染问题,打造文明生态施工,创造绿色的生态环境。
62 0
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
|
6月前
|
Java Maven 微服务
微服务项目-将普通文件夹设为模块与添加services窗口
微服务项目-将普通文件夹设为模块与添加services窗口
37 0
|
6月前
|
Cloud Native Dubbo Java
如何确定微服务项目中Spring Boot、Spring Cloud、Spring Cloud Alibaba三者之间的版本
如何确定微服务项目中Spring Boot、Spring Cloud、Spring Cloud Alibaba三者之间的版本
136 0
|
12天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
57 6
|
12天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
29 1
|
2月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
下一篇
无影云桌面