2016-06-10 184 views
0

我們有一套微服務在生態系統中相互協作。我們以前偶爾會遇到一些問題,其中一個或多個這些微服務意外崩潰。值得慶幸的是,我們已經建立了一些監測系統來實現這一點並採取糾正措施。集羣微服務組件

現在,我們希望在每個微服務中都有冗餘。我想更像是一個奴隸總是站立的主人/奴隸的方式,當主人離開時,奴隸會選擇它。

我們是否應該考慮使用我們可以用作服務註冊表的任何框架,我們在哪裏註冊每個微服務並允許它們被控制?有關如何使用微服務實現這種主/從體系結構的任何其他建議,這些服務可以使我們具有故障轉移冗餘?

回答

0

我想了幾分鐘,這是我目前認爲最好的方法,根據經驗。

有幾個問題您將面臨可用性。首先總是至少有一個端點。這很容易通過在多個服務器上安裝來完成。在企業領域,您可以爲端點使用名稱,然後將其解析爲多個服務器(虛擬或硬件)。你也會負載平衡它。

第二個是註冊表。這是API管理軟件的一個非常簡單的問題。這個領域的真正好的軟件並不便宜,所以這不是一個週末愛好者類型的軟件。但是那裏有開源的API管理解決方案。當我在企業領域工作時,我對Apigee,CA,Mashery等選項非常熟悉,因此我不推薦開源選項,並對自己感覺良好。

如果您願意,您可以構建自己的註冊表。只需要小心如何設計它,因爲「所有接口點的註冊表」導致服務變得更加緊密耦合。

+0

我們想要的只是一個故障轉移實例,當主服務器出現故障時它將變爲活動狀態。它與Apache Kafka經紀人或多或少有相同的概念! – sparkr

+0

Kafka通過將所有節點註冊在一箇中心位置並擁有大量的軟件來解決這個問題。但是,我正在思考的是開箱即​​用的笑容,因爲大多數人只將卡夫卡視爲消息總線,而不是解決其他領域問題的藍圖。但是,是的,擁有註冊端點的中央「保證」服務是一種選擇。祝你的解決方案好運。 –