阶段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次调用



第一次的地址

第二次的地址

这就是轮询的负载均衡



 

posted @ 2019-10-12 23:24  高山-景行  阅读(211)  评论(0编辑  收藏  举报