Selle õppetunni läbimiseks peab teie arvutis olema Kafka aktiivne install. Lugege jaotist Apache Kafka installimine Ubuntu, et teada saada, kuidas seda teha.
Apache Kafka jaoks Pythoni kliendi installimine
Enne kui hakkame töötama Apache Kafkaga Pythoni programmis, peame Apache Kafka jaoks installima Pythoni kliendi. Seda saab teha kasutades pip (Pythoni paketi register). Selle saavutamiseks on käsk:
pip3 installi kafka-pythonSee on kiire install terminali:
Python Kafka kliendi installimine PIP abil
Nüüd, kui meil on Apache Kafka jaoks aktiivne install ja oleme installinud ka Python Kafka kliendi, oleme valmis kodeerimist alustama.
Produtsendi tegemine
Esimene asi, mis Kafkas tuleb avaldada, on tootjarakendus, mis võib saata sõnumeid Kafka teemadele.
Pange tähele, et Kafka tootjad on asünkroonsed sõnumite tootjad. See tähendab, et Kafka Topici sektsioonis sõnumi avaldamise ajal tehtud toimingud pole blokeerivad. Asjade lihtsuse huvides kirjutame selle õppetunni jaoks lihtsa JSON-i kirjastaja.
Alustamiseks tehke Kafka Producerile eksemplar:
alates kafka import KafkaProducerimport json
impordi print
tootja = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
väärtus_serializer = lambda v: json.prügimäed (v).kodeerida ('utf-8'))
Atribuut bootstrap_servers annab teada Kafka serveri hostist ja pordist. Atribuut value_serializer on ette nähtud ainult JSONi leitud JSON-i väärtuste jadastamiseks.
Kafka Produceriga mängimiseks proovime printida Produceri ja Kafka klastriga seotud mõõdikud:
mõõdikud = tootja.mõõdikud ()pprint.pprint (mõõdikud)
Näeme nüüd järgmist:
Kafka Mterics
Nüüd proovime lõpuks saata sõnumi Kafka järjekorda. Hea näide on lihtne JSON-objekt:
tootja.saada ('linuxhint', 'topic': 'kafka')The linuxhint on teemajaotus, millele JSON-objekt saadetakse. Skripti käivitamisel ei saa te väljundit, kuna sõnum saadetakse lihtsalt teema sektsiooni. On aeg kirjutada tarbija, et saaksime oma rakendust testida.
Tarbija tegemine
Nüüd oleme valmis looma uue ühenduse tarbijarakendusena ja saama sõnumeid Kafka teemalt. Alustage tarbija jaoks uue eksemplari loomisega:
alates kafka import KafkaTarbijaalates kafka import TopicPartition
print ('Ühenduse loomine.')
tarbija = KafkaConsumer (bootstrap_servers = 'localhost: 9092')
Nüüd määrake sellele ühendusele teema ja ka võimalik nihke väärtus.
print ('Teema määramine.')tarbija.omistama ([TopicPartition ('linuxhint', 2)])
Lõpuks oleme valmis mssage'i printima:
print ('Sõnumi saamine.')tarbijale mõeldud sõnumi jaoks:
print ("OFFSET:" + str (teade [0]) + "\ t MSG:" + str (sõnum))
Selle kaudu saame nimekirja kõigist Kafka tarbijateemalises jaotises avaldatud sõnumitest. Selle programmi väljund on:
Kafka tarbija
Kiireks viitamiseks on siin Produceri täielik skript:
alates kafka import KafkaProducerimport json
impordi print
tootja = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
väärtus_serializer = lambda v: json.prügimäed (v).kodeerida ('utf-8'))
tootja.saada ('linuxhint', 'topic': 'kafka')
# mõõdikud = tootja.mõõdikud ()
# print.pprint (mõõdikud)
Ja siin on täielik tarbijaprogramm, mida me kasutasime:
alates kafka import KafkaTarbijaalates kafka import TopicPartition
print ('Ühenduse loomine.')
tarbija = KafkaConsumer (bootstrap_servers = 'localhost: 9092')
print ('Teema määramine.')
tarbija.omistama ([TopicPartition ('linuxhint', 2)])
print ('Sõnumi saamine.')
tarbijale mõeldud sõnumi jaoks:
print ("OFFSET:" + str (teade [0]) + "\ t MSG:" + str (sõnum))
Järeldus
Selles tunnis vaatasime, kuidas saaksime oma Pythoni programmides Apache Kafka installida ja seda kasutama hakata. Näitasime, kui lihtne on Pythonis Kafkaga seotud lihtsate ülesannete täitmine koos näidatud Pythoni Kafka kliendiga.