如果我有一个服务从数据库中获取主题名称并开始使用它,它就可以工作!但是,如果我在这个主题列表中再添加 1 个主题并将其传递给消费者,他们将无法阅读它。
简而言之,一个动态的消费者,在添加主题时开始消费它们。这是否可以在我的服务不需要它的情况下完成?如果没有,解决这个问题的最佳实践是什么?
我预计该消费者会更新并开始消费来自新主题的消息。
使用两个线程。用于读取数据库配置,它管理一个接受主题列表作为输入参数的消费者实例(提示:
KafkaConsumer
已经接受集合或正则表达式模式)。
请参阅 Javadoc 部分多线程处理作为一个好的起点,或者使用 Spring-Kafka/Quarkus/Vert.x/Alpakka 等库来更好地管理它。