我正在创建一个kafka流来将信息从一个应用程序复制到另一个应用程序,目标api有一些维护窗口,当我不需要发送数据或者我可能在它上引起问题时。
我有一个api,当有一个维护期的时候,这不是一个问题,我想知道的是如何在给定的时间内禁用流,并在维护窗口结束后再次启动它。
我在Java写代码
您可以管理kafka streams状态,比如启动/停止,以您的用例所需的方式。 为此,您需要对内存中的kafka流进行收集,并在维护期间对每个所需的流使用Kafkastreams.clos()
和Kafkastreams.cleanup()
停止它们(全部或部分)。 维护完成后,使用kafkastreams.start()
启动它们。
维护监听可以通过多种方式进行,例如:
quartz
库)执行maintenance_operations
)(例如,状态为maintenance_started
或maintenance_completed
)提供。 你的应用程序总是会收听这个主题,并根据事件启动/停止所需的流。 如果您有应用程序的多个实例,则每个节点都应该有一个唯一的maintenance_operations
主题的使用者组。