Apache Kafka

Primeiros passos com Apache Kafka e Python

Primeiros passos com Apache Kafka e Python
Nesta lição, veremos como podemos usar Apache Kafka com Python e fazer um aplicativo de amostra usando o cliente Python para Apache Kafka.

Para concluir esta lição, você deve ter uma instalação ativa do Kafka em sua máquina. Leia Instalar Apache Kafka no Ubuntu para saber como fazer isso.

Instalando o cliente Python para Apache Kafka

Antes de começarmos a trabalhar com o Apache Kafka no programa Python, precisamos instalar o cliente Python para Apache Kafka. Isso pode ser feito usando pip (Índice de pacote Python). Aqui está um comando para fazer isso:

pip3 install kafka-python

Esta será uma instalação rápida no terminal:

Instalação do cliente Python Kafka usando PIP

Agora que temos uma instalação ativa para Apache Kafka e também instalamos o cliente Python Kafka, estamos prontos para começar a codificar.

Fazendo um produtor

A primeira coisa a ter de publicar mensagens no Kafka é um aplicativo produtor que pode enviar mensagens para tópicos no Kafka.

Observe que os produtores Kafka são produtores de mensagens assíncronas. Isso significa que as operações feitas enquanto uma mensagem é publicada na partição do Kafka Topic não são bloqueadoras. Para manter as coisas simples, escreveremos um editor JSON simples para esta lição.

Para começar, crie uma instância para o Produtor Kafka:

de kafka import KafkaProducer
import json
importar pprint
produtor = KafkaProdutor (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.despejos (v).codificar ('utf-8'))

O atributo bootstrap_servers informa sobre o host e a porta do servidor Kafka. O atributo value_serializer é apenas para o propósito de serialização JSON de valores JSON encontrados.

Para brincar com o Produtor Kafka, vamos tentar imprimir as métricas relacionadas ao Produtor e ao cluster Kafka:

metrics = produtor.Métricas()
pprint.pprint (métricas)

Veremos o seguinte agora:

Kafka Mterics

Agora, vamos finalmente tentar enviar alguma mensagem para o Kafka Queue. Um objeto JSON simples será um bom exemplo:

produtor.enviar ('linuxhint', 'tópico': 'kafka')

O linuxhint é a partição de tópico na qual o objeto JSON será enviado. Ao executar o script, você não obterá nenhuma saída, pois a mensagem é apenas enviada para a partição do tópico. É hora de escrever um consumidor para que possamos testar nosso aplicativo.

Fazendo um consumidor

Agora, estamos prontos para fazer uma nova conexão como um aplicativo Consumidor e receber as mensagens do Tópico Kafka. Comece criando uma nova instância para o consumidor:

de kafka import KafkaConsumer
from kafka import TopicPartition
print ('Fazendo conexão.')
consumidor = KafkaConsumer (bootstrap_servers = 'localhost: 9092')

Agora, atribua um tópico a esta conexão e um possível valor de deslocamento também.

print ('Atribuindo Tópico.')
consumidor.atribuir ([TopicPartition ('linuxhint', 2)])

Finalmente, estamos prontos para imprimir o mssage:

print ('Recebendo mensagem.')
para mensagem no consumidor:
imprimir ("OFFSET:" + str (mensagem [0]) + "\ t MSG:" + str (mensagem))

Com isso, obteremos uma lista de todas as mensagens publicadas na partição de tópico do consumidor Kafka. A saída para este programa será:

Consumidor Kafka

Apenas para uma referência rápida, aqui está o script completo do Produtor:

de kafka import KafkaProducer
import json
importar pprint
produtor = KafkaProdutor (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.despejos (v).codificar ('utf-8'))
produtor.enviar ('linuxhint', 'tópico': 'kafka')
# metrics = produtor.Métricas()
# pprint.pprint (métricas)

E aqui está o programa do consumidor completo que usamos:

de kafka import KafkaConsumer
from kafka import TopicPartition
print ('Fazendo conexão.')
consumidor = KafkaConsumer (bootstrap_servers = 'localhost: 9092')
print ('Atribuindo Tópico.')
consumidor.atribuir ([TopicPartition ('linuxhint', 2)])
print ('Recebendo mensagem.')
para mensagem no consumidor:
imprimir ("OFFSET:" + str (mensagem [0]) + "\ t MSG:" + str (mensagem))

Conclusão

Nesta lição, vimos como podemos instalar e começar a usar o Apache Kafka em nossos programas Python. Mostramos como é fácil realizar tarefas simples relacionadas ao Kafka em Python com o cliente Kafka para Python demonstrado.

Instale o emulador Dolphin mais recente para Gamecube e Wii no Linux
O Dolphin Emulator permite que você jogue seus jogos de Gamecube e Wii escolhidos em computadores pessoais Linux (PC). Sendo um emulador de jogo disp...
Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...
Melhores emuladores de console de jogo para Linux
Este artigo irá listar software de emulação de console de jogo popular disponível para Linux. A emulação é uma camada de compatibilidade de software q...