学习Spring Cloud第九课(使用配置文件自定义Ribbon Client)

         上节课我们一起学习了使用代码来自定义Ribbon Client,这节课我们一起来学习下如何使用配置文件自定义Ribbon Client。

          首先,我们还是先从springcloud官方文档中找下相关说明,如下图所示,可以看到从1.2.0版本(也就是从Spriing Cloud Camden)之后,新增了这个通过配置文件来配置负载均衡的功能。


          从上图可以看到负载均衡有很多种,我们还是玩最简单的IRule,我们看下IRule的实现类有哪些,如下图所示,我们使用RandomRule为例来说明。


         我们在movie工程的application.yml文件中添加如下配置(可以看到microservice-provider-user配置了随机策略):

microservice-provider-user:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
     

             我们需要把上节课配置Ribbon的那些代码都去掉,避免影响我们的配置文件自定义Ribbon Client的效果。为了方便看效果,我们在MovieController的findById方法中添加了两行代码:

ServiceInstance serviceInstance = this.loadBalancerClient.choose("microservice-provider-user");
        System.out.println("=======:"+serviceInstance.getHost()+":"+serviceInstance.getPort()+":"+serviceInstance.getServiceId());


       下面我们依次启动Eureaka、端口为7900和7901的microservice-provider-user工程以及movie工程。然后在地址栏输入:http://localhost:8010/movie/1多刷新几次


         我们看控制台输出的日志,如下图所示:可以看到7900和7901的访问是随机的。


          下面我们修改movie工程的端口为7902,application的name设置为microservice-provider-user2,如下图所示


        启动端口号为7902的movie工程,之后再将端口修改为7903,再启动movie工程。启动完后,我们访问地址:http://localhost:8761来看看是否都注册到eureka上了,如下图所示。


         下面我们来访问地址http://localhost:8010/test,然后查看控制台日志,如下图所示,可以看到microservice-provider-user这个服务是随机的,microservice-provider-user2这个服务是轮询的。



猜你喜欢

转载自blog.csdn.net/u012453843/article/details/78697428