我需要使用kafka connect来监视对mongodb集群的更改,该集群有一个主集群和两个副本。
我看到了官方的mongodb连接器,我想了解连接器的行为,以防主副本失败。它是否会自动从将成为新主副本的一个辅助副本中读取数据?我在官方文件中找不到这方面的信息。
我看到过与tasks.max配置相关的帖子,我认为可能与此场景相关,但答案暗示它总是默认为1。
我还研究了debezium的连接器实现,它似乎自动支持这种场景:
mongodb连接器对副本集的成员资格和领导权的更改、分片集群中分片的添加或删除以及可能导致通信失败的网络问题也具有相当的容忍度。连接器始终使用副本集的主节点来流式传输更改,因此当副本集经历一次选择并且另一个节点成为主节点时,连接器将立即停止流式传输更改,连接到新的主节点,并使用新的主节点开始流式传输更改。
此外,debezium版本的tasks.max configuration属性声明:
应为此连接器创建的最大任务数。mongodb连接器将尝试为每个副本集使用单独的任务,[…],以便每个副本集的工作可以由kafka connect分发。
问题是-我能用默认连接器获得与debezium连接器相同的默认行为吗?因为外部的原因,我现在不能用脱苄剂。
1条答案
按热度按时间w9apscun1#
在pss部署中:
如果一个节点不可用,其他两个节点可以选择一个主节点
如果两个节点不可用,则不能有主节点
引用的引号表明连接器可能正在使用主读取首选项,这意味着只要有两个节点处于运行状态,它就会工作,如果只有一个节点处于运行状态,它就不会检索任何数据。
因此,取下三个节点中的两个,观察是否可以查询。