Introdução ao Kafka, fluxo de trabalho do consumidor (18)

método de consumo kafka

insira a descrição da imagem aqui
modo pull (pull):
o consumidor puxa ativamente os dados do corretor.
Kafka adota essa abordagem.
Modo push (push):
Kafka não usa esse método, porque a taxa de envio de mensagens é determinada pelo corretor e é difícil se adaptar à taxa de todos os consumidores. Por exemplo, se a velocidade do push for 50m/s, o consumidor1 e o consumidor2 não terão tempo para processar a mensagem
. A desvantagem do modo pull é que, se Kafka não tiver dados, os consumidores podem cair em um loop e retornar dados vazios consistentemente

Fluxo de trabalho geral do consumidor

insira a descrição da imagem aqui
1) O deslocamento de cada consumidor é enviado pelo consumidor ao tópico do sistema para armazenamento
2) Os dados de cada partição só podem ser consumidos por um consumidor no grupo de consumidores
3) Um consumidor pode consumir dados de várias partições

princípio do consumidor

insira a descrição da imagem aqui
Grupo de consumidores (CG): Um grupo de consumidores é composto por vários consumidores.A condição para formar um grupo de consumidores é que todos os grupos de consumidores tenham o mesmo groupid.
Cada consumidor no grupo de consumidores é responsável por consumir diferentes dados de partição e uma partição só pode ser consumida por um consumidor no grupo.
Os grupos de consumidores não afetam uns aos outros e todos os consumidores pertencem a um determinado grupo de consumidores, ou seja, um grupo de consumidores é um assinante lógico.
insira a descrição da imagem aqui
1) Se mais consumidores forem adicionados ao grupo de consumidores, excedendo o número de partições de tópico, alguns consumidores ficarão ociosos e não receberão nenhuma mensagem. 2) Os grupos de consumidores não afetam uns aos
outros e todos os consumidores pertencem a um determinado consumidor A grupo, ou seja, um grupo de consumidores é um assinante lógico

Processo de inicialização do consumidor

insira a descrição da imagem aqui
coordenador: o grupo auxiliar implementa a inicialização de grupos de consumidores e a alocação de partições.
Seleção do nó coordenador = valor hashcode de groupid%50 (array de partição de _consumer_offsets)
Por exemplo: valor hashcode de groupid=1, 1%50=1, então o tópico da partição _consumer_offsets 1, em qual corretor, selecione o coordenador deste nó como o chefe do grupo de consumidores e, quando todos os consumidores do grupo de consumidores enviarem compensações, eles enviarão compensações para esta partição 1) Cada consumidor envia uma solicitação
joinGroup
2) Selecione um consumidor como líder
3) Envie o tópico de consumo para o consumidor líder
4) O líder será responsável por especificar o plano de consumo
5) Atribua o plano de consumo ao coordenador
6) O coordenador enviará o plano de consumo para cada consumidor
7) Cada consumidor salvará o heartbeat com o coordenador (padrão 3s), e assim que expirar (session.timeout.ms=45s), o consumidor será bloqueado e o rebalanceamento será acionado, ou o tempo para o consumidor para processar a mensagem é muito longo Longo (max.poll.interval.ms5 minutos), também acionará o rebalanceamento
insira a descrição da imagem aqui
Fetch.min.bytes O tamanho mínimo de busca de cada lote, o padrão é 1 byte
fetch.max.wait.ms O mínimo o valor de um lote de dados não foi excedido Tempo, o padrão é 500ms
fetch.max.bytes O tamanho máximo de busca por lote, o padrão é 50m
max.poll.records O número máximo de mensagens retornadas puxando dados uma vez, o padrão é 500
insira a descrição da imagem aqui
insira a descrição da imagem aqui

insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_43205308/article/details/131522465
Recomendado
Clasificación