Apache Kafka

Apache Kafka ja Pythoniga alustamine

Apache Kafka ja Pythoniga alustamine
Selles õppetükis näeme, kuidas saame Apache Kafkat Pythoniga kasutada ja Apache Kafka Pythoni kliendi abil näidisrakenduse teha.

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-python

See 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 KafkaProducer
import 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 KafkaTarbija
alates 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 KafkaProducer
import 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 KafkaTarbija
alates 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.

Lahing Wesnothi õpetuse eest
Battle for Wesnoth on üks populaarsemaid avatud lähtekoodiga strateegiamänge, mida saate praegu mängida. See mäng pole mitte ainult olnud väga pikka a...
0 A.D. Õpetus
Paljudest strateegiamängudest on 0 A.D. suudab silma paista põhjaliku tiitli ja väga sügava taktikalise mänguna, hoolimata sellest, et see on avatud l...
Unity3D õpetus
Sissejuhatus Unity 3D-sse Unity 3D on võimas mängude arendamise mootor. See on platvormidevaheline, mis võimaldab teil luua mänge mobiilseadmetele, ve...