【Kafka】Notas de conceito básico do Kafka

【Kafka】Notas de conceito básico do Kafka

1. Dois modos

Como uma fila de mensagens, Kafka tem dois modos:

  1. modo ponto a ponto
  2. modelo de publicação/assinatura

1.1 Modo ponto a ponto

Características:

  • O consumidor puxa ativamente os dados e limpa a mensagem depois que a mensagem é recebida

imagem-20230705110531581


1.2 Modo Publicar/Assinar

  • Pode haver vários tópicos (navegação, curtidas, favoritos, comentários, etc.)
  • Depois que o consumidor consome os dados, os dados não são excluídos
  • Cada consumidor é independente um do outro e pode consumir dados

imagem-20230705110722828


2. Infraestrutura

Infraestrutura do Kafka:

  1. Para facilitar a expansão e melhorar a taxa de transferência, um tópico é dividido em várias partições (partições)
  2. Em conjunto com o design da partição, é proposto o conceito de grupo de consumidores. Cada consumidor do grupo consome em paralelo. Uma partição só pode ser consumida por um consumidor do grupo para evitar consumo repetido.
  3. Para melhorar a disponibilidade, adicione várias cópias para cada partição
  4. Quem é o líder é registrado no Zookeeper, Kafka2.8.0 e posterior também pode ser configurado para não usar o ZK

imagem-20230705111049119

  • Grupo de consumidores (CG) : um grupo de consumidores que consiste em vários consumidores. Cada consumidor em um grupo de consumidores é responsável por consumir dados de diferentes partições. Para evitar o consumo repetido de mensagens detalhadas, uma partição só pode ser consumida por um consumidor do grupo; os grupos de consumidores não afetam uns aos outros . Todos os consumidores pertencem a um grupo de consumidores, ou seja, um grupo de consumidores é um assinante lógico.
  • Corretor : Um servidor Kafka é um corretor. Um cluster consiste em vários agentes. Um corretor pode conter vários tópicos.
  • Tópico : Pode ser entendido como uma fila, e tanto produtores quanto consumidores estão diante de um tópico .
  • Partição : Para obter escalabilidade, um tópico muito grande pode ser distribuído para vários corretores (ou seja, servidores), um tópico pode ser dividido em várias partições e cada partição é uma fila ordenada .
  • Réplica : cópia. Cada partição de um tópico possui várias cópias, um Líder e vários Seguidores.
  • Líder : O "primário" de várias cópias de cada partição, o objeto para o qual o produtor envia dados e o objeto para o qual o consumidor consome dados são todos líderes.
  • Seguidor : O "escravo" em várias cópias de cada partição, sincroniza os dados do Líder em tempo real e mantém a sincronização com os dados do Líder. Quando o Líder falha, um Seguidor se tornará o novo Líder.

3. Operação da linha de comando do tópico

3.1 Ver as operações do Tópico

① Veja os parâmetros de comando do tópico da operação

#在kafka的目录下
bin/kafka-topics.sh

Depois de entrar na linha de comando, o console lista todos os parâmetros e seus significados:

imagem-20230705232832770

Resumido da seguinte forma:

imagem-20230705232404846


3.2 Criar Tópico

②Crie um tópico nomeado primeiro, o número de partições deve ser 1 e o cluster tem 3 nós, então a cópia da partição é definida como 3

bin/kafka-topics.sh --bootstrap-server node1:9092 --create --partitions 1 --replication-factor 3 --topic first

3.3 Ver todos os tópicos

③ Veja todos os tópicos no servidor atual

bin/kafka-topics.sh --bootstrap-server node1:9092 --list

3.4 Ver Detalhes do Tópico

④ Veja os detalhes do primeiro tema

bin/kafka-topics.sh --bootstrap-server node1:9092 --describe --topic first

imagem-20230705233257193

  • Replicas:1,2,0Indica que existem réplicas em três nós
  • Leader:1Indica que a cópia do Líder está armazenada no nó de codinome 1 e as outras duas lojas são cópias do Seguidor
  • Isr:1,2,0Representa uma cópia síncrona, a cópia seguidora sincroniza os dados da cópia líder e o ISR é um conjunto de cópias em Kafka para garantir consistência e confiabilidade dos dados

3.5 Modifique o número de partições

⑤ Nota: o número de partições só pode ser aumentado, mas não diminuído

bin/kafka-topics.sh --bootstrap-server node1:9092 --alter --partitions 3 --topic first

Verifique os detalhes do primeiro tema novamente após a modificação:

imagem-20230705233811497


3.6 Excluir Tópico

⑥Excluir primeiro tema

bin/kafka-topics.sh --bootstrap-server node1:9092 --delete --topic first

4. Operação da linha de comando do produtor

4.1 Operação da linha de comando do produtor

Exibir parâmetros de comando do produtor de operação

bin/kafka-console-producer.sh

imagem-20230706205550681

imagem-20230706205534461


4.2 Enviar mensagem para o tópico

bin/kafka-console-producer.sh --bootstrap-server node1:9092 --topic first

imagem-20230706210323573

Uma mensagem foi enviada para o primeiro tópico hello world.


5. Operação de linha de comando do consumidor

5.1 Exibir parâmetros de comando do consumidor de operação

bin/kafka-console-consumer.sh

imagem-20230706210917759

imagem-20230706210940712

imagem-20230706210834768


5.2 Consumir mensagens no tópico

Consumir mensagens do primeiro tópico

bin/kafka-console.consumer.sh --bootstrap-server node1:9092 --topic first

imagem-20230706211322198

Descobrimos que o cursor estava piscando, mas não recebemos nenhuma mensagem, isso porque o kafka lê a mensagem após o script do consumidor ser iniciado por padrão e, se você quiser ler todos os dados (incluindo dados históricos), precisará adicionar --from-beginningparâmetros

bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --from-beginning --topic first

imagem-20230706211724910

Desta forma, os dados históricos também são lidos.


Acho que você gosta

Origin blog.csdn.net/Decade_Faiz/article/details/131566058
Recomendado
Clasificación