Apache Kafka

Empezando con Apache Kafka y Python

Empezando con Apache Kafka y Python
En esta lección, veremos cómo podemos usar Apache Kafka con Python y hacer una aplicación de muestra usando el cliente Python para Apache Kafka.

Para completar esta lección, debe tener una instalación activa de Kafka en su máquina. Lea Instalar Apache Kafka en Ubuntu para saber cómo hacer esto.

Instalación del cliente Python para Apache Kafka

Antes de que podamos comenzar a trabajar con Apache Kafka en el programa Python, necesitamos instalar el cliente Python para Apache Kafka. Esto se puede hacer usando pepita (Índice de paquetes de Python). Aquí hay un comando para lograr esto:

pip3 instalar kafka-python

Esta será una instalación rápida en la terminal:

Instalación del cliente Python Kafka mediante PIP

Ahora que tenemos una instalación activa para Apache Kafka y también hemos instalado el cliente Python Kafka, estamos listos para comenzar a codificar.

Haciendo un productor

Lo primero que debe tener para publicar mensajes en Kafka es una aplicación de producción que puede enviar mensajes a temas en Kafka.

Tenga en cuenta que los productores de Kafka son productores de mensajes asincrónicos. Esto significa que las operaciones realizadas mientras se publica un mensaje en la partición de tema de Kafka no son bloqueantes. Para simplificar las cosas, escribiremos un editor JSON simple para esta lección.

Para empezar, crea una instancia para Kafka Producer:

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

El atributo bootstrap_servers informa sobre el host y el puerto del servidor Kafka. El atributo value_serializer es solo para la serialización JSON de los valores JSON encontrados.

Para jugar con el productor de Kafka, intentemos imprimir las métricas relacionadas con el productor y el clúster de Kafka:

métricas = productor.métrica()
pprint.pprint (métricas)

Veremos lo siguiente ahora:

Kafka Mterics

Ahora, intentemos finalmente enviar algún mensaje a Kafka Queue. Un objeto JSON simple será un buen ejemplo:

productor.enviar ('linuxhint', 'tema': 'kafka')

La linuxhint es la partición de tema en la que se enviará el objeto JSON. Cuando ejecuta la secuencia de comandos, no obtendrá ningún resultado ya que el mensaje simplemente se envía a la partición del tema. Es hora de escribir un consumidor para que podamos probar nuestra aplicación.

Hacer un consumidor

Ahora, estamos listos para establecer una nueva conexión como una aplicación de consumidor y recibir los mensajes del tema de Kafka. Empiece por crear una nueva instancia para el consumidor:

de kafka import KafkaConsumer
de kafka import TopicPartition
print ('Haciendo conexión.')
consumidor = KafkaConsumer (bootstrap_servers = 'localhost: 9092')

Ahora, asigne un tema a esta conexión y un posible valor de compensación también.

print ('Asignar tema.')
consumidor.asignar ([TopicPartition ('linuxhint', 2)])

Finalmente, estamos listos para imprimir el mensaje:

print ('Recibiendo mensaje.')
para el mensaje en el consumidor:
print ("DESPLAZAMIENTO:" + str (mensaje [0]) + "\ t MSG:" + str (mensaje))

A través de esto, obtendremos una lista de todos los mensajes publicados en la partición de tema del consumidor de Kafka. El resultado de este programa será:

Consumidor de Kafka

Solo para una referencia rápida, aquí está el guión completo de Producer:

de kafka import KafkaProducer
importar json
importar pprint
productor = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.vertederos (v).codificar ('utf-8'))
productor.enviar ('linuxhint', 'tema': 'kafka')
# metrics = productor.métrica()
# pprint.pprint (métricas)

Y aquí está el programa completo para consumidores que usamos:

de kafka import KafkaConsumer
de kafka import TopicPartition
print ('Haciendo conexión.')
consumidor = KafkaConsumer (bootstrap_servers = 'localhost: 9092')
print ('Asignar tema.')
consumidor.asignar ([TopicPartition ('linuxhint', 2)])
print ('Recibiendo mensaje.')
para el mensaje en el consumidor:
print ("DESPLAZAMIENTO:" + str (mensaje [0]) + "\ t MSG:" + str (mensaje))

Conclusión

En esta lección, vimos cómo podemos instalar y comenzar a usar Apache Kafka en nuestros programas Python. Mostramos lo fácil que es realizar tareas simples relacionadas con Kafka en Python con el cliente Kafka para Python demostrado.

Revisión del mouse inalámbrico Microsoft Sculpt Touch
Recientemente leí sobre el Microsoft Sculpt Touch mouse inalámbrico y decidí comprarlo. Después de usarlo por un tiempo, decidí compartir mi experienc...
Trackpad en pantalla y puntero del mouse AppyMouse para tabletas Windows
Los usuarios de tabletas a menudo pierden el puntero del mouse, especialmente cuando son habituales para usar las computadoras portátiles. Los teléfon...
El botón central del mouse no funciona en Windows 10
La botón central del ratón le ayuda a desplazarse por páginas web largas y pantallas con una gran cantidad de datos. Si eso se detiene, bueno, termina...