1. 程式人生 > >SpringCloud微服務學習3-服務消費者ribbon

SpringCloud微服務學習3-服務消費者ribbon

    我們上一節, 已經學習瞭如何使用LoadBanncerClient來獲取服務的具體資訊, 然後根據獲取具體的資訊呼叫服務的提供的介面,這樣需要我們去手動拼接, 這樣比較繁瑣,對於開發人員來說非常的不友好, 所以今天我們來看一下springCloud對於對於客戶端的負載均衡的工具包ribbon。

Spring Cloud Ribbon

Spring Cloud Ribbon是基於Netflix Ribbon實現的一套客戶端負載均衡的工具。它是一個基於HTTP和TCP的客戶端負載均衡器。它可以通過在客戶端中配置ribbonServerList來設定服務端列表去輪詢訪問以達到均衡負載的作用。

當Ribbon與Eureka聯合使用時,ribbonServerList會被DiscoveryEnabledNIWSServerList重寫,擴充套件成從Eureka註冊中心中獲取服務例項列表。同時它也會用NIWSDiscoveryPing來取代IPing,它將職責委託給Eureka來確定服務端是否已經啟動。

試一試

首先,我們要在消費端引入ribbon的依賴

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

然後, 啟動類要注入一個bean

@bean
@LoadBalanced
RestTemplate restTemplate(){return new RestTemplate();}

和基礎消費的方式相比, 我們這裡多了一個註解@LoadBalanced, 這個註解的作用就是對請求的Url轉換到具體的服務例項ServiceInstance上, 就是基礎消費者中的

這樣我們再呼叫其他服務的時候就不用使用LoadBanncerClient來獲取服務資訊, 可以直接使用服務的名稱(其他服務配置的spring.application.name值)

這裡我是在服務命為eureka-client1的服務裡面添加了介面

這樣, 我們在呼叫/test介面的時候, 就會看到這個

好了, 基礎消費者就此結束, 請等待下一篇文章:SpringCloud微服務學習4-eureka的高可用

有問題歡迎下方留言,或者添加個人QQ 3024195466