2015-07-20 74 views
3

現在看幾天微服務,我想知道人們如何去實現負載平衡自動化和擴展這些東西?自動化微服務負載平衡/縮放

我有一個特定的場景記住我想達到什麼,但不知道是否有可能或者我正在考慮錯誤。所以這裏有雲......


比方說,我有一個名爲A,B和C

我想的第一件事是透明的部署,我或許可以用艦隊3臺CoreOS機器集羣。

然後,我想要檢測到,當其中一個服務處於巨大負載下並部署其另一個實例並部署了該服務器和第一個服務器時,會自動進行負載平衡,這種方式不會中斷其他服務使用它(從現在開始流量通過負載平衡器)。

另一種方式可能是我手動部署服務的其他版本,然後自動進行負載平衡並將流量路由器傳輸到負載平衡器。

那麼最後一個問題,這和Akka集羣有什麼不同,它們的發展與微服務有什麼不同?

回答

4

在我看來,在你問的問題中,你的回答有一個提示:「(流量從現在開始通過負載平衡器)」。

我會說 - 流量應該始終通過負載平衡器。在你最簡單的情況下,當你有每個服務的1個實例時,它仍然需要通過負載平衡器(順便說一下,我認爲至少有2個東西是個好主意)。

在這種情況下,當您獲得3倍的流量並想要啓動另一個相同服務的容器時,一旦容器啓動並運行,它必須在服務發現工具中註冊自己,並自動更新load-balancer config以添加新的'上游'入口。

然後使用這種方法,您將能夠更容易地擴大/縮小您的服務。

+0

我們使用類似的方法成功。主要要求是「節點下降時客戶端應該看不到錯誤」 –

+0

嗯。現在我覺得自己沒有想到這件事。 :/ 你有什麼特別的經驗嗎?你會推薦哪種負載均衡器? AWS上的vulcand vs elastic load balancer有什麼缺點/好處?另外,你會說在同一臺機器上有相同的服務實例是毫無意義的嗎? –

+0

@MatjazMuhic我和nginx一起工作了多個服務,爲我的需求做好了準備(從10到15個服務)。此外,如果您使用nginx/haproxy或其他LB,則必須找出Service Discovery工具和更新負載均衡器配置(取決於服務發現工具)之間的整合。看起來這正是vulcand所做的。 –