java在运行时更改拓扑属性
我目前正在运行一组拓扑,我想在运行时更改拓扑属性,如
- 更改线程数
- 将源主题添加到现有主题列表
- 加水槽
是否可以在运行时更改属性而不停止kafka流。我的一个想法是停止卡夫卡流,然后加载这些配置并重新开始。但这似乎不是一个理想的解决方案。有人能提出更好的方法吗
你可以在下面搜索框中键入要查询的问题!
我目前正在运行一组拓扑,我想在运行时更改拓扑属性,如
是否可以在运行时更改属性而不停止kafka流。我的一个想法是停止卡夫卡流,然后加载这些配置并重新开始。但这似乎不是一个理想的解决方案。有人能提出更好的方法吗
# 1 楼答案
视情况而定。更改实例的线程数很容易。您只需要
close()
这个KafkaStreams
客户端,更改配置,创建一个新的客户端,然后重新启动它。大多数人会通过完全重新启动相应的JVM来实现这一点添加源主题和接收主题并不容易。特别是对于源主题,您需要停止所有实例,然后逐个重新启动它们,包括新的源主题。原因是,使用的分区赋值器假定所有实例都订阅了完全相同的主题。如果违反此假设,即,如果某些实例订阅了新主题,则新主题的这些分区可能会分配给尚未更新的“旧”实例,这将导致崩溃,因为“旧”实例不知道如何处理未订阅的已分配分区