Spring Cloud服务消费(Ribbon)
Spring Cloud Ribbon是什么
是基于Netflix Ribbon实现的一套客户端负载均衡工具,是一个基于HTTP和TCP的客户端负载均衡器。它可以通过在客户端中配置ribbonServerList来设置服务端列表去轮询访问达到负载均衡的作用。
具体操作
我们将继续利用之前的eureka-server
作为服务注册中心,eureka-client
作为服务提供者。还是跟之前一样,使用Spring Initializer来新建Spring Boot应用。
修改应用主类
为RestTemplate
增加@LoadBalanced
注解:
1 |
|
修改Controller
去掉原来通过LoadBalancerClient
选取实例和拼接URL的步骤,直接通过RestTemplate来发起请求;
1 |
|
有什么不同呢?
可以看到,我们去除了与LoadBalancerClient
相关的逻辑之外,对于RestTemplate
的使用,我们的第一个url参数有一些特别,直接采用了服务名的方式组成。
这里的实现细节是Ribbon实现了一个拦截器,能够在进行实际调用的同时,自动选取服务实例。并将实际请求的IP地址和端口替换成服务名,从而完成服务接口的调用。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!