【发布时间】:2023-02-21 09:20:15
【问题描述】:
我是卡夫卡的新手。我有两个卡夫卡经纪人,我正试图通过这两个经纪人推送数据。一个是主要的,另一个是备用的。
我正在做一个小分析,我正在通过线程池执行程序将数据推送到 kafka 队列。在这样做的同时,我将最大池大小保持为 1,并将数组阻塞队列的大小保持为 2。我通过 Jmeter 触发了 10 个请求,其中 7 个请求进入了拒绝处理程序(如预期的那样),3 个进入了 kafka 队列处理。
使用线程转储来分析 kafka 线程的状态,为 kafka 生产者启动了 4 个生产者线程。
我无法理解这一点,因为我正在使用两个代理,这里有 3 条消息正在通过 kafka 处理(阻塞队列中有 2 条,线程中有 1 条),那么 4 个生产者线程是如何启动的?
PS:出于安全考虑,我不能在这里分享代码片段。
【问题讨论】:
-
KafkaProducer 类是线程安全的,所以它只需要一个...您必须查看 jmeter 源代码以了解为什么使用更多
标签: java multithreading apache-kafka kafka-producer-api