Apacke Kafka Ouvinte Threads

0

Pergunta

Vamos dizer que eu tenho 50 Kafka Tópicos, cada um com 3 partições, que da um total de 150 partições. Se eu tiver um KafkaListener/Consumidor configurado para cada uma dessas 150 partições (devido ao alto volume em cada partição), isso significa que eu tenho 150 ouvintes execução. Pelo que eu entendi, cada ouvinte fica com o seu próprio thread. Então isso quer dizer que haverá 150 segmentos ativos neste cenário? Que parece um monte. Existe alguma maneira que eu poderia restringir isso a um número máximo de threads de uma vez(digamos, 20)?

2
0

Kafka sempre dá uma única partição de dados para um consumidor thread

Para restringir o número de threads para 20 com 150 partições, você pode definir a concorrência para 8 o que efetivamente deve criar 8 separado do consumidor instâncias e limitar o número de threads para um máximo de <19 (150/8).

Esta é uma outra pilha de postar no tópico que explica um pouco mais para a definição de simultaneidade na sua kafka ouvinte de fábrica. Também esta é outra fonte decente para explicar alguns dos conceitos em torno de kafka tópicos e partições.

2021-11-24 04:47:11
0
  1. Se você quiser maximizar o consumo, sim, você precisa 150 consumer threads em 150 partitions (1 consumidor thread por partição). No caso de você só ter 20, você não pode desejar maximizar o consumo, em vez disso, agora 1 consumidor é responsável por consumir, por exemplo, 150/20=7 partitions. É uma troca.

  2. Você não quer que seu aplicativo consome 50 topics de cada vez. Ele leva para o problema de escala. Vamos dizer que agora um tópico precisa aumentar o número de seus partitions de 3 a 6, na horizontal, a escala de seu app de 1 a 2 instâncias, o que significa que a partir de 150 consumers 300 consumers e há apenas 150 + (6-3) = 153 ativo consumers, as outras ficam ociosas.

2021-11-25 03:34:09

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................