2017-03-16 57 views
1

我很想知道我是否可以使用Consul來解決以下問題:微服務在領事

1)可以將Consul用於負載均衡微服務嗎?例如,如果我將控制檯放在託管我的API網關的服務器上,是否可以用來監視它發現的所有微服務,並在我有兩個相同的微服務時負載平衡?

2)Cons Consul可以用於微服務級別以根據需要啓動實例嗎?基本上,我想不使用IIS並找到替代方案。 3)如果因爲某種原因Consul將微服務視爲離線服務,它是否可以嘗試再次啓動它?或者無論出於何種原因強迫關閉微服務?

如果Consul軟件不能解決這些問題,還有其他的選擇嗎?

謝謝。

Simple microservices architecture

回答

0

1.可進行領事用於負載平衡微服務?

僅適用於某些第三方負載均衡器。 Consul沒有任何嵌入式負載平衡功能。

雖然它與HAProxy的整合。你可以閱讀關於它here。在這種情況下,Consul用於在運行時發現和填充HAProxy配置。 HAProxy可以用作軟件負載平衡器。

2.可以在微服務級別使用Consul來根據需要啓動實例嗎?

這對我來說並不是很清楚,你這裏是什麼意思。

3.如果因爲某種原因Consul將微服務視爲離線服務,它是否可以嘗試再次啓動它?

我想,這可以用watches來完成。它們用於監視某些節點,服務,KV實體等的更新。當檢測到某些更改時,它可以調用某些可執行文件。您可以通過自己提供此可執行文件,以重新啓動您的服務或執行任何您需要的操作。

+0

「可以在微服務級別使用Consul來根據需要啓動實例嗎?「我真正想要問的是,有沒有可以在Windows下啓動的Web服務器,將來可以很容易地放到Linux機器上。 – Roka

+0

看來NGINX可能是滿足我所有需求的理想解決方案,但我很好奇在你的角度。 – Roka

0

Consul DNS可以爲您提供一種簡單的方式來負載均衡服務。如果將它與Consul Prepared Queries和健康檢查結合起來,它尤其強大。

Consul最適合監測服務(通過健康檢查),但是如果服務突然變得不可用,您可以使用consul watch觸發事件。

Hashicorp(Consul背後的公司)提供另一種稱爲Nomad的工具。 與Consul不同,Nomad旨在運行服務(稱爲作業)並在必要時重新啓動它們。

如果你告訴它在哪裏可以找到領事,那麼Nomad的工作效果最好。這使得Nomad啓動的任何任務都能夠進行自動服務註冊,包括如果您指示Nomad停止運行該任務,則可以註銷它。健康檢查也受支持。