我目前正在运行一组拓扑,我希望在运行时更改拓扑属性,如
是否可以在不停止kafka流的情况下在运行时更改属性。我的一个想法是停止卡夫卡流,然后加载这些配置,然后重新启动。但似乎不是解决这个问题的理想方法。有人能提出更好的方法吗?
发布于 2020-04-02 01:17:47
那得看情况。更改实例的线程计数很容易。您只需要close() KafkaStreams客户机,更改配置,创建一个新客户机并重新启动它。大多数人都会通过完全重新启动相应的JVM来实现这一点。
添加源主题和接收器主题并不容易。特别是对于源主题,您需要停止所有实例,然后逐个重新启动它们,包括新的源主题。原因是,所使用的分区转让人假定所有实例都订阅了完全相同的主题。如果违反这一假设,即,如果某些实例订阅了一个新主题,则可能会将新主题的这些分区分配给尚未更新的“旧”实例,这将导致崩溃,因为“旧”实例不知道如何处理它未订阅的分配分区。
https://stackoverflow.com/questions/60949100
复制相似问题