Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 卡夫卡消费者从v0.8.2开始滚动更新->;0.10.2_Apache Kafka_Kafka Consumer Api - Fatal编程技术网

Apache kafka 卡夫卡消费者从v0.8.2开始滚动更新->;0.10.2

Apache kafka 卡夫卡消费者从v0.8.2开始滚动更新->;0.10.2,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,我们有v0.8.2消费者,我们正在更新到v0.10.2。这些是高容量的应用程序,所以我们通常进行滚动更新。问题是v8使用者向zookeeper提交偏移量,而v10使用者向kafka提交偏移量。在我们的测试中,尝试混合运行v8和v10使用者会导致消息被双重消耗。请参见此处问题的更详细说明: 是否有人找到了一种解决方法,使我们可以在不停机的情况下从v8用户升级到v10用户?我建议做两件事 在单独的步骤中执行版本升级和API升级。您可以滚动升级到0.10并继续使用旧的使用者API,并将偏移提交给zoo

我们有v0.8.2消费者,我们正在更新到v0.10.2。这些是高容量的应用程序,所以我们通常进行滚动更新。问题是v8使用者向zookeeper提交偏移量,而v10使用者向kafka提交偏移量。在我们的测试中,尝试混合运行v8和v10使用者会导致消息被双重消耗。请参见此处问题的更详细说明:


是否有人找到了一种解决方法,使我们可以在不停机的情况下从v8用户升级到v10用户?

我建议做两件事

  • 在单独的步骤中执行版本升级和API升级。您可以滚动升级到0.10并继续使用旧的使用者API,并将偏移提交给zookeeper。然后在第二步中进行API更新。这将减少每一步的移动部件数量

  • 在进行API更新时,您必须进行某种完全切换,因为正如您所观察到的,消费者组信息和偏移量现在将存储在Kafka中。你能做的一件事就是在这里


  • 但是,用户组的协调方式不同(在旧版本中,无论您在何处提交偏移,它们都在Zookeeper中进行协调),因此在某个时候,您需要停止所有旧用户并启动新的API实现。首先迁移您的偏移应该使这是一个非常短的中断,没有数据丢失,不管关闭所有消费者并启动新消费者的持续时间是多长

    这里我建议两件事

  • 在单独的步骤中执行版本升级和API升级。您可以滚动升级到0.10并继续使用旧的使用者API,并将偏移提交给zookeeper。然后在第二步中进行API更新。这将减少每一步的移动部件数量

  • 在进行API更新时,您必须进行某种完全切换,因为正如您所观察到的,消费者组信息和偏移量现在将存储在Kafka中。你能做的一件事就是在这里


  • 但是,用户组的协调方式不同(在旧版本中,无论您在何处提交偏移,它们都在Zookeeper中进行协调),因此在某个时候,您需要停止所有旧用户并启动新的API实现。首先迁移您的偏移应该使这是一个非常短的中断,没有数据丢失,不管关闭所有消费者并启动新消费者的持续时间是多长

    感谢您提供了偏移量迁移的指针。如果我们需要将v10客户端回滚到v8,这可能会很有用。感谢您提供了偏移量迁移的指针。如果我们需要将v10客户端回滚到v8,这可能会很有用。