Spring Cloud Eureka 5 (服務發現與消費-簡單的robbin使用)
通過上述介紹,我們已經有了服務註冊中心和服務提供者
下面我們來嘗試構建一個服務的消費者
它要完成兩個功能,發現服務和消費服務,其中發現服務由eureka客戶端完成,消費服務由ribbon完成。
ribbon在eureka服務發現的基礎上,實現了一套對服務實例的選擇策略,從而實現對服務的消費。
在此之前我們需要做一些準備
啟動之前的服務註冊中心,為hello-service添加一個簡單的接口,同時在創建一個hello-service2的項目並為之添加與hello-service相同的配置
在hello-service中新建一個HelloController的類
啟動項目測試下接口
安裝此配置創建hello-service2啟動項目測試接口
這裏為了區分將返回值寫為hello2同時配置文件中的端口改為8081
至此準備工作完成我們也可以再次看下註冊中心的情況
至此兩個hello-service已經註冊進來了。
我們正式開始構建服務的消費者
新建一個spring boot項目命名為ribbon-consumer
較之之前的hello-service我們加入了spring-cloud-starter-ribbon依賴
為服務主類加入@EnableDiscoveryClient註解
同時在該主類中創建RestTemplate的spring Bean實例並通過@LoadBalanced註解開啟客戶端的負載均衡
創建ConsumerController類並實現一個簡單的/robbin-consumer的接口
application.properties做如下配置
spring.application.name=ribbon-consumer
server.port=9000
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka
啟動項目
訪問測
從測試結果顯示ribbon-consumer分別在hello-service和hello-service2兩個實例上做輪詢訪問
註:
由於各個服務間會相互調用所以服務的提供者和消費者也是相對的概念。
Spring Cloud Eureka 5 (服務發現與消費-簡單的robbin使用)