Ribbon+Nacos+RestTemplate使用记录
今天使用Ribbon+Nacos+RestTemplate测试负载均衡 然后依然是踩了好多坑,因为是小白吧,记录一下。
误区
最开始,我以为服务注册中心那边是区分服务提供者和服务消费者的,比如说消费者叫订阅,提供者叫注册,后来才知道服务中心并不区分什么消费者和提供者,比如服务1和服务2,都是以相同的方式注册,他们甚至可以互为消费者。
正文
项目结构
下图是我的代码结构,有订单和商品两个服务,其中,我用订单做消费者,商品做服务提供者:
注册到注册中心
在消费者和提供者的pom文件中,都要引入Nacos依赖:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.0.RELEASE</version> </dependency>
然后配置文件中,都要配置注册中心地址:
cloud: nacos: discovery: server-addr: localhost:8848
消费者配置负载均衡
在order中引入依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> <version>2.2.6.RELEASE</version> </dependency>
声明RestTemplate
controller中调用商品服务: 商品服务先用8081端口启动,然后再用8086端口启动,多次请求时,就会实现负载均衡
小技巧:
idea中设置服务启动多个
低能坑
我开始把商品的controller放在和启动类不同的包里,这个之前的文章里说过,就会报404,然后我放在了启动类的包下,可是订单的又报错。后来发现,订单是从商品复制过去的代码,订单的包名和商品的一样,导致冲突,就出现移动订单的包,商品的包就变位置的诡异现象,多蠢!
下一篇:
微服务中服务之间的调用feigin的使用