Apache Kafka

Komme i gang med Apache Kafka og Python

Komme i gang med Apache Kafka og Python
I denne leksjonen vil vi se hvordan vi kan bruke Apache Kafka med Python og lage et eksempel på et program ved hjelp av Python-klienten for Apache Kafka.

For å fullføre denne leksjonen må du ha en aktiv installasjon for Kafka på maskinen din. Les Installer Apache Kafka på Ubuntu for å vite hvordan du gjør dette.

Installerer Python-klient for Apache Kafka

Før vi kan begynne å jobbe med Apache Kafka i Python-programmet, må vi installere Python-klienten for Apache Kafka. Dette kan gjøres ved hjelp av pip (Python pakkeindeks). Her er en kommando for å oppnå dette:

pip3 installer kafka-python

Dette vil være en rask installasjon på terminalen:

Python Kafka klientinstallasjon ved hjelp av PIP

Nå som vi har en aktiv installasjon for Apache Kafka og vi også har installert Python Kafka-klienten, er vi klare til å starte kodingen.

Å lage en produsent

Det første du må publisere meldinger på Kafka er en produsentsøknad som kan sende meldinger til emner i Kafka.

Merk at Kafka-produsenter er asynkrone produsenter av meldinger. Dette betyr at operasjonene som er utført mens en melding blir publisert på Kafka Topic-partisjonen, ikke blokkerer. For å holde ting enkelt, vil vi skrive enkle JSON-utgivere for denne leksjonen.

For å starte, lage en instans for Kafka Producer:

fra kafka import KafkaProducer
importere json
importer pprint
produsent = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.dumper (v).kode ('utf-8'))

Bootstrap_servers-attributtet informerer om verten og porten for Kafka-serveren. Value_serializer-attributtet er bare for formålet med JSON-serialisering av JSON-verdier som er oppstått.

For å spille med Kafka Producer, la oss prøve å skrive ut beregningene knyttet til Producer og Kafka-klyngen:

beregninger = produsent.beregninger ()
pprint.pprint (beregninger)

Vi ser følgende ut nå:

Kafka Mterics

La oss endelig prøve å sende en melding til Kafka-køen. Et enkelt JSON-objekt vil være et godt eksempel:

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

De linuxhint er emnepartisjonen som JSON-objektet skal sendes på. Når du kjører skriptet, får du ikke utdata da meldingen bare sendes til emnepartisjonen. Det er på tide å skrive en forbruker slik at vi kan teste søknaden vår.

Å lage en forbruker

Nå er vi klare til å opprette en ny forbindelse som et forbrukerapplikasjon og motta meldingene fra Kafka Topic. Begynn med å lage en ny forekomst for forbrukeren:

fra kafka import KafkaConsumer
fra kafka import TopicPartition
skriv ut ('Opprette forbindelse.')
forbruker = KafkaConsumer (bootstrap_servers = 'localhost: 9092')

Nå, tilordne et emne til denne forbindelsen og en mulig offset-verdi også.

print ('Tilordne emne.')
forbruker.tilordne ([TopicPartition ('linuxhint', 2)])

Endelig er vi klare til å skrive ut meldingen:

skriv ut ('Få melding.')
for melding i forbruker:
skriv ut ("OFFSET:" + str (melding [0]) + "\ t MSG:" + str (melding))

Gjennom dette vil vi få en liste over alle publiserte meldinger på Kafka Consumer Topic Partition. Resultatet for dette programmet vil være:

Kafka Forbruker

Bare for en rask referanse, her er det komplette produsentmanuset:

fra kafka import KafkaProducer
importere json
importer pprint
produsent = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.dumper (v).kode ('utf-8'))
produsent.send ('linuxhint', 'topic': 'kafka')
# beregninger = produsent.beregninger ()
# pprint.pprint (beregninger)

Og her er det komplette forbrukerprogrammet vi brukte:

fra kafka import KafkaConsumer
fra kafka import TopicPartition
skriv ut ('Opprette forbindelse.')
forbruker = KafkaConsumer (bootstrap_servers = 'localhost: 9092')
print ('Tilordne emne.')
forbruker.tilordne ([TopicPartition ('linuxhint', 2)])
skriv ut ('Få melding.')
for melding i forbruker:
skriv ut ("OFFSET:" + str (melding [0]) + "\ t MSG:" + str (melding))

Konklusjon

I denne leksjonen så vi på hvordan vi kan installere og begynne å bruke Apache Kafka i våre Python-programmer. Vi viste hvor enkelt det er å utføre enkle oppgaver relatert til Kafka i Python med den demonstrerte Kafka Client for Python.

Nyttige verktøy for Linux-spillere
Hvis du liker å spille spill på Linux, er sjansen stor for at du har brukt apper og verktøy som Wine, Lutris og OBS Studio for å forbedre spilloppleve...
HD Remastered Games for Linux som aldri hadde en Linux-utgave tidligere
Mange spillutviklere og utgivere kommer med HD-remaster av gamle spill for å forlenge franchisetiden, vennligst fans som ber om kompatibilitet med mod...
Hvordan bruke AutoKey til å automatisere Linux-spill
AutoKey er et desktopautomatiseringsverktøy for Linux og X11, programmert i Python 3, GTK og Qt. Ved å bruke skript og MACRO-funksjonalitet kan du aut...