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-pythonDette 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 KafkaProducerimportere 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 KafkaConsumerfra 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 KafkaProducerimportere 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 KafkaConsumerfra 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.