阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_06-Feign远程调用-Ribbon测试
2.1.2 Ribbon测试
Spring Cloud引入Ribbon配合 restTemplate 实现客户端负载均衡。Java中远程调用的技术有很多,如:
webservice、socket、rmi、Apache HttpClient、OkHttp等,互联网项目使用基于http的客户端较多,本项目使
用OkHttp。
现在要实现课程去服务去调用cms服务。调用放course服务就是客户端
在course服务里面 采用客户端负载均衡的方式来调用cms。
首先加入ribbon的包和okhttp的引用
ribbon要发起http的远程调用。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring‐cloud‐starter‐ribbon</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
引入后刷新包
配置ribbon请求的参数
cms启动多个实例
主要端口的环境变量
首先启动cms
然后再关闭,这里就有了cms的applicaiton了
复制一个
改个名字 配置上环境变量
点击右下角的Apply
把cms01拖进来到xc_edu的文件夹
也拖进来。这样这两个启动脚本就做好了。
启动一个eureka01。然后启动cms01
启动cms02
远程调用
curse服务启动类里面定义 一个Bean restTemplate方法返回RestTemplate。这样restTemplate在其他类里面就可以用@Autowired注入
新建测试类。复制上面的TestDao类
这是eureka中的服务列表。
定义serviceId就是 eureka中注册的服务名
ribbon还布局负载均衡的功能,要想让他具备负载均衡 就必须在RestTemplate上注解。开启负载均衡
启动服务测试,这样就拿到了数据
负载均衡的测试
添加@LoadBalanced注解后,restTemplate会走LoadBalancerInterceptor拦截器,此拦截器中会通过
RibbonLoadBalancerClient查询服务地址,可以在此类打断点观察每次调用的服务地址和端口,两个cms服务会轮
流被调用。
循环10次调用
第一次的地址
第二次的地址
这就是轮询的负载均衡