Compartilhamento de tecnologia

Dedução do diagrama de componentes básicos do Kafka

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Controlador Corretor

Insira a descrição da imagem aqui

Há um Controller Broker no cluster Kafka, que é responsável pelo gerenciamento e coordenação de metadados.

Kafka usa Zookeeper como ferramenta de armazenamento e gerenciamento de metadados de cluster. Zookeeper salva as informações de status do cluster, incluindo todas as informações de tópico, partição, líder e réplica, etc.

Quando o status do cluster mudar, o Controller Broker gravará as informações de mudança no Zookeeper.

Quando o Controller Broker atual falhar, outros Brokers no cluster Kafka detectarão esta situação e conduzirão eleições através do Zookeeper.

Depois que um Broker for eleito com sucesso como um novo Controller Broker, ele lerá os metadados de cluster mais recentes do Zookeeper.

Mecanismo de garantia

  • Metadados persistentes: o Zookeeper armazena persistentemente metadados do cluster, garantindo que as informações de status mais recentes possam ser obtidas a qualquer momento.
  • mecanismo de batimento cardíaco: A conexão entre o Broker e o Zookeeper é mantida por meio do mecanismo de pulsação para detectar rapidamente falhas do Controller Broker.
  • mecanismo eleitoral: Através do mecanismo de eleição do Zookeeper, um novo Controller Broker pode ser eleito rapidamente e os metadados podem ser sincronizados do Zookeeper.

2. Arquitetura de componentes

Insira a descrição da imagem aqui

1. Gerenciador de Logs

LogManagerPrincipal responsável por gerenciar o armazenamento e recuperação de logs (log) do Kafka.

Por exemplo: o produtor envia a mensagem para o Leader Broker1 da Partition0.LogManagerGrave a mensagem no arquivo de log da Partition0 no Broker1.

2. Gerenciador de replicação

ReplicationManagerPrincipalmente responsável por gerenciar a replicação e sincronização de dados de partição.

A sincronização entre o Líder e o Seguidor de cada partição é realizada de forma independente. Ou seja, cada partição possui seu próprio processo de sincronização e não depende de outras partições.

Embora o processo de sincronização de cada partição seja independente, cada Broker iniciará threads de replicação correspondentes para cada partição que gerencia (seja Líder ou Seguidora), e esses threads são responsáveis ​​por lidar com tarefas específicas de sincronização.

por exemplo:ReplicationManagerEnvie mensagens recém-escritas no Broker1 para o Follower Broker2 e Broker3 da Partition0.ReplicationManagerAs solicitações de replicação recebidas do Broker1 são processadas no Broker2 e no Broker3, gravando mensagens em seus respectivos arquivos de log.

3. Servidor de soquete

SocketServer É um componente do Kafka Broker e é responsável por lidar com conexões de rede e operações de E/S. É responsável por aceitar solicitações de conexão de clientes e outros Brokers, e atribuir um thread a cada conexão para processamento.

4. Servidor de rede

NetworkServer É uma parte essencial da estrutura de comunicação de rede do Kafka e é responsável por gerenciar e agendar solicitações de rede. Ele usa NIO (E/S sem bloqueio) para lidar com conexões de rede altamente simultâneas.

5. Cliente ZK

Componente que se comunica com o Zookeeper.