SpringCloud(五)负载均衡之随机策略

SpringCloud默认是轮循策略,就是你一个就又到我一个。
首先要写两个提供者:我之前的博客有如何写一个spring cloud的提供者,如何写一个提供者
两个提供者的端口号不能一样

第一个提供者里写一个方法:在UserController控制层添加一个计数方法,这个是基于我上一篇:Spring Cloud入门教程(二):如何在服务机注册一个提供者

    @RequestMapping(value = "/getCount",method = RequestMethod.GET)
 public String getCount(@RequestParam("count") int count){
       System.out.println("提供者1:"+count);
    return "";
 }

第一个提供者yml文件:

      server:
  port: 5100
spring:
  application:
     name: QQ-user-provider
eureka:
  client:
    service-url:
      defaultZone: http://root:111111@localhost:5000/eureka/     

第二个提供者里也写一个方法:在UserController控制层添加一个计数方法,

@RequestMapping(value = "/getCount",method = RequestMethod.GET)
public String getCount(@RequestParam("count") int count){
    System.out.println("提供者2:"+count);
    return "";
}           

第二个提供者的yml文件:

     server:
  port: 5120
spring:
  application:
     name: QQ-user-provider
eureka:
  client:
    service-url:
      defaultZone: http://root:111111@localhost:5000/eureka/

在消费者的yml文件添加:

   QQ-user-provider:  #这个是提供者的名称,因为我两个提供者的名称都一样,所以配置一个就好了,如果两个提供者的名称都不一样的话,就要配置两个了
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #随机策略

在消费者的UserClientFeign接口里也要加一个计数方法接口:

    @RequestMapping(value = "/getCount",method = RequestMethod.GET)
public String getCount(@RequestParam("count") int count);

在controller层里写一个访问的方法:

     @RequestMapping("/getCount")
   public String getCount(){
        for(int i=1;i<20;i++){
            userClientFeign.getCount(i);
        }
        return "";
   }

在浏览器访问控制层的计数方法:
在这里插入图片描述
在控制台可以看到消费者是随机的调用两个提供者
在这里插入图片描述
在这里插入图片描述
上一篇:SpringCloud(四)服务中心配置集群
下一篇:SpringCloud(六)网关代理

猜你喜欢

转载自blog.csdn.net/weixin_43844158/article/details/86521292
今日推荐