开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC这里的brokers虽然可以配置多个,但是只要第1个brokers挂了,这怎么破?

Flink CDC这里的brokers虽然可以配置多个,但是只要第1个brokers挂了,任务就挂了,这怎么破?image.png

展开
收起
真的很搞笑 2023-11-07 07:16:55 41 0
3 条回答
写回答
取消 提交回答
  • 把你的kafka集群配置成高可用的集群,此回答整理自钉群“Flink CDC 社区”

    2023-11-08 07:41:04
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    如果你在Flink CDC中配置了多个Kafka Brokers,并且其中的一个Broker出现问题,那么Flink CDC应该能够自动切换到其他正常的Brokers上继续工作。
    这是因为Flink CDC在连接Kafka时会使用一个Zookeeper实例作为协调器,它负责管理集群中各个Broker的状态和元数据。当Flink CDC尝试连接到某个Broker时,它首先会向Zookeeper查询Broker的状态。如果Zookeeper报告说这个Broker不可用,那么Flink CDC就会自动切换到下一个可用的Broker。
    需要注意的是,虽然Flink CDC可以在Broker发生故障时自动切换到其他正常Broker上,但是如果故障的Broker长时间无法恢复,那么可能会导致一部分数据丢失。因此,在设计和部署Kafka集群时,最好采取一些冗余措施,例如增加副本数量和设置合适的重试策略等,以提高系统的可靠性和可用性。

    2023-11-07 14:50:47
    赞同 展开评论 打赏
  • Flink CDC的Brokers设计是为了提高容错性和可扩展性。当一个Broker失败时,Flink CDC的任务不应该受到影响。这是因为Flink CDC的任务会将每个表的数据分发到多个Brokers上,如果一个Broker失败,那么只需要从剩下的Brokers中读取数据即可。

    然而,如果你发现任务在第一个Broker失败后就停止运行,那么可能是你的配置或者实现有问题。你可能需要检查以下几点:

    1. 你是否正确地配置了多个Brokers?你可以在Flink任务的配置文件中设置task.max-parallelismstate.backend.num-changelog-streams两个参数来控制每个表的数据会被分发到多少个Brokers上。

    2. 你是否正确地实现了故障恢复的逻辑?当Broker失败时,Flink CDC的任务应该能够自动切换到其他的Brokers上继续运行。

    3. 你是否正确地处理了网络分区的问题?在网络分区的情况下,有些Brokers可能会无法连接到其他的Brokers,这时候你需要确保你的任务能够正确地处理这种情况,例如通过配置execution.failover-strategy参数来启用故障恢复机制。

    2023-11-07 10:33:10
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载