一、采用默认的负载均衡策略: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.重启项目在运行