kafka连接器中的动态主题

时间:2018-07-30 17:19:59

标签: apache-kafka apache-kafka-connect confluent

kafka添加了新功能以在连接器中使用正则表达式,但是在连接器重新启动之前,似乎不消耗连接器启动后新添加的主题中的主题数据。我们需要动态添加新主题,并使连接器根据连接器属性中定义的正则表达式使用该主题。如何实现? 例如:正则表达式:topic-。*     主题:topic-1,topic-2 如果我引入了新的主题topic-3,那么如何使连接器在不重新启动的情况下使用主题数据?

2 个答案:

答案 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秒钟。