2017-10-12 64 views
0

使用VisualVM来配置使用akka-streams-kafka的应用程序。在Akka流-kafka中阻塞Kafka协调器的线程

它显示了很多卡夫卡协调阻塞线程 It shows a lot of Kafka coordinator blocking threads

谁是这些协调员?

我也有三个卡夫卡消费者,也阻塞线程 I also have three Kafka consumers that are also blocking threads

我需要为他们创造一个独立的执行上下文?

回答

0

从Java客户端卡夫卡API

  1. 一个消费者,每线程A简单的选择是为每个线程提供自己的消费情况。这种方法的优点和缺点如下: PRO:这是最容易实现的PRO:它通常是最快的,因为不需要 线程间协调PRO:它按顺序处理 ,分区的基础很容易实现(每个线程只需 按照接收它们的顺序处理消息)。 CON:更多消费者 意味着到群集的更多TCP连接(每个线程一个)。总的来说, 卡夫卡处理连接非常有效,所以这通常是一个小的成本 。 CON:多个消费者意味着更多的请求被发送到服务器并且稍微减少数据的批量,这可能导致I/O吞吐量的一些下降。 CON:所有 进程中的总线程数将受限于分区总数。