SpringCloud | 第三篇:负载均衡(Ribbon)

一、Ribbon简介

Netfilx发布的负载均衡器,是一个基于http、tcp的客户端负载均衡工具,具有控制http、tcp客户端的行为,为ribbon配置服务提供者的地址后,ribbon就可以经过springCloud的封装实心客户端负载均衡的服务调用。

二、准备工作

我们继续使用上一篇的工程,我们给Mall_WechatService服务分别分配不同的端口多次启动。如何多次启动?

IDEA打开工程,点击Edit Configuations


点击进去之后,我们想让哪个工程多次启动,点击左边工程名称,然后把Single instance only勾选给去掉。


现在我们更改Mall_WechatService的运行端口于8010和8020并分别启动。

三:Feign默认实现的负载均衡

由于Feign默认实现了Ribbon,所以我们在服务提供端(Mall_WechatService)返回值里面加入运行端口的信息。直接运行上一节当中的Feign调用服务的代码,打开浏览器,输入http://localhost:8011/sayFeignHello,可以看到控制台打印如下的信息,可以看到返回的端口信息交替显示。


四:Ribbon的配置

上面我们看到端口号交替显示出来,是因为Ribbon默认的负载均衡策略是轮询,Ribbon一共有七种负载均衡的策略:


我们可以使用非常简单的配置来修改Ribbon负载均衡的策略,官方文档这么说的:


因此,我们只需要在我们的服务消费者的application.yml中加入下面的配置,就可以把负载均衡的策略修改为随机。

mall-wechatservice:
    ribbon:
       NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

我们运行3个Mall_WechatService实例分别于8010、8020和8030端口,运行服务调用程序Mall_ManagerService,打开浏览器,输入http://localhost:8011/sayFeignHello,可以看到控制台打印如下的信息,可以看到返回的端口信息随机显示。



猜你喜欢

转载自blog.csdn.net/qq_38455201/article/details/80781519