Ribbon是Netflix公司提供的一个在Spring Cloud中免费使用的客户端负载均衡器组件。
它在集群中为各个客户端之间的通信提供支持,可以控制、管理HTTP和TCP客户端的负载均衡。
Ribbon从Eureka注册获取访问服务提供者地址列表后,就可基于某种负载均衡算法,自动地帮助服务消费者去请求。
如图所示,展示了Ribbon获取服务清单并实现请求的流程。
Ribbon提供了一系列完善的配置选项,如连接超时、重试算法等。Ribbon还内置了可插拔、可定制的负载均衡组件。
在第9章中我们使用了RestTemplate 进行服务之间的访问,并且在配置的Bean上使用了@LoadBalanced注解,其实这时候RestTemplate 默认使用了Ribbon的负载均衡策略。
Ribbon除了和RestTemplate结合实现客户端负载均衡之外,同样也被集成到了Feign中,当使用@FeignClient的时候,Feign也默认使用了Ribbon进行网络请求的负载均衡。
下面我们通过一个实例来看一下Ribbon负载均衡的使用。我们还是使用订单服务 调用 商品服务来测试和查看Ribbon的负载均衡。
首先我们启动一个Eureka注册中心和一个订单服务,然后配置两个名字一样但是端口号不一样(一个是7001,另外一个是7003)的商品服务。
如图所示:
然后在 GoodsController中添加日志输出,用来确定调用的接口,如程序清单12-1所示。
然后启动商品服务,并在浏览器中访问两次订单接口,共需要查询6个商品,所以需要调用6次商品服务,然后在控制台中可以看到商品服务调用情况是轮询调用,而不是所有接口都在一个服务中调用,如图所示。
因此,我们了解到Ribbon的负载均衡策略默认为轮询调用服务清单中的服务。
标签:负载,调用,服务,介绍,均衡,使用,Ribbon From: https://www.cnblogs.com/cnetsa/p/16982021.html