卡夫卡能否连接-mongo源作为集群运行(最大任务> 1)

时间:2019-12-18 10:20:59

标签: mongodb apache-kafka apache-kafka-connect

我正在使用以下mongo-source,它受kafka-connect支持。 我发现mongo源(来自here的配置之一是 tasks.max

这意味着我可以提供> 1的连接器task.max,但是我不知道它在后台会做什么?

如果它将创建多个连接器来监听mongoDb更改流,那么我将收到重复的消息。那么,mongo-source是否真的具有并行性并且可以作为集群工作?如果任务数超过1个,该怎么办?

1 个答案:

答案 0 :(得分:1)

Mongo-source 不支持task.max>1。即使将其设置为大于1,也只有一个任务会将数据从mongo提取到Kafka。

创建多少个任务取决于特定的连接器。函数List<Map<String, String>> Connector::taskConfigs(int maxTasks)(在实现连接器时应重写)返回列表,列表的大小决定了任务数。 如果您检查mongo-kafka源连接器,您将看到它是singletonList。

https://github.com/mongodb/mongo-kafka/blob/master/src/main/java/com/mongodb/kafka/connect/MongoSourceConnector.java#L47