有没有人能帮我理解一下下面的场景:
来自Topic A的流有一些不同的操作,这些操作会导致生成多个内部kafka主题,例如: KSTREAM-REDUCE-0000000014 KSTREAM-JOIN-0000000358等。
它们在拓扑中显示为"consumer-group-name-generated-name“
主题A加入主题B ...B必须更新键值才能与A加入内部主题"group-Re-KeyB“。
如果我的拓扑发生变化,那么除非所有这些内部主题的名称都相同,否则我需要更改我的使用者组名称,否则随机生成的KSTREAM-REDUCE-0000000014可能包含不同类型的对象。
如果我将新的消费者组的偏移量设置为与前一个消费者组最近提交的偏移量,我们将不会从头开始重放主题A或B。
这些内部主题会发生什么?例如,"group-Re-KeyB“是否拥有连接到A的所有数据,或者它只知道新的主题B记录??
发布于 2020-08-18 22:48:58
如果您更改了拓扑和名称更改,则新旧拓扑很可能不兼容,建议重置您的应用程序,并让新拓扑从头开始重新处理所有数据(以重建其所需的内部状态):https://docs.confluent.io/current/streams/developer-guide/app-reset-tool.html
作为替代,您可以为所有运算符指定显式名称(从Kafka Stream 2.4开始),例如,您可以使用Materialzed.as(...)来命名状态存储和相应的changelog主题。显式命名避免了内部主题的名称更改,因此,即使您更改了拓扑,也可以在不使用新application.id的情况下重新启动新拓扑,从而保留旧拓扑中的状态。
https://stackoverflow.com/questions/63457880
复制相似问题