kafka添加了新功能以在连接器中使用正则表达式,但是在连接器重新启动之前,似乎不消耗连接器启动后新添加的主题中的主题数据。我们需要动态添加新主题,并使连接器根据连接器属性中定义的正则表达式使用该主题。如何实现? 例如:正则表达式:topic-。* 主题:topic-1,topic-2 如果我引入了新的主题topic-3,那么如何使连接器在不重新启动的情况下使用主题数据?
答案 0 :(得分:0)
根据其他人已经在评论中给出的想法,基本上您需要做的事情是建立一种机制,该机制可以识别出引入了新主题并且需要重新启动连接器。
我会做这样的事情,
1>在已连接的主题(例如topic-1)中发送特定类型的消息,如果收到这样的消息,则代码应保留所有新的味精轮询并等待所有偏移量提交完成。
2>然后脱离轮询循环,并从使用者中删除订阅(consumer.unsubscribe())。
3>在遵循正则表达式主题的常规流程之后,需要遵循一开始所做的操作,因为新主题现在将成为正则表达式的一部分。
请记住,提交非常重要,如果您匆匆重新启动连接器,则可能会重复。同样很明显,不要更改group.id并将auto.offset.reset保留为“ latest”。
答案 1 :(得分:0)
Kafka使用者可以选择metadata.max.age.ms
-使用者刷新主题元数据的时间间隔。如果您不需要实时,这可能会有所帮助。另请参阅:kafka consumer to dynamically detect topics added
在/etc/kafka-connect/kafka-connect.properties
中,您应指定consumer.metadata.max.age.ms=1000
1秒钟。