Apache Kafka

Hogyan olvassuk el az adatokat a Kafka-ból a Python segítségével

Hogyan olvassuk el az adatokat a Kafka-ból a Python segítségével
A Kafka egy nyílt forráskódú elosztott üzenetkezelő rendszer, amely particionált és különböző témákban küldi az üzenetet. A valós idejű adatfolyamot úgy lehet megvalósítani, hogy a Kafka segítségével adatokat fogad az alkalmazások között. Három fő része van. Ezek a gyártók, a fogyasztók és a témák. A producert arra használják, hogy üzenetet küldjön egy adott témára, és minden üzenetet egy kulccsal csatolnak. A fogyasztót arra használják, hogy a partíciókészletből egy adott témában üzenetet olvasson. A gyártótól kapott és a partíciókon egy adott téma alapján tárolt adatok. Számos könyvtár létezik a pythonban, hogy létrehozzanak gyártót és fogyasztót üzenetkezelő rendszer kiépítéséhez a Kafka segítségével. Az oktatóanyag bemutatja, hogyan olvashatóak a Kafka adatai a python segítségével.

Előfeltétel

Telepítenie kell a szükséges python könyvtárat az adatok Kafka-ból történő olvasásához. A Python3 ebben az oktatóanyagban a fogyasztó és a termelő szkriptjének megírásához használható. Ha a pip csomagot korábban nem telepítették a Linux operációs rendszerbe, akkor a Kafka könyvtár Python telepítése előtt telepítenie kell a pipet. python3-kafka ebben az oktatóanyagban a Kafka adatainak olvasására szolgál. A könyvtár telepítéséhez futtassa a következő parancsot.

$ pip install python3-kafka

Egyszerű szöveges adatok olvasása Kafkától

Különböző típusú adatok küldhetők el a gyártótól egy adott témában, amelyet a fogyasztó olvashat. Az oktatóanyag ezen része bemutatja, hogyan lehet egyszerű szöveges adatokat küldeni és fogadni a Kafkától a gyártó és a fogyasztó segítségével.

Hozzon létre egy nevű fájlt termelő1.py a következő python szkript segítségével. KafkaProducer modul importálva van a Kafka könyvtárból. A közvetítői listának meg kell határoznia a termelő objektum inicializálásakor, hogy kapcsolatba léphessen a Kafka szerverrel. A Kafka alapértelmezett portja a következő:9092". A bootstrap_servers argumentummal definiálható a hosztnév a porttal. "First_Topic'a téma neve, amellyel szöveges üzenetet küld a gyártó. Ezután egy egyszerű szöveges üzenet,Szia Kafkától'segítségével Küld() a metódusa KafkaProducer a témához "First_Topic".

termelő1.py:

# Importálja a KafkaProducert a Kafka könyvtárból
a kafka importból KafkaProducer
# Definiálja a kiszolgálót a porttal
bootstrap_servers = ['localhost: 9092']
# Adja meg a téma nevét, ahol az üzenet közzétételre kerül
topicName = 'First_Topic'
# A termelői változó inicializálása
producer = KafkaProducer (bootstrap_servers = bootstrap_servers)
# Szöveg közzététele meghatározott témakörben
termelő.send (topicNév, b'Helló a kafkától ... ')
# Üzenet nyomtatása
nyomtatás ("Üzenet elküldve")

Hozzon létre egy nevű fájlt fogyasztó1.py a következő python szkript segítségével. KafkaFogyasztó modul importálva van a Kafka könyvtárból a Kafka adatainak olvasására. sys modult használjuk a szkript leállítására. A gyártó ugyanazon hostnevét és portszámát használja a fogyasztó szkriptjében a Kafka adatainak kiolvasásához. A fogyasztó és a termelő témájának meg kell egyeznieElső_téma".  Ezután a fogyasztói objektumot inicializáljuk a három argumentummal. Téma neve, csoportazonosító és szerver információk. mert A hurok segítségével itt olvasható a Kafka producer által küldött szöveg.

fogyasztó1.py:

# Importálja a KafkaFogyasztót a Kafka könyvtárból
a kafka importtól a KafkaConsumer
# Sys modul importálása
import sys
# Definiálja a kiszolgálót a porttal
bootstrap_servers = ['localhost: 9092']
# Határozza meg a téma nevét, ahonnan az üzenet fog érkezni
topicName = 'First_Topic'
# Inicializálja a fogyasztói változót
fogyasztó = KafkaConsumer (topicName, group_id = 'group1', bootstrap_servers =
bootstrap_servers)
# Olvassa el és nyomtassa ki a vásárló üzenetét
msg esetén a fogyasztóban:
print ("Téma neve =% s, Üzenet =% s"% (üzenet.téma, üzenet.érték))
# Fejezze be a szkriptet
sys.kijárat()

Kimenet:

Futtassa a következő parancsot egy terminálról a producer parancsfájl végrehajtásához.

$ python3 producer1.py

A következő kimenet jelenik meg az üzenet elküldése után.

Futtassa a következő parancsot egy másik terminálról a fogyasztói parancsfájl végrehajtásához.

$ python3 fogyasztó1.py

A kimenet a téma nevét és a gyártótól küldött szöveges üzenetet mutatja.

A JSON-formátumú adatok olvasása a Kafka-tól

A JSON-formátumú adatokat a Kafka gyártója elküldheti, és a Kafka fogyasztó elolvashatja a json python modulja. Az oktatóanyag ezen részében látható, hogyan lehet a JSON-adatokat sorosítani és megszüntetni az adatok küldése és fogadása előtt a python-kafka modul használatával.

Hozzon létre egy python parancsfájlt termelő2.py a következő forgatókönyvvel. Egy másik JSON nevű modul importálva van KafkaProducer modul itt. value_serializer argumentumot használjuk bootstrap_szerverek argumentum a Kafka producer objektumának inicializálásához. Ez az argumentum azt jelzi, hogy a JSON adatokat a 'utf-8'karakterkészlet a küldéskor. Ezután a JSON-formátumú adatokat küldi a megnevezett témára JSONtopic.

termelő2.py:

# Importálja a KafkaProducert a Kafka könyvtárból
a kafka importtól KafkaProducer
# Importálja a JSON modult az adatok sorosítása érdekében
import json
# Inicializálja a termelői változót és állítsa be a JSON kódolás paraméterét
producer = KafkaProducer (bootstrap_szerverek =
['localhost: 9092'], value_serializer = lambda v: json.szemétlerakók (v).kódolni ('utf-8'))
# Adatok küldése JSON formátumban
termelő.send ('JSONtopic', 'name': 'fahmida', 'email': '[email protected]')
 
# Üzenet nyomtatása
nyomtatás ("Üzenet elküldve a JSONtopichoz")

Hozzon létre egy python parancsfájlt fogyasztó2.py a következő forgatókönyvvel. KafkaFogyasztó, sys és a JSON modulokat importálja ebben a szkriptben. KafkaFogyasztó modul a JSON-formátumú adatok olvasására szolgál a Kafka-ból. A JSON modult a Kafka gyártótól küldött kódolt JSON adatok dekódolására használják. Sys modul a szkript befejezésére szolgál. érték_deserializer argumentumot használjuk bootstrap_szerverek a JSON-adatok dekódolásának meghatározásához. Következő, mert a hurok az összes fogyasztói nyilvántartás és a Kafkától beolvasott JSON-adatok kinyomtatására szolgál.

fogyasztó2.py:

# Importálja a KafkaFogyasztót a Kafka könyvtárból
a kafka importtól a KafkaConsumer
# Sys modul importálása
import sys
# Importálja a Json modult az adatok sorosítása érdekében
import json
# Inicializálja a fogyasztói változót, és állítsa be a JSON dekódolás tulajdonságát
fogyasztó = KafkaConsumer ('JSONtopic', bootstrap_servers = ['localhost: 9092'],
érték_deserializer = lambda m: json.terhelések (m.dekódolni ('utf-8')))
# Olvassa el a kafka adatait
üzenet a fogyasztóban:
nyomtatás ("Fogyasztói adatok: \ n")
nyomtatás (üzenet)
nyomtatás ("\ nOldalozás JSON adatokból \ n")
nyomtatás ("Név:", üzenet [6] ['név'])
nyomtatás ("E-mail:", üzenet [6] ['e-mail'])
# Fejezze be a szkriptet
sys.kijárat()

Kimenet:

Futtassa a következő parancsot egy terminálról a producer parancsfájl végrehajtásához.

$ python3 producer2.py

A parancsfájl a következő üzenetet nyomtatja ki a JSON-adatok elküldése után.

Futtassa a következő parancsot egy másik terminálról a fogyasztói parancsfájl végrehajtásához.

$ python3 fogyasztó2.py

A következő kimenet jelenik meg a szkript futtatása után.

Következtetés:

Az adatokat különböző formátumokban lehet elküldeni és fogadni a Kafkától a python használatával. Az adatok tárolhatók az adatbázisban, és lekérhetők az adatbázisból a Kafka és a Python segítségével. Otthon, ez az oktatóanyag segít a python felhasználónak abban, hogy elkezdjen dolgozni Kafkával.

Az egérkattintások emulálása az egérrel a Clickless Mouse használatával a Windows 10 rendszerben
Ha az egeret vagy a billentyűzetet nem megfelelő testtartásban, túlzott használat mellett használhatja, számos egészségügyi problémát okozhat, beleért...
Ezekkel az ingyenes eszközökkel adja hozzá az egérmozdulatokat a Windows 10 rendszerhez
Az elmúlt években a számítógépek és az operációs rendszerek nagymértékben fejlődtek. Volt idő, amikor a felhasználóknak parancsokkal kellett navigálni...
Az egér mozgásának vezérlése és kezelése több monitor között a Windows 10 rendszerben
Dual Display Mouse Manager lehetővé teszi az egér mozgásának vezérlését és konfigurálását több monitor között, lassítva annak mozgását a határ közeléb...