我從來沒有使用過ZooKeeper/Kafka,所以如果我說的是錯誤的,請隨時糾正。ECS + ZooKeeper/Kafka - 它會工作嗎?
使用AWS ECS進行ZooKeeper/Kafka集羣擴展/縮減是否是一個好主意?我不太確定這是如何完成的,因爲似乎沒有很多將兩者結合在一起的信息,所以我開始覺得這不應該是我應該做的。
有沒有SEEM是一種自動添加動物園管理員副本到羣集的方式,對於Kafka而言似乎也是如此(除非使用MirrorMaker)。
我從來沒有使用過ZooKeeper/Kafka,所以如果我說的是錯誤的,請隨時糾正。ECS + ZooKeeper/Kafka - 它會工作嗎?
使用AWS ECS進行ZooKeeper/Kafka集羣擴展/縮減是否是一個好主意?我不太確定這是如何完成的,因爲似乎沒有很多將兩者結合在一起的信息,所以我開始覺得這不應該是我應該做的。
有沒有SEEM是一種自動添加動物園管理員副本到羣集的方式,對於Kafka而言似乎也是如此(除非使用MirrorMaker)。
動物園管理員可以通過Exhibitor爲automatic instance management使用shared config位置管理。將此組合成一個Docker圖像,其中作爲後端選項Amazon S3,您應該很好。
卡夫卡是有點複雜,因爲每個節點需要一個獨特的broker.id
,你需要管理那些故障和節點更換考慮。此外,當將新的broker.id
添加到集合中或從中刪除(即縮放)時,您需要重新平衡主題分區。我強烈建議this關於broker.id
管理在自動縮放組的主題的博文。
請注意,這兩個問題都與自動卡夫卡縮放相關,並未使用Amazon ECS本身。部署卡夫卡在Docker容器上的一些限制Amazon ECS應該是相當簡單的。
我不確定MirrorMaker是否適合您的場景,但請記住,這只是另一個消費者 - 它與羣集管理無關。
現有的/新的Kafka實例如何知道所有ZooKeepers地址? – Ben
@Ben:我建議研究**服務發現**在這方面,因爲有很多選項來建立這個。我們目前正在使用本地的'haproxy'實例,但你也可能會產生一個普通的ELB。 –
haproxy不是更多的負載平衡解決方案嗎?我更希望爲Kafka提供動態服務發現解決方案(例如,如果ZooKeeper實例被添加/刪除,它將動態地重新調整爲這樣的設置)。 – Ben