springCloud(7):Ribbon實現客戶端側負載均衡-消費者整合Ribbon
阿新 • • 發佈:2017-07-13
spring cloud ribbon 消費者整合ribbon
一、簡介
Ribbon是Netfix發布的負載均衡器,它有助於控制HTTP和TCP客戶端的行為。為Ribbon配置服務提供者地址列表後,Ribbon就可基於某種負載均衡算法,自動地幫助服務消費者去請求。Ribbon默認為我們提供了很多的負載均衡算法,例如輪詢、隨機等,當然,也可以為Ribbon實現自定義的負載均衡算法。
在Spring Cloud中,當Ribbon與Eureka配合使用時,Ribbon可自動從Eureka Server獲取服務提供者地址列表,並基於負載均衡算法,請求其中一個服務提供者實例。
二、為服務消費者整合Ribbon
2.1、引入ribbon依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> </dependency>
[email protected](Application)
@Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); }
2.3、調用其它微服務
@GetMapping("/user/{id}") public User findById(@PathVariable Long id) throws Exception { ServiceInstance serviceInstance = this.loadBalancerClient.choose("spring-ribbon-eureka-client2"); // 打印當前選擇的是哪個節點 System.out.println("serviceId : " + serviceInstance.getServiceId()); System.out.println("hoost : " + serviceInstance.getHost()); System.out.println("port : " + serviceInstance.getPort()); System.out.println("============================================================"); if (null == id) { return null; } return this.restTemplate.getForObject("http://spring-ribbon-eureka-client2/" + id, User.class); }
說明:
1、spring-ribbon-eureka-client2是服務提供者註冊到Eureka Server上的應用名稱
2、本次測試開啟了兩個spring-ribbon-eureka-client2服務提供者,一個端口是8080,一個是8083
2.4、測試
訪問:http://192.168.1.83:8082/user/1
效果:
本文出自 “我愛大金子” 博客,請務必保留此出處http://1754966750.blog.51cto.com/7455444/1947059
springCloud(7):Ribbon實現客戶端側負載均衡-消費者整合Ribbon