springcloud(十三):Ribbon客户端负载均衡实例

一、采用默认的负载均衡策略:RoundRobinRule 轮询策略

1.修改提供者原的控制类

在之前的eureka-client-provider项目的CenterController.java中加入如下代码

  private Logger logger= LoggerFactory.getLogger(CenterController.class);

    @RequestMapping("/ribbon.do")
    public String ribbonTest(@RequestParam("count") Integer count){
        logger.info("provider>>> "+count+" <<<eureka-client-provider-8762");
        return "provider的ribbon测试";
    }

2.重新创建一个提供者客户端项目eureka-client-provider-second

编写之后在创建一个和eureka-client-provider一模一样的提供者项目,除了重新定义一个8769端口号之外,其他代码全部一样;

3.在eureka-client-consumer项目

的pom.xml中添加如下依赖

 <!--@ribbon-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-ribbon</artifactId>
        </dependency>

4.修改eureka-client-consumer项目的feign接口

在ClassesFeign.java文件中添加如下内容

@RequestMapping("/ribbon.do")
public String ribbonTest(@RequestParam("count")int count);

5.修改eureka-client-consumer项目的controller类

在ClassesController.java中添加如下内容

 @RequestMapping("/ribbontest.do")
    public String ribbonTest(){
        for(Integer i=0;i<10;i++){
            //多次调用provider服务
            classesFeign.ribbonTest(i);
        }
        return "ribbon负载";
    }

6. 按照以下方式启动项目

eureka-server、eureka-client-provider、eureka-client-provider-second、eureka-client-consumer

7.访问地址

 

 二、采用随机的负载均衡策略:RandomRule 随机策略

1.在eureka-client-consumer项目中添加如下属性配置

#设置负载均衡策略为随机分配RandomRule,如果不设置以下属性则默认值为RoundRobinRule 轮询策略
client-school-provider.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule

2.重启项目在运行

此帖子为原创

作者:红酒人生  

联系方式:微信/QQ:964918306

转载请注明出处:https://www.cnblogs.com/holly8/p/11055177.html

原文地址:https://www.cnblogs.com/holly8/p/11055177.html