我们计划将kafka客户机从0.8.0升级到0.10.0.1,但由于在消费者中,0.8.0版本中的偏移量存储在zookeeper中,而0.10.0.1版本中的偏移量存储在broker中,如果我们使用与0.10.0.1中版本0.8.0相同的组和客户端id启动消费者,那么新消费者将从旧消费者停止消费的位置获取消息。如果要发生数据丢失,我们可以尝试将偏移量从zookeeper迁移到broker,然后启动新的consumer吗
我们计划将kafka客户机从0.8.0升级到0.10.0.1,但由于在消费者中,0.8.0版本中的偏移量存储在zookeeper中,而0.10.0.1版本中的偏移量存储在broker中,如果我们使用与0.10.0.1中版本0.8.0相同的组和客户端id启动消费者,那么新消费者将从旧消费者停止消费的位置获取消息。如果要发生数据丢失,我们可以尝试将偏移量从zookeeper迁移到broker,然后启动新的consumer吗
1条答案
按热度按时间4uqofj5v1#
您可以继续在0.10上的zookeeper中存储偏移量。实际上,如果您只是升级了客户机二进制文件,那么在偏移提交行为中不会看到任何更改。当您开始在应用程序中使用新的使用者api时,您就必须开始考虑数据和偏移量的迁移。在这里,您需要基于旧api停止旧的应用程序示例,检查zookeeper中存储的偏移量,然后从该偏移量开始新的使用者api实现,以避免数据丢失或重复。