Flink CDC的Brokers设计是为了提高容错性和可扩展性。当一个Broker失败时,Flink CDC的任务不应该受到影响。这是因为Flink CDC的任务会将每个表的数据分发到多个Brokers上,如果一个Broker失败,那么只需要从剩下的Brokers中读取数据即可。
然而,如果你发现任务在第一个Broker失败后就停止运行,那么可能是你的配置或者实现有问题。你可能需要检查以下几点:
你是否正确地配置了多个Brokers?你可以在Flink任务的配置文件中设置
task.max-parallelism
和state.backend.num-changelog-streams
两个参数来控制每个表的数据会被分发到多少个Brokers上。你是否正确地实现了故障恢复的逻辑?当Broker失败时,Flink CDC的任务应该能够自动切换到其他的Brokers上继续运行。
你是否正确地处理了网络分区的问题?在网络分区的情况下,有些Brokers可能会无法连接到其他的Brokers,这时候你需要确保你的任务能够正确地处理这种情况,例如通过配置
execution.failover-strategy
参数来启用故障恢复机制。
如果你已经检查了以上几点,但是问题仍然存在,那么你可能需要查看更详细的Flink CDC的文档,或者直接联系Apache Flink的社区寻求帮助。