Spring Cloud Ribbon Client

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

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

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

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

     

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

  1.  
    ServiceInstance serviceInstance = this.loadBalancerClient.choose("microservice-provider-user");
  2.  
    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这个服务是轮询的。

猜你喜欢

转载自www.cnblogs.com/jtlgb/p/9333952.html