Eureka簡介及原理
Eureka是Netflix開發的服務發現元件,本身是一個基於REST的服務。Spring Cloud將它整合在其子專案spring-cloud-netflix中,以實現Spring Cloud的服務發現功能。目前Eureka 專案相當活躍,程式碼更新相當頻繁,目前最新的版本是1.5.5。Eureka 2.0也在緊鑼密鼓地開發中,2.0將會帶來更強的功能和更好的擴充套件性,但是由於還沒有Release,故而不作討論。
本文講解的Spring Cloud Camden SR1所使用的Eureka版本是1.4.11,還是比較新的。同時有了Eureka 1.x的基礎,未來上手Eureka 2.x也會比較容易。
Region、Zone解析
Eureka的官方文件對regin、zone幾乎沒有提及,由於概念抽象,新手很難理解。因此,在分析Eureka原理之前,我們先來了解一下region、zone、Eureka叢集三者的關係,如圖4-2。
圖4-2 region、zone、Eureka叢集之間的關係
region和zone(或者Availability Zone)均是AWS的概念。在非AWS環境下,我們可以簡單地將region理解為Eureka叢集,zone理解成機房。這樣圖4-2就很好理解了——一個Eureka叢集被部署在了zone1機房和zone2機房中。
Eureka架構
圖4-3 Eureka架構圖
圖4-3是來自Eureka官方的架構圖,大致描述了Eureka叢集的工作過程。圖中包含的元件非常多,可能比較難以理解,我們用通俗易懂的語言解釋一下:
- Application Service 相當於本書中的服務提供者,Application Client相當於本書中的服務消費者;
- Make Remote Call,可以簡單理解為呼叫RESTful API;
- us-east-1c、us-east-1d等都是zone,它們都屬於us-east-1這個region;
由圖可知,Eureka包含兩個元件:Eureka Server 和 Eureka Client,它們的作用如下:
- Eureka Client是一個Java客戶端,用於簡化與Eureka Server的互動;
- Eureka Server提供服務發現的能力,各個微服務啟動時,會通過Eureka Client向Eureka Server進行註冊自己的資訊(例如網路資訊),Eureka Server會儲存該服務的資訊;
- 微服務啟動後,會週期性地向Eureka Server傳送心跳(預設週期為30秒)以續約自己的資訊。如果Eureka Server在一定時間內沒有接收到某個微服務節點的心跳,Eureka Server將會登出該微服務節點(預設90秒);
- 每個Eureka Server同時也是Eureka Client,多個Eureka Server之間通過複製的方式完成服務登錄檔的同步;
- Eureka Client會快取Eureka Server中的資訊。即使所有的Eureka Server節點都宕掉,服務消費者依然可以使用快取中的資訊找到服務提供者。
綜上,Eureka通過心跳檢測、健康檢查和客戶端快取等機制,提高了系統的靈活性、可伸縮性和可用性。
相關推薦
Spring Cloud第一篇 Eureka簡介及原理
Eureka是Netflix開發的服務發現元件,本身是一個基於REST的服務。Spring Cloud將它整合在其子專案spring-cloud-netflix中,以實現Spring Cloud的服務發現功能。目前Eureka 專案相當活躍,程式碼更新相當頻繁,目前最新的版本是1.5.5
Eureka簡介及原理
Eureka是Netflix開發的服務發現元件,本身是一個基於REST的服務。Spring Cloud將它整合在其子專案spring-cloud-netflix中,以實現Spring Cloud的服務發現功能。目前Eureka 專案相當活躍,程式碼更新相當頻繁,目前最新的版本是1.5.5。Eureka 2.
001.Docker簡介及原理
一 簡介 Docker最初是dotCloud公司的一個內部專案,誕生於 2013 年初,由google公司開源的Go語言開發。 Docker是一個開源的引擎,可以輕鬆的為任何應用建立一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VM
Storm 簡介及原理
一、Storm簡介 Storm是一個免費並開源的分散式實時計算系統。利用Storm可以很容易做到可靠地處理無限的資料流,像Hadoop批量處理大資料一樣,Storm可以實時處理資料。 Storm 很簡單,可用於任意程式語言。Apache Storm 採用 Clojure 開發。Storm 有
mina簡介及原理
一、簡介 1.基本概念 Apache Mina Server 是一個網路通訊應用框架,也就是說,它主要是對基於TCP/IP、UDP/IP協議棧的通訊框架(當然,也可以提供JAVA物件的序列化服務、虛擬機器管道通訊服務等),Mina可以幫助我們快速開發高效能、
Mysql 主主互備搭建及原理簡介
在企業中,資料庫高可用一直是企業的重中之重,中小企業很多都是使用mysql主從方案,一主多從,讀寫分離等,但是單主存在單點故障,從庫切換成主庫需要作改動。因此,如果是雙主或者多主,就會增加mysql入口,增加高可用。不過多主需要考慮自增長ID問
jsp簡介及jsp執行原理
jsp頁面和html頁面相比就是第一行多了一個宣告,檔案字尾是.jsp jsp頁面中可以有: 1、html標籤[在頁面中直接書寫html標籤] &n
MQTT協議-MQTT協議簡介及協議原理
MQTT(Message Queuing Telemetry Transport,訊息佇列遙測傳輸協議),是一種基於釋出/訂閱(publish/subscribe)模式的“輕量級”通訊協議,該協議構建於TCP/IP協議上,由IBM在1999年釋出。MQTT最大優點在於,可
IGBT簡介、結構及原理
所謂IGBT(絕緣柵雙極型電晶體),是由 BJT(雙極結型晶體三極體) 和 MOS(絕緣柵型場效電晶體) 組成的複合全控型-電壓驅動式-功率半導體器件,其具有自關斷的特徵。 簡單講,是一個非通即斷的開關,IGBT沒有放大電壓的功能,導通時可以看做導線,斷開時當做開路。I
XGBoost演算法原理簡介及調參
簡介 當模型沒有達到預期效果的時候,XGBoost就是資料科學家的最終武器。XGboost是一個高度複雜的演算法,有足夠的能力去學習資料的各種各樣的不規則特徵。 用XGBoost建模很簡單,但是提升XGBoost的模型效果卻需要很多的努力。因為這個演
MQTT協議簡介及協議原理
1:簡介 MQTT(Message Queuing Telemetry Transport,訊息佇列遙測傳輸協議),是一種基於釋出/訂閱(publish/subscribe)模式的“輕量級”通訊協議,該協議構建於TCP/IP協議上,由IBM在1999年釋出。MQTT最
Image Caption影象描述原理簡介及實現
在原來兩個博文基礎上整理而來 感謝一波這個部落格和lgd1234567 實現程式碼可以直接git這個地址,裡面預訓練網路已經存在了,不需要額外下載模型資料im2txt_demo Image Caption即影象描述,github上面的很多的專案是img
3D繪圖過程及原理簡介
Standard Primitives(標準幾何體) 在建立命令面板的Geometry(幾何體)物件型別中有如下幾個次級分類專案: · Standard Primitives(標準幾何體):相對簡單的幾何體,如立方體、球體和錐體等。 · Extended Primitive
storm 原理簡介及單機版安裝指南
Storm是一個分散式的、高容錯的實時計算系統。 Storm對於實時計算的的意義相當於Hadoop對於批處理的意義。Hadoop為我們提供了Map和Reduce原語,使我們對資料進行批處理變的非常的簡單和優美。同樣,Storm也對資料的實時計算提供了簡單Spout和Bolt原語。 Storm適
剖析nsq訊息佇列(一) 簡介及去中心化實現原理
分散式訊息佇列nsq,簡單易用,去中心化的設計使nsq更健壯,nsq充分利用了go語言的goroutine和channel來實現的訊息處理,程式碼量也不大,讀不了多久就沒了。後期的文章我會把nsq的原始碼分析給大家看。 主要的分析路線如下 分析nsq的整體框架結構,分析如何做到的無中心化分散式拓撲結構,如何
python簡介及基礎入門 day1
blog 美女 顯示 中文 公開 wid 能開 程序 cnblogs 一、python介紹: Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言。 Python由Guido van Rossum於1989年底發明,第一個公開發行版發行於1991年
LDAP簡介及LDAP服務器的安裝與配置
默認 access 目的 ani pro sta 目錄服務 unit onf 一、LDAP簡介 全稱:Lightweight Directory Access Protocol,目錄服務是一種特殊的數據庫系統,其專門針對讀取。 LDAP目錄中的信息是按照樹型結構組織,具體信
SOA 服務架構之簡介及理解
時代 底層原理 需要 松耦合 hit 面向服務 ges 都在 觀察 也許你已經深入其中卻不知,今天我們撥開雲霧見月明,闡明SOA是何方神聖! SOA 英文:Service-Oriented Architecture,面向服務的架構。 是一種面向通用集成服務的、松耦合的架構
一個實驗搞定華為hybrid-vlan基本配置及原理
華為 hybrid-vlan實驗拓撲:2. 實驗需求:PC1和PC3屬於VLAN10 PC2和PC4屬於VLAN20 PC5和PC6屬於VLAN30。VLAN10和20的成員都可以和VLAN30中PC5通信,但是VLAN10和VLAN20的成員之間不能通信(通過二層技術實現此需求,就是華為Hybrid
maven 之maven簡介及安裝
分享 運行 項目信息 ava 信息 專家 not 編碼 bin 1. maven:行內,專家。基於java的項目構建功能,依賴管理,項目信息管理,Maven是一個項目構建工具。 2.構建:指日常開發中經常完成的除了編碼外的一些動作。如:清理,編譯,測試,運行,報告,部署等動