2017-05-31 77 views
0

我要求一般的最佳實踐在這裏:Kafka集羣部署配置的最佳實踐?

如果我想要一個五個節點集羣,做所有五個節點上運行匯合平臺傘包,其中包括動物園管理員,卡夫卡,模式的註冊表?

是否曾建議在獨立服務器上運行zookeper集羣與Kafka集羣?

如果我想運行Kafka Connect分佈式工作器,我可以在所有集羣節點上運行它嗎?我是否想要在不同的服務器上運行? Docker是爲此推薦還是Docker是不必要的?

使用Kafka Streaming應用程序,它們是否應該在所有羣集節點上運行?他們應該碼頭嗎?他們是否應該在單獨的節點上運行?

有點像Mesos推薦?

回答

2

這是在專用服務器(或虛擬服務器)上運行Kafka Brokers的最佳實踐。 Zookeeper也是如此。

Confluent Platform的所有其他組件都可以在共同的服務器上或在不同的機器上運行。

您通常只運行一個模式註冊表(或兩個,如果您想容錯)。他們可以在任何可以連接到卡夫卡經紀商的機器上運行。

Kafka Connect分佈式工作人員只需要在要託管Kafka連接器的機器上運行。他們只需要能夠連接到卡夫卡經紀人。

卡夫卡流應用程序可以運行在任何你想要的地方,只要他們可以連接回卡夫卡經紀人。

所有組件都可以在Docker容器中運行,也可以在沒有Docker的情況下運行。

您可以使用您想要的任何微服務或數據中心資源管理工具(或根本沒有) - 這是您的選擇。

+0

謝謝。爲什麼最好的做法是在Zookeeper的不同服務器上運行Kafka Brokers。這是記錄在任何地方? – clay

+0

這個最佳做法有兩個原因。建議Kafka代理在專用服務器上運行,因爲它們廣泛使用利用Linux頁面緩存作爲內存中性能增強功能的「零拷貝」,所以最好不要在同一臺機器上運行其他應用程序,污染「頁面緩存並導致更多的緩存未命中和更多的磁盤I/O。 –

+0

建議Zookeeper節點在專用機器上運行,因爲它們對延遲非常敏感。如果寫入磁盤或響應請求存在很長的延遲,那麼動物園管理員節點會被踢出法定人數,並導致一系列級聯問題。最好讓動物園管理員儘可能低延遲,這就是爲什麼最好的做法是單獨運行它們,並儘可能使用SSD磁盤。 –