我有一个复杂的拓扑结构,包括KStreams、KTables、join、rekeying、filter、through、branch、zips等,以及输出主题的实时客户端。
所有的输入、间歇和输出主题都是基于avro的主题。
我如何处理拓扑结构的更改(添加新步骤、新输入和间歇输出主题(,知道kafka流维护内部状态和更改日志,并遵守以下业务要求:
- 无数据丢失
- 无数据重复(在一定程度上(
- 无停机时间
答案是在使用kafka-streams-application-reset
还是创建全新的消费者组(应用程序id(之间?
目前,Kafka Streams中没有检查点或保存点类型的概念。
如果需要更新现有的应用程序,可以安全地使用新的application.id或重置现有的application.id
。
在某些情况下,您需要根据拓扑结构的变化定义一个新的application.id
。
https://cwiki.apache.org/confluence/display/KAFKA/Kafka+流+数据+%28Re%29处理+场景