Apache Kafka

Az első lépések az Apache Kafka és a Python használatával

Az első lépések az Apache Kafka és a Python használatával
Ebben a leckében meglátjuk, hogyan használhatjuk az Apache Kafka-t a Python-nal, és hogyan készíthetünk egy minta alkalmazást az Apache Kafka Python-ügyfél használatával.

A lecke teljesítéséhez aktív telepítést kell végrehajtania a gépen a Kafka számára. Olvassa el az Apache Kafka telepítése az Ubuntuban című cikket, hogy megtudja, hogyan kell ezt megtenni.

Python kliens telepítése az Apache Kafka alkalmazáshoz

Mielőtt megkezdhetnénk az Apache Kafka használatát a Python programban, telepítenünk kell az Apache Kafka Python kliensét. Ez megtehető a csipog (Python csomag index). Itt van egy parancs ennek elérésére:

pip3 telepítse a kafka-python-t

Ez egy gyors telepítés lesz a terminálon:

Python Kafka kliens telepítése PIP használatával

Most, hogy van egy aktív telepítésünk az Apache Kafka-hoz, és telepítettük a Python Kafka klienst is, készen állunk a kódolás megkezdésére.

Producer készítése

Az első dolog, amit üzeneteknek kell közzétennie a Kafkán, egy olyan gyártó alkalmazás, amely üzeneteket küldhet Kafka témáihoz.

Vegye figyelembe, hogy a Kafka-gyártók aszinkron üzenet-gyártók. Ez azt jelenti, hogy az üzenetek Kafka Topic partíción történő közzététele közben végzett műveletek nem blokkolók. A dolgok egyszerűsége érdekében egyszerű JSON kiadót írunk ehhez a leckéhez.

Első lépésként készítsen példányt a Kafka Producer számára:

a kafka importtól KafkaProducer
import json
import pprint
producer = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.szemétlerakók (v).kódolni ('utf-8'))

A bootstrap_servers attribútum a Kafka szerver gazdagépéről és portjáról tájékoztat. Az value_serializer attribútum csak a felmerült JSON-értékek JSON-sorozatosításának célja.

A Kafka Producerrel való játékhoz próbáljuk meg kinyomtatni a Producer és a Kafka klaszterhez kapcsolódó mutatókat:

metrika = producer.mutatók ()
pprint.pprint (metrika)

Most a következőket fogjuk látni:

Kafka Mterics

Most végre próbáljunk meg üzenetet küldeni a Kafka várólistának. Jó példa lesz egy egyszerű JSON-objektum:

termelő.send ('linuxhint', 'topic': 'kafka')

A linuxhint az a témapartíció, amelyen a JSON Object továbbításra kerül. A parancsfájl futtatásakor nem kap semmilyen kimenetet, mivel az üzenetet éppen a téma partícióra küldjük. Itt az ideje, hogy írjon egy fogyasztót, hogy tesztelhessük alkalmazásunkat.

Fogyasztó készítése

Most készen állunk egy új kapcsolat létrehozására Consumer alkalmazásként, és az üzenetek megszerzésére a Kafka témáról. Kezdje egy új példány elkészítésével a Fogyasztó számára:

a kafka importtól a KafkaConsumer
a kafka importból TopicPartition
print ('Kapcsolat létrehozása.')
fogyasztó = KafkaConsumer (bootstrap_servers = 'localhost: 9092')

Most rendeljen hozzá témát ehhez a kapcsolathoz és egy lehetséges offset értéket is.

print ('Téma hozzárendelése.')
fogyasztó.hozzárendelés ([TopicPartition ('linuxhint', 2)])

Végül készen állunk az mssage kinyomtatására:

print ('Üzenet beolvasása.')
üzenet a fogyasztóban:
nyomtatás ("OFFSET:" + str (üzenet [0]) + "\ t MSG:" + str (message))

Ezen keresztül megkapjuk a Kafka Consumer Topic Partition összes közzétett üzenetének listáját. Ennek a programnak a kimenete a következő lesz:

Kafka Consumer

Gyors áttekintésképpen itt van a teljes Producer szkript:

a kafka importtól KafkaProducer
import json
import pprint
producer = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.szemétlerakók (v).kódolni ('utf-8'))
termelő.send ('linuxhint', 'topic': 'kafka')
# metrika = producer.mutatók ()
# pprint.pprint (metrika)

És itt van a teljes Consumer program, amelyet használtunk:

a kafka importtól a KafkaConsumer
a kafka importból TopicPartition
print ('Kapcsolat létrehozása.')
fogyasztó = KafkaConsumer (bootstrap_servers = 'localhost: 9092')
print ('Téma hozzárendelése.')
fogyasztó.hozzárendelés ([TopicPartition ('linuxhint', 2)])
print ('Üzenet beolvasása.')
üzenet a fogyasztóban:
nyomtatás ("OFFSET:" + str (üzenet [0]) + "\ t MSG:" + str (message))

Következtetés

Ebben a leckében megvizsgáltuk, hogyan telepíthetjük és elkezdhetjük használni az Apache Kafka programot a Python programjainkban. Megmutattuk, milyen egyszerű a Kafka-val kapcsolatos egyszerű feladatokat végrehajtani a Pythonban a bemutatott Kafka Client for Python alkalmazással.

Az FPS növelése Linux alatt?
Az FPS jelentése Képkocka másodpercenként. Az FPS feladata a videolejátszások vagy játékteljesítmények képkockasebességének mérése. Egyszerű szavakkal...
A legnépszerűbb Oculus App Lab játékok
Ha Oculus fülhallgató-tulajdonos, akkor tisztában kell lennie az oldalsó töltéssel. Az oldaltöltés a nem áruházi tartalom fejhallgatóra történő telepí...
A legjobb 10 játék az Ubuntuban
A Windows platform a játékok egyik domináns platformja volt, mivel a játékokat hatalmas százalékban fejlesztik ma a natív Windows támogatására. Kihívh...