我正在我的 Windows 机器上运行 Apache Kafka,有两个 Kafka-Connect-Workers(端口 8083、8084)和一个具有三个分区的主题(一个复制)。
我的问题是,每当我关闭其中一个 Kafka-Connect 工作程序时,我都能看到故障转移到其他 Kafka-Connect 工作程序,但没有发生负载平衡,因为任务数始终为 1。
我使用官方 MongoDB-Kafka-Connector 作为源(ChangeStream),tasks.max=6。
我尝试使用多个线程更新 MongoDB,以便它可以将更多数据推送到 Kafka-Connect 中,并且可能使 Kafka-Connect 创建更多任务。即使在数据量更大的情况下,任务数仍然为一。
我如何确认只有一项任务正在运行?这是通过 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 Kafka Source Connector 的行为。这是我在另一个论坛上从 Ross Lawley(MongoDB 开发人员)那里得到的答案:
在 1.2.0 之前,接收器连接器仅支持单个任务。
源连接器仍然只支持单个任务,这是因为它使用单个更改流游标。这足以观察和发布集群范围、数据库范围或单个集合的更改。
我提出了这张票:https://jira.mongodb.org/browse/KAFKA-121得到以下回复:源连接器只会生成一个任务。
这是设计使然,因为源连接器由变更流支持。更改流在内部使用与复制引擎使用的数据相同的数据,因此应该能够像数据库一样进行扩展。
没有计划允许多个游标,但是,如果您觉得这不能满足您的要求,那么您可以配置多个连接器,每个连接器都有自己的更改流游标。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)