SpringCloud核心組件
Eureka:注冊服務中心
Feign: 任務調度,執行http請求
Ribbon: 負載均衡 根據本地注冊表選擇合適機器,讓Feign調用
Zuul / SpringCloud Gatway : 網關 網關內部配置好接口地址,外部用戶只需訪問網關,對系統內部具體接口地址不暴露。 其他作用: 灰度發布,統一熔斷,統一限流, 請求授權認證
核心架構原理
網關作用: 灰度發布, 統一熔斷, 統一限流, 請求授權認證
Eureka服務注冊中心原理圖
服務變更后先更新服務注冊表,
再更新ReadWrite緩存,
后台有一個線程定時將ReadWrite緩存同步到ReadOnly緩存,
所有服務都定時主動去ReadOnly緩存拉取服務注冊表到本地,
整個過程延遲很高,當一個服務發生新的變動到其他所有服務本地注冊表發現變動會有很長時間(一波三折)
Eureka集群部署
peer-to-peer 模式 所有機器地位平等
每台機器服務變化會通知所有機器
Eureka采用 AP原則保證高可用性, 一旦一個機器還沒來得及把最新變化同步出去就掛了,其他機器也是可用的,即時並沒感知到新的變化,直到心跳等機制 重新感知變化並同步到每台機器。