Apache Kafka

Aan de slag met Apache Kafka en Python

Aan de slag met Apache Kafka en Python
In deze les zullen we zien hoe we Apache Kafka met Python kunnen gebruiken en een voorbeeldtoepassing kunnen maken met de Python-client voor Apache Kafka.

Om deze les te voltooien, moet u een actieve installatie voor Kafka op uw computer hebben. Lees Apache Kafka installeren op Ubuntu om te weten hoe u dit moet doen.

Python-client installeren voor Apache Kafka

Voordat we met Apache Kafka in het Python-programma kunnen gaan werken, moeten we de Python-client voor Apache Kafka installeren. Dit kan met behulp van Pip (Python pakket Index). Hier is een commando om dit te bereiken:

pip3 installeer kafka-python

Dit is een snelle installatie op de terminal:

Python Kafka Client-installatie met PIP

Nu we een actieve installatie voor Apache Kafka hebben en we ook de Python Kafka-client hebben geïnstalleerd, zijn we klaar om te beginnen met coderen.

Een producent maken

Het eerste wat je moet doen om berichten op Kafka te publiceren, is een producer-applicatie die berichten kan sturen naar onderwerpen in Kafka.

Merk op dat Kafka-producenten asynchrone berichtenproducenten zijn. Dit betekent dat de bewerkingen die worden uitgevoerd terwijl een bericht is gepubliceerd op de Kafka Topic-partitie niet-blokkerend zijn. Om het simpel te houden, zullen we voor deze les een eenvoudige JSON-uitgever schrijven.

Maak om te beginnen een instantie voor de Kafka Producer:

van kafka import KafkaProducer
import json
pprint importeren
producent = KafkaProducer(
bootstrap_servers='localhost:9092',
value_serializer=lambda v: json.stortplaatsen (v).coderen('utf-8'))

Het kenmerk bootstrap_servers informeert over de host en poort voor de Kafka-server. Het kenmerk value_serializer is alleen bedoeld voor JSON-serialisatie van aangetroffen JSON-waarden.

Laten we, om met de Kafka Producer te spelen, proberen de statistieken met betrekking tot de Producer en Kafka-cluster af te drukken:

metrische gegevens = producent.metrische gegevens()
pprint.pprint (statistieken)

We zullen nu het volgende zien:

Kafka Mterics

Laten we nu eindelijk proberen een bericht naar de Kafka-wachtrij te sturen. Een eenvoudig JSON-object is een goed voorbeeld:

producent.send('linuxhint', 'topic': 'kafka')

De linuxhint is de onderwerppartitie waarop het JSON-object wordt verzonden. Wanneer u het script uitvoert, krijgt u geen uitvoer omdat het bericht zojuist naar de onderwerppartitie is verzonden. Het is tijd om een ​​consument te schrijven zodat we onze applicatie kunnen testen test.

Een consument maken

Nu zijn we klaar om een ​​nieuwe verbinding te maken als consumententoepassing en de berichten van het Kafka-onderwerp te ontvangen. Begin met het maken van een nieuwe instance voor de Consument:

van kafka import KafkaConsumer
van kafka import TopicPartition
print('Verbinding maken.')
consument = KafkaConsumer(bootstrap_servers='localhost:9092')

Wijs nu een onderwerp toe aan deze verbinding en ook een mogelijke offset-waarde.

print('Onderwerp toewijzen.')
klant.assign([TopicPartition('linuxhint', 2)])

Eindelijk zijn we klaar om het bericht af te drukken:

print('Bericht ontvangen.')
voor bericht in consument:
print("OFFSET: " + str(bericht[0])+ "\t MSG: " + str(bericht))

Hierdoor krijgen we een lijst met alle gepubliceerde berichten op de Kafka Consumer Topic Partition. De output voor dit programma zal zijn:

Kafka Consument

Voor een snelle referentie, hier is het volledige Producer-script:

van kafka import KafkaProducer
import json
pprint importeren
producent = KafkaProducer(
bootstrap_servers='localhost:9092',
value_serializer=lambda v: json.stortplaatsen (v).coderen('utf-8'))
producent.send('linuxhint', 'topic': 'kafka')
# metrische gegevens = producent.metrische gegevens()
# afdruk.pprint (statistieken)

En hier is het volledige consumentenprogramma dat we hebben gebruikt:

van kafka import KafkaConsumer
van kafka import TopicPartition
print('Verbinding maken.')
consument = KafkaConsumer(bootstrap_servers='localhost:9092')
print('Onderwerp toewijzen.')
klant.assign([TopicPartition('linuxhint', 2)])
print('Bericht ontvangen.')
voor bericht in consument:
print("OFFSET: " + str(bericht[0])+ "\t MSG: " + str(bericht))

Conclusie

In deze les hebben we gekeken hoe we Apache Kafka kunnen installeren en gebruiken in onze Python-programma's. We hebben laten zien hoe eenvoudig het is om eenvoudige taken met betrekking tot Kafka in Python uit te voeren met de gedemonstreerde Kafka Client voor Python.

Hoe FPS te verhogen in Linux?
FPS staat voor Beelden per seconde. De taak van FPS is om de framesnelheid te meten bij het afspelen van video's of speluitvoeringen. In eenvoudige wo...
Top Oculus App Lab-games
Als je eigenaar bent van een Oculus-headset, moet je op de hoogte zijn van sideloading. Sideloading is het proces van het installeren van niet-winkeli...
Top 10 spellen om te spelen op Ubuntu
Het Windows-platform is een van de dominante platforms voor gaming geweest vanwege het enorme percentage games dat tegenwoordig wordt ontwikkeld om Wi...