上一篇中咱們理解了微服務的基本概念 && Eureka-Server集羣的搭建. 固然,有了服務註冊中心還遠遠不夠,咱們還得有服務消費者,這樣服務註冊纔有存在的價值,在Spring-Cloud中咱們稱消費者爲Eureka-Client.好了,讓咱們愉快的擼起代碼~java
建立Spring項目 web
填寫maven座標 spring
注意:由於咱們是Eureka-Client端,勾選Discovery(詞典中語義爲:發現,發覺) app
咱們建立好項目以後由於要以web形式運行,因此咱們還須要添加spring-boot-web包依賴負載均衡
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
複製代碼
@SpringBootApplication
@EnableDiscoveryClient
public class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientApplication.class, args);
}
}
複製代碼
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/,http://localhost:8763/eureka/
server:
port: 8090
spring:
application:
name: order
複製代碼
啓動項目觀察日誌, 204表示已經註冊: maven
訪問註冊中心localhost:8761, 發現訂單服務已經註冊上來 spring-boot
- 在沒有註冊中心的時候咱們服務A調用服務B須要直接鏈接Ip去調用或者經過Proxy, 可是咱們的服務會不斷的擴容 && 縮減或者服務下線(好比圖中灰色的服務B),這時候就須要咱們手動去擴縮絨或者下線服務
- 有了註冊中心以後咱們的調用的關係發生了轉變, 圖中紅色箭頭,服務B只須要將本身 己註冊到服務中心,而且有心跳檢測,當服務A須要調用服務B時只須要從註冊中心去查找便可, 這樣服務B的擴縮容 || 服務下線,註冊中心會感知到,這樣服務A調用服務B的時候就會只從存活的服務B中查找而且調用
- 當服務A拿到了服務B可用列表以後,就會採用一個負載均衡策略進行查找服務調用,在服務發現中通常有兩種機制,1) 客戶端發現,Spring-Cloud Ribbon 就是採用客戶端發現機制,後續在Spring-Cloud Ribbon文章中會說到 2)服務端發現, 好比咱們的代理Proxy, Nginx...
- Eureka-Server && Eureka-Client之間存在心跳檢查來觀察Eureka-Client是否還存活
- 註冊中心Server每每是服務中比較重要的部分, 因此咱們須要高可用, 生產儘可能兩臺以上
- Spring-Cloud Eureka 是客戶端發現機制, 服務端發現機制有Nginx, Zookeeper等
好了, Spring Cloud 註冊中心咱們已經完成,下一節來學習Spring-Cloud Feign微服務