Apache Kafka

Como configurar o particionamento no Apache Kafka

Como configurar o particionamento no Apache Kafka
Apache Kafka é um poderoso serviço de corretor de mensagens. É muito rápido e confiável. Apache Kafka é de código aberto e de uso gratuito. É escrito em Java.Neste artigo, vou mostrar como configurar partições no Apache Kafka. Vamos começar.

Noções básicas de partições Apache Kafka:

Para entender os fundamentos do Apache Kafka Partiçãos, você precisa saber sobre Kafka Tópico primeiro.

UMA Tópico é como um banco de dados em um banco de dados SQL, como MariaDB para Apache Kafka. UMA Tópico tem um nome ou identificador que você usa para agrupar mensagens no Apache Kafka.

UMA Partição é como um canal para cada Tópico. UMA Tópico pode ter muitos Partiçãos ou canais.

Um cabo de rede conectando dois computadores tem duas extremidades, uma está enviando dados, a outra está recebendo dados. Assim, o Apache Kafka Topic tem duas pontas, Produtorareia Consumidors. UMA Produtor cria mensagens e as envia em um dos Partiçãosofá Tópico. UMA Consumidor por outro lado, lê as mensagens do Partiçãosofá Tópico.

Múltiplo Partiçãos ou canais são criados para aumentar a redundância. Também é usado para agrupar mensagens em um Tópico.

Esse é o básico do Apache Kafka Partiçãos. Você pode aprender mais sobre as partições Apache Kafka em outro artigo dedicado Particionamento Apache Kafka em https: // linuxhint.com / apache-kafka-partitioning

Instalando o Apache Kafka:

Eu tenho um artigo detalhado dedicado sobre como Instale o Apache Kafka no Ubuntu, que você pode ler em https: // linuxhint.com / install-apache-kafka-ubuntu /

Com alguns ajustes, você pode instalar o Apache Kafka em outras distribuições Linux também.

Iniciando o servidor Apache Kafka:

Se você seguiu meu artigo para instalar o Apache Kafka, primeiro inicie o servidor Apache Kafka com o seguinte comando:

$ sudo kafka-server-start.sh / etc / kafka.propriedades

O servidor Apache Kafka deve iniciar. Mantenha este terminal aberto enquanto você quiser que o servidor Apache Kafka seja executado.

Criando um Tópico Apache Kafka:

Você pode criar um Apache Kafka Tópico testando com o seguinte comando:

$ sudo kafka-topics.sh \
--Criar \
--zookeeper localhost: 2181 \
--fator de replicação 1 \
--partições 1 \
--teste de tópico

O Tópico testando deve ser criado. Esta Tópico tem 1 partição.

Se você quiser criar, digamos N partições, em seguida, defina -partições para N.

Vamos criar outro Tópico, Digamos Comercial, com 3 Partiçãos, em seguida, execute o seguinte comando:

$ sudo kafka-topics.sh \
--Criar \
--zookeeper localhost: 2181 \
--fator de replicação 1 \
--partições 3 \
--usuários do tópico

Usuários do tópico deve ser criado com 3 Partiçãos.

Adicionando mensagens particionadas ao tópico:

UMA Partiçãomensagem ed de um Tópico tem um chave e um valor. O chave e valor geralmente é separado por um vírgula ou outro personagem especial. Não importa qual caractere especial você usa para separar o chave e valor par. Mas você deve usar o mesmo caractere especial em todos os lugares naquele Tópico. Caso contrário, as coisas podem dar errado.

O chave é usado para determinar qual Partição uma mensagem de um Tópico pertence a. Deve ser único em um Tópico. Se você tem 3 Partiçãos, então você deve usar 3 diferente chaves. Para que as mensagens possam ser divididas em 3 Partiçãos.

Vamos dizer o nosso Comercial Tópico tem 3 usuários com chave 1, 2, e 3, cada um deles pertence a um dos 3 Partiçãos do usuários Tópico.

Execute o seguinte comando para adicionar o primeiro usuário com chave 1 usando o API Kafka Producer:

$ echo "1, nome: 'Shahriar Shovon', país: 'BD'" | sudo kafka-console-produtor.sh \
--broker-list localhost: 9092 \
--usuários do tópico \
--análise de propriedade.key = true \
--chave de propriedade.separador =,

Agora você pode listar a mensagem do Comercial Tópico usando o API Kafka Consumer com o seguinte comando:

$ sudo kafka-console-consumer.sh \
--zookeeper localhost: 2181 \
--usuários do tópico \
--impressão de propriedade.key = true \
--chave de propriedade.separator =, \
--do começo

Como você pode ver, o chave e valor par que acabei de adicionar ao Comercial Tópico está listado.

Vou manter o Consumidor programa para Comercial Tópico abra neste Terminal e adicione os outros usuários ao Comercial Tópico de outro terminal e ver o que acontece.

Adicionar outro usuário com chave 2 com o seguinte comando:

$ echo "2, name: 'John Doe', country: 'BD'" | sudo kafka-console-produtor.sh \
--broker-list localhost: 9092 \
--usuários do tópico \
--análise de propriedade.key = true \
--chave de propriedade.separador =,

Como você pode ver na seção marcada da captura de tela abaixo, o novo usuário é listado no programa Consumidor instantaneamente.

Vamos adicionar nosso último usuário com chave 3 com o seguinte comando:

$ echo "3, name: 'Evelina Aquilino', country: 'US'" | sudo kafka-console-produtor.sh \
--broker-list localhost: 9092 \
--usuários do tópico \
--análise de propriedade.key = true \
--chave de propriedade.separador =,

Como você pode ver, o novo usuário também está listado no Consumidor programa.

Você também pode adicionar muitos usuários ao mesmo Partição. Apenas certifique-se de que chave é o mesmo.

Vamos adicionar outro usuário ao Partição com chave 1:

$ echo "1, nome: 'Lynelle Piatt', país: 'CA'" | sudo kafka-console-produtor.sh \
--broker-list localhost: 9092 \
--usuários do tópico \
--análise de propriedade.key = true \
--chave de propriedade.separador =,

Como você pode ver, o novo usuário é adicionado ao Partição do usuários Tópico.

Posso continuar adicionando usuários aleatórios ao Comercial Tópico e eles serão enviados através da partição correta como você pode ver na imagem abaixo.

Então é assim Partiçãos no Apache Kafka funciona. Cada Partição é como um Fila, a primeira mensagem que você envia através dessa partição é exibida primeiro, e então a segunda mensagem e assim por diante na ordem em que são enviadas.

Se você é um Java desenvolvedor, você pode usar Java linguagem de programação e API Apache Kafka Javas fazer coisas interessantes com o Apache Kafka Partiçãos. Por exemplo, você pode atribuir diferentes Partição para diferentes salas de chat para o seu aplicativo de mensagens instantâneas, pois as mensagens devem ser exibidas na ordem em que são enviadas.

Então é tudo por hoje. Obrigado por ler este artigo.

Melhores aplicativos de mapeamento de gamepad para Linux
Se você gosta de jogar no Linux com um gamepad em vez de um teclado típico e sistema de entrada de mouse, existem alguns aplicativos úteis para você. ...
Ferramentas úteis para jogadores de Linux
Se você gosta de jogar no Linux, é provável que tenha usado aplicativos e utilitários como Wine, Lutris e OBS Studio para melhorar a experiência de jo...
Jogos HD Remasterizados para Linux que nunca tiveram uma versão Linux anterior
Muitos desenvolvedores e editores de jogos estão apresentando remasterização em HD de jogos antigos para estender a vida da franquia, por favor, os fã...