软件包kafka-clients线程中的AdminClient安全吗?

时间:2019-07-15 11:32:40

标签: java apache-kafka

我需要在产生事件之前提供kafka主题的存在,并且默认的kafka主题自动创建是不够的。我本来打算使用AdminClient类,但担心并发性问题。
Apache Kafka 2.2.x的文档中没有有关线程安全AdminClient的信息。有人有什么主意吗?

3 个答案:

答案 0 :(得分:3)

是的,在Apache Kafka出现的每个版本中,Apache Kafka的AdminClient都是线程安全的。我们将创建PR来更新文档(我以为它已经在JavaDoc中了,但看起来好像不是。)< / p>

答案 1 :(得分:2)

Kafka的AdminClient用于执行管理任务,因此,在需要线程安全的上下文中不必使用它。

如果需要多个线程同时使用AdminClient来完成不同的任务,则可以简单地实例化它的多个实例,并分别在各自的线程中使用它们。他们都将各自做事,没有并发问题,因为他们不需要互相交谈,甚至不需要彼此了解。不需要多个线程来访问AdminClient的相同实例。

答案 2 :(得分:0)

proposal section of the KIP指出:

“客户端将是多线程的;多个线程将能够使用相同的AdminClient对象安全地进行调用。”

除此之外,未记录管理客户端的线程安全性。