【发布时间】:2020-05-09 21:09:49
【问题描述】:
我有一个包含 10 个分区的 kafka 主题“mytopic”,并希望使用 S3 sink connector 将记录下沉到 S3 存储桶。出于扩展目的,它应该在多个节点上运行,以将分区数据并行写入同一个 S3 存储桶。
在 Kafka connect user guide 和许多其他博客/教程中,建议以分布式模式而不是独立模式运行工作线程,以实现更好的可扩展性和容错:
...分布式模式在可扩展性方面更加灵活,并提供高可用性服务的附加优势,以最大限度地减少停机时间。
我想弄清楚为我的用例选择哪种模式:让一个逻辑连接器在多个节点上并行运行。我的理解如下:
- 如果我在分布式模式下运行,我最终将只有 1 个工作人员处理所有分区,因为它被视为一个连接器任务。
- 相反,我应该在多个节点中以独立模式运行。在这种情况下,我将拥有一个消费者组并实现分区的并行处理。
- 在上述独立场景中,我实际上将具有容错能力:如果一个实例死亡,消费者组将重新平衡,而其他独立工作人员将处理释放的分区。
我的理解是正确的还是我遗漏了什么?
很遗憾,除了this google groups discussion,我找不到更多关于这个主题的信息,作者得出了与我相同的结论。
【问题讨论】:
标签: apache-kafka apache-kafka-connect