我有一个带有10个分区的kafka主题“ mytopic”,并想使用S3 sink connector将记录下沉到S3存储桶中。为了进行扩展,它应该在多个节点上运行,以将分区数据并行写入同一S3存储桶。
在Kafka connect user guide以及实际上许多其他博客/教程中,建议以分布式模式而不是独立模式运行worker,以实现更好的可伸缩性和容错能力:
...分布式模式在可伸缩性方面更加灵活,并提供了高可用性服务的额外优势,可最大程度地减少停机时间。
我想弄清楚要为我的用例选择哪种模式:让一个逻辑连接器在多个节点上并行运行。我的理解如下:
我的理解正确吗?还是我缺少什么?
不幸的是,除了this google groups discussion以外,我找不到关于该主题的太多信息,在这里作者得出了与我相同的结论。
答案 0 :(得分:1)
从理论上讲,这可能行得通,但是您最终将ssh-sing到多台计算机上,它们具有基本相同的配置文件,而只是不使用connect-distributed
命令而不是connect-standalone
。
不过,您缺少有关Connect服务器任务重新平衡的部分,该部分通过Connect服务器REST端口进行通信
基础任务代码完全相同,只是入口点和偏移量存储不同。那么,如果您有多台计算机,为什么不只使用分布式?
答案 1 :(得分:1)
您无需运行,多个独立进程实例,Kafka工人将负责在分布式模式下分配任务,重新平衡,抵消管理,您需要指定相同的组ID ... >