【问题标题】:Kafka Connect MongoDB Source Connector failure scenarioKafka Connect MongoDB Source Connector 故障场景
【发布时间】:2021-03-25 12:42:35
【问题描述】:

我需要使用 Kafka Connect 来监控对具有一个主副本和 2 个副本的 MongoDB 集群的更改。

我看到有官方的MongoDB connector,我想了解连接器的行为,以防主副本失败。它会自动从将成为新主副本的辅助副本之一读取吗?我在官方文档中找不到这方面的信息。

我看到this posttasks.max 配置相关,我认为这可能与这种情况有关,但答案暗示它始终默认为 1。

我还查看了连接器的Debezium's implementation,它似乎自动支持这种情况:

MongoDB 连接器对成员资格的更改也非常宽容 和领导副本集,添加或删除分片 在分片集群内,以及可能导致的网络问题 通讯故障。连接器始终使用副本集的 主节点流式传输更改,因此当副本集经历 选举和不同的节点成为主节点,连接器将 立即停止流式传输更改,连接到新的主节点,然后 使用新的主节点开始流式传输更改。

此外,Debezium 版本的 tasks.max 配置属性指出:

应为此连接器创建的最大任务数。 MongoDB 连接器将尝试为每个 副本集,[...] 以便每个副本集的工作都可以 由 Kafka Connect 分发。

问题是 - 我可以使用默认连接器获得相同的默认行为 - 正如为 Debezium 所宣传的那样?由于外部原因,我暂时无法使用 Debezium。

【问题讨论】:

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


    【解决方案1】:

    在 PSS 部署中:

    • 如果一个节点不可用,其他两个节点可以选举一个主节点
    • 如果两个节点不可用,则不能有主节点

    您引用的引用表明连接器可能正在使用主要读取首选项,这意味着只要两个节点启动它就会工作,如果只有一个节点启动它就不会检索任何数据。

    因此,将三个节点中的两个拉下来,观察是否可以查询。

    【讨论】:

      猜你喜欢
      • 2021-08-07
      • 2022-12-04
      • 2020-08-17
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 2020-12-29
      • 2020-09-02
      • 2021-05-21
      相关资源
      最近更新 更多