我是Kafka的新手。我已经使用kafkaï2.9.2-0.8.1.1创建了示例kafka sync producer和consumergroup程序。所以我的问题是,我是否需要将多线程代码添加到producer(比如consumergroup类)以支持大量请求?我读过生产者发送方法是线程安全的。那么kafka生产者将在内部处理多线程概念,或者开发者必须显式地编写代码?
任何帮助都将不胜感激。
谢谢,克达尔
我是Kafka的新手。我已经使用kafkaï2.9.2-0.8.1.1创建了示例kafka sync producer和consumergroup程序。所以我的问题是,我是否需要将多线程代码添加到producer(比如consumergroup类)以支持大量请求?我读过生产者发送方法是线程安全的。那么kafka生产者将在内部处理多线程概念,或者开发者必须显式地编写代码?
任何帮助都将不胜感激。
谢谢,克达尔
1条答案
按热度按时间t9aqgxwy1#
Kafka有两种类型的制片人(1) syncproducer(2)异步生产者。如果你设置
producer.type
配置为async
它将使用AsyncProducers
. 默认情况下,它使用同步生产者类。一旦在异步模式下运行,它将为每个代理创建一个单独的asyncproducer示例,并且每个asyncproducer示例都维护自己的内部后台线程以发送消息。这些被称为
ProducerSendThread
.因此,每个代理有一个线程在运行,您的并行性基于集群中可用的代理数。因此,在集群中添加新代理应该为您提供灵活性,以便在使用kafka生成数据时提高并行度。但是请记住,在集群中添加新代理时,还应该考虑其他参数。