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.propriedadesO 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.