K dokončení této lekce musíte mít na svém počítači aktivní instalaci Kafky. Přečtěte si článek Instalace Apache Kafka na Ubuntu a zjistěte, jak na to.
Instalace klienta Pythonu pro Apache Kafka
Než můžeme začít pracovat s Apache Kafka v programu Python, musíme si nainstalovat klienta Pythonu pro Apache Kafka. To lze provést pomocí pip (Python Package Index). Zde je příkaz k dosažení tohoto cíle:
pip3 nainstalujte kafka-pythonBude to rychlá instalace na terminál:
Instalace klienta Python Kafka pomocí PIP
Nyní, když máme aktivní instalaci pro Apache Kafka a nainstalovali jsme také klienta Python Kafka, jsme připraveni začít programovat.
Výroba producenta
První věcí, kterou je třeba publikovat na Kafce, je aplikace producenta, která může posílat zprávy na témata v Kafce.
Upozorňujeme, že producenti Kafky jsou producenti asynchronních zpráv. To znamená, že operace prováděné při publikování zprávy v oddílu Kafka Topic neblokují. Aby to nebylo jednoduché, napíšeme pro tuto lekci jednoduchého vydavatele JSON.
Začněte vytvořením instance pro producenta Kafka:
z importu kafky KafkaProducerimportovat JSON
importovat tisk
producent = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.skládky (v).enkódovat ('utf-8'))
Atribut bootstrap_servers informuje o hostiteli a portu pro server Kafka. Atribut value_serializer je jen pro účely serializace JSON zjištěných hodnot JSON.
Abychom si mohli hrát s producentem Kafky, zkusme vytisknout metriky související s klastrem Producer a Kafka:
metriky = producent.metriky ()tisk.pprint (metriky)
Nyní uvidíme následující:
Kafka Mterics
Nyní zkusme konečně odeslat nějakou zprávu do fronty Kafka. Dobrým příkladem bude jednoduchý objekt JSON:
výrobce.send ('linuxhint', 'topic': 'kafka')The linuxhint je tematický oddíl, na který bude odeslán objekt JSON. Když spustíte skript, nebudete mít žádný výstup, protože zpráva se právě odešle do tematické oblasti. Je čas napsat spotřebitele, abychom mohli otestovat naši aplikaci.
Vytváření spotřebitele
Nyní jsme připraveni vytvořit nové připojení jako aplikaci pro spotřebitele a získávat zprávy z tématu Kafka. Začněte vytvořením nové instance pro spotřebitele:
z importu kafka KafkaConsumerz importu kafky TopicPartition
print ('Vytváření připojení.')
consumer = KafkaConsumer (bootstrap_servers = 'localhost: 9092')
Nyní přiřaďte tomuto připojení téma a také možnou hodnotu posunutí.
print ('Přiřazení tématu.')spotřebitel.assign ([TopicPartition ('linuxhint', 2)]))
Nakonec jsme připraveni tisknout mssage:
print ('Získávám zprávu.')pro zprávu ve spotřebiteli:
print ("OFFSET:" + str (zpráva [0]) + "\ t MSG:" + str (zpráva))
Prostřednictvím toho získáme seznam všech publikovaných zpráv v oddílu pro spotřebitele Kafka. Výstupem pro tento program bude:
Spotřebitel Kafka
Pro rychlou referenci je zde kompletní skript Producenta:
z importu kafky KafkaProducerimportovat JSON
importovat tisk
producent = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.skládky (v).enkódovat ('utf-8'))
výrobce.send ('linuxhint', 'topic': 'kafka')
# metrics = producent.metriky ()
# tisk.pprint (metriky)
A tady je kompletní spotřebitelský program, který jsme použili:
z importu kafka KafkaConsumerz importu kafky TopicPartition
print ('Vytváření připojení.')
consumer = KafkaConsumer (bootstrap_servers = 'localhost: 9092')
print ('Přiřazení tématu.')
spotřebitel.assign ([TopicPartition ('linuxhint', 2)]))
print ('Získávám zprávu.')
pro zprávu ve spotřebiteli:
print ("OFFSET:" + str (zpráva [0]) + "\ t MSG:" + str (zpráva))
Závěr
V této lekci jsme se podívali na to, jak můžeme nainstalovat a začít používat Apache Kafka v našich programech Pythonu. Ukázali jsme, jak snadné je provádět jednoduché úkoly související s Kafkou v Pythonu pomocí předvedeného klienta Kafka pro Python.