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(六)网关代理