Есть ли у потребителей Kafka открытое соединение на раздел? - PullRequest
0 голосов
/ 31 мая 2018

Я знаю, что каждый раздел выделен одному потребителю Kafka (внутри группы потребителей), но один потребитель Kafka может использовать несколько разделов одновременно.Если у каждого есть открытое соединение с разделом, я могу представить десятки тысяч соединений, открытых на одного потребителя.Если это правда, это похоже на то, на что следует обратить внимание при выборе количества разделов, нет?

1 Ответ

0 голосов
/ 31 мая 2018

Я предполагаю, что вы спрашиваете об официальном клиенте Java.Сторонние клиенты могут делать что-то еще.

KafkaConsumer не имеет сетевого подключения на раздел.Как вы намекнули, это не очень хорошо масштабируется.

Вместо этого KafkaConsumer имеет соединение с каждым брокером / узлом, который является лидером раздела, из которого он потребляет.Данные для разделов с одинаковым лидером передаются по одному соединению.Он также использует дополнительную связь с координатором для своей группы.Так что в худшем случае он может иметь <# посредников в кластере> + 1 подключений к кластеру Kafka.

Взгляните на NetworkClient.java , вы увидите, что соединения обрабатываютсяза узел (брокер)

...