被集成在Spring Cloud Alibaba中
导入nacos表单数据
修改nacos\conf\application.properties
配置文件
下载 在bin中打开cmd输入 startup.cmd -m standalone
导入pom文件mod:
注册与订阅pom同
<!--nacos 服务注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
远程连接pom文件mod:
<!--openFeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--负载均衡器-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
===配置后x y互为服务于订阅===
服务中心注册发现配置yml文件:
spring:
application:
name: trade-service
cloud:
nacos:
discovery: #服务注册
server-addr: localhost:8848 #(nacos端口号8848)
配置注册到nacos中实现远程调用接口
x y 都实现nacos注册发现 x调用y时y会发送心跳到注册中心表明存活与否 若y一定时间未发送心跳心跳停止注册中心会将变更推送至调用y服务的x 排除心跳停止的服务
配置后访问地址: http://localhost:8848/nacos
openfeign远程调用:
pom文件mod:
<!--openFeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--负载均衡器-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
---->>>启动类上添加注解
@EnableFeignClients(basePackages = "com.hmall.api.client")
声明调用接口 (拆分出单独模块A 书写配置可在之后远程调用是放入公共配置 如放入token中获取的用户id..传递给其他微服务模块) 所在包
配置单独远程调用模块书写:
config中书写配置
client中书写要调用远程接口并拿入所需类 打包成mod到其他服务项目 故可删除重复类报 (不需要方法体 补全共用uri 提取需要使用的接口)
添加@FeignClients注解 value : (nacos注册中心调用服务名/声明服务名称)
完成后在需要调用远程服务的地方注入使用
=====(config包中配置:
@Configuration @Slf4j public class DefaultFeignConfig { //log日志配置 @Bean public Logger.Level level() { return Logger.Level.NONE; } //配置远程调用token中如用户id传递到其他调用微服务模块 @Bean public RequestInterceptor requestInterceptor() { //lambok表达式 new RequestInterceptor return template -> { Long user = UserContext.getUser(); log.info("openfeign调用前,用户id:==={}", user); if (user == null) { return; } template.header("user-info", user.toString()); }; } }
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。