3

我们正在为 Kafka 设置 MirrorMaker 2.0。如果我理解正确,复制集群中的主题偏移量是不相等的。这对于普通的 Kafka 应用程序来说不是问题,因为消费者组也会被复制。Flink 在内部将 Kafka 偏移存储在 state 中 - 我假设在使用 state 重新启动作业后,事情可能会出错。有没有办法设置 Flink,以便我们可以从复制的 Kafka 集群上的集群故障中恢复?我认为我们应该以某种方式迁移状态,但没有这样做的经验。

4

2 回答 2

0

在这种情况下,我认为迁移州不会有帮助。我可以看到解决这个问题的两种方法,但它们都不是完美的:

  1. 从技术上讲,您可以禁用在检查点上存储偏移量并enable.auto.commit在消费者中启用,但我认为这在可能丢失数据方面有点危险。
  2. 您可以扩展FlinkKafkaConsumer和修改该open函数,以便它忽略存储在 state 中的偏移量,而是使用 fetcher 来获取偏移量。我认为这应该可以正常工作,因为如果启用了检查点,则偏移量会在检查点上提交给 Kafka。
于 2020-03-24T21:00:01.133 回答
0

MirrorMaker 2 设法通过内部主题同步偏移量,并使用消息的时间戳来解释故障转移情况下的同步和漂移。

于 2020-03-24T23:02:33.910 回答