【问题标题】:Distributed Official Mongodb Kafka Source Connector with Multiple tasks Not working具有多个任务的分布式官方 Mongodb Kafka 源连接器不工作
【发布时间】:2020-07-12 14:51:05
【问题描述】:

我在我的 Windows 机器上运行 Apache Kafka,有两个 Kafka-Connect-Workers(端口 8083、8084)和一个带有三个分区的主题(一个复制)。 我的问题是,每当我关闭其中一个 Kafka-Connect 工作人员时,我都能看到故障转移到其他工作人员,但由于任务数始终为 ONE,因此没有发生负载平衡。 我使用官方 MongoDB-Kafka-Connector 作为 Source(ChangeStream),tasks.max=6。 我尝试使用多个线程更新 MongoDB,以便它可以将更多数据推送到 Kafka-Connect,并可能使 Kafka-Connect 创建更多任务。即使在数据量较大的情况下,任务计数仍为 1。

我如何确认只有一项任务正在运行?那是通过 api "http://localhost:8083/connectors/mongodb-connector/status" : 回复: { "name":"mongodb-connector", "connector": { "state":"RUNNING", "worker_id":"xx.xx.xx.xx:8083" } "tasks": [ { "id": 0, "state": "RUNNING" "worker_id": "xx.xx.xx.xx:8083" } ], "type": "source" } 我在这里错过了什么吗?为什么没有创建更多任务?

【问题讨论】:

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


    【解决方案1】:

    这似乎是官方 MongoDB Kafka 源连接器的行为。这是我在另一个论坛上从 Ross Lawley(MongoDB 开发人员)那里得到的答案:

    在 1.2.0 之前,接收器连接器仅支持单个任务。 Source 连接器仍然只支持单个任务,这是因为它使用单个 Change Stream 游标。这足以观察和发布集群范围、数据库范围或单个集合的更改。

    我提出了这张票:https://jira.mongodb.org/browse/KAFKA-121 得到以下回复: 源连接器只会产生一个任务。 这是设计使然,因为源连接器由更改流支持。变更流在内部使用与复制引擎相同的数据,因此应该能够像数据库一样进行扩展。 没有计划允许多个游标,但是,如果您觉得这不符合您的要求,那么您可以配置多个连接器,每个连接器都有自己的更改流游标。

    【讨论】:

    • 我们遇到了同样的“限制”,即吞吐量受到单个任务的限制,您是否找到了一种解决方法来使其“真正”分布式?请分享您的见解
    猜你喜欢
    • 2020-08-23
    • 2021-01-15
    • 2021-11-23
    • 2020-04-27
    • 2019-11-12
    • 1970-01-01
    • 2020-09-08
    • 2020-01-25
    • 2021-09-17
    相关资源
    最近更新 更多