Ribbon作為後端負載均衡器,比Nginx更注重的是承擔併發而不是請求分發,可以直接感知後臺動態變化來指定分發策略。
需要JAVA Spring Cloud大型企業分散式微服務雲構建的B2B2C電子商務平臺原始碼請加企鵝求求 :二一四七七七五六三三
它一共提供了7種負載均衡策略:
這裡以隨機訪問策略來舉個例子:
1、ribbon配置檔案新增:
service-B.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule
其中service-B是我註冊到Eureka的serviceID,一共起了3個示例。
2、main類註冊:
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
@Bean
public IRule ribbonRule() {
return new RandomRule();//這裡配置策略,和配置檔案對應
}
複製程式碼
一定記得加第二個註冊,很多文章沒有。裡面配具體的策略。
3、Controller:
@RestController
public class ConsumerController {
@Autowired
private RestTemplate restTemplate;
@Autowired
private LoadBalancerClient loadBalancerClient;
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String add(@RequestParam Integer a,@RequestParam Integer b) {
this.loadBalancerClient.choose("service-B");//隨機訪問策略
return restTemplate.getForEntity("http://service-B/add?a="+a+"&b="+b, String.class).getBody();
}
}
複製程式碼