远程调用:
一、先在所有微服务的yml文件里加以下配置,即可把服务放入注册中心
cloud:
#有nacos配置中心就必须写微服务名称 application:name: XXX
nacos:
server-addr: localhost:8848
二、
在A服务写A方法
在B服务 1.启动类加@EnableFeignClients 作用:扫描@FeignClient
2.写远程调用接口加@FeignClient(value="A服务注册中心的名字") 作用:得到A服务的 ip 和端口号
3.写接口方法 用@xxMapping(x/x/x/x/)标明A方法的资源全路径
实际开发直接粘贴A方法除方法体外的所有部分,再修改mapping注解的资源全路径即可 三、
以后B服务的哪个类需要用到A方法 就用@Autowired装配一下B服务的接口 然后接口.接口方法即可
四、如果这个远程调用接口想启用熔断降级快速响应失败?
1.在yml文件加此配置
#启用feign远程调用对sentinel熔断降级的支持
feign:
sentinel:
enabled: true
2.还需要在@FeignClient注解指定熔断降级的类
//根据core在注册中心的微服务名可以得到ip+端口号
//fallback 指定熔断降级的类
@FeignClient(value = "service-core",fallback = CoreClientFallback.class)
public interface CoreClient {
@ApiOperation("发送短信前判断手机号是否已被注册")
@GetMapping("/api/core/userInfo/isUsed/{mobile}") //拼接远程方法的全路径
public ResponseVo isUsed(@PathVariable String mobile);
}
3.熔断类实现远程调用接口
@Service
public class CoreClientFallback implements CoreClient