2016-11-22 86 views
1

我从来没有使用过ZooKeeper/Kafka,所以如果我说的是错误的,请随时纠正。ECS + ZooKeeper/Kafka - 它会工作吗?

使用AWS ECS进行ZooKeeper/Kafka集群扩展/缩减是否是一个好主意?我不太确定这是如何完成的,因为似乎没有很多将两者结合在一起的信息,所以我开始觉得这不应该是我应该做的。

有没有SEEM是一种自动添加动物园管理员副本到群集的方式,对于Kafka而言似乎也是如此(除非使用MirrorMaker)。

回答

2

动物园管理员可以通过Exhibitorautomatic instance management使用shared config位置管理。将此组合成一个Docker图像,其中作为后端选项Amazon S3,您应该很好。

卡夫卡是有点复杂,因为每个节点需要一个独特的broker.id,你需要管理那些故障和节点更换考虑。此外,当将新的broker.id添加到集合中或从中删除(即缩放)时,您需要重新平衡主题分区。我强烈建议this关于broker.id管理在自动缩放组的主题的博文。

请注意,这两个问题都与自动卡夫卡缩放相关,并未使用Amazon ECS本身。部署卡夫卡Docker容器上的一些限制Amazon ECS应该是相当简单的。

我不确定MirrorMaker是否适合您的场景,但请记住,这只是另一个消费者 - 它与群集管理无关。

+0

现有的/新的Kafka实例如何知道所有ZooKeepers地址? – Ben

+0

@Ben:我建议研究**服务发现**在这方面,因为有很多选项来建立这个。我们目前正在使用本地的'haproxy'实例,但你也可能会产生一个普通的ELB。 –

+0

haproxy不是更多的负载平衡解决方案吗?我更希望为Kafka提供动态服务发现解决方案(例如,如果ZooKeeper实例被添加/删除,它将动态地重新调整为这样的设置)。 – Ben