天天看點

SpringCloud入門

1.關于SpringCloud中各個微服務之間調用的URL寫死問題

  ----通過SpringCloud服務注冊、發現的機制來完成

2.微服務調用的原理圖

SpringCloud入門

由上圖可以看出:

1、 服務提供者将服務注冊到注冊中心

2、 服務消費者通過注冊中心查找服務

3、 查找到服務後進行調用(這裡就是無需寫死url的解決方案)

4、 服務的消費者與服務注冊中心保持心跳連接配接,一旦服務提供者的位址發生變更時,注冊中心會通知服務消費者

3. 注冊中心Eureka

SpringCloud提供了多種注冊中心的支援,如:Eureka、ZooKeeper等。官方推薦使用Eureka。

SpringCloud入門

 原理:

SpringCloud入門

Eureka包含兩個元件:Eureka Server和Eureka Client。

 Eureka Server提供服務注冊服務,各個節點啟動後,會在Eureka Server中進行注冊,這樣EurekaServer中的服務系統資料庫中将會存儲所有可用服務節點的資訊,服務節點的資訊可以在界面中直覺的看到。

 Eureka Client是一個java用戶端,用于簡化與Eureka Server的互動,用戶端同時也就别一個内置的、使用輪詢(round-robin)負載算法的負載均衡器。

 在應用啟動後,将會向Eureka Server發送心跳,預設周期為30秒,如果Eureka Server在多個心跳周期内沒有接收到某個節點的心跳,Eureka Server将會從服務系統資料庫中把這個服務節點移除(預設90秒)。

 Eureka Server之間通過複制的方式完成資料的同步,Eureka還提供了用戶端緩存機制,即使所有的Eureka Server都挂掉,用戶端依然可以利用緩存中的資訊消費其他服務的API。綜上,Eureka通過心跳檢查、用戶端緩存等機制,確定了系統的高可用性、靈活性和可伸縮性。