Apache Kafka

Kom godt i gang med Apache Kafka og Python

Kom godt i gang med Apache Kafka og Python
I denne lektion vil vi se, hvordan vi kan bruge Apache Kafka med Python og lave en prøveapplikation ved hjælp af Python-klienten til Apache Kafka.

For at gennemføre denne lektion skal du have en aktiv installation til Kafka på din maskine. Læs Installer Apache Kafka på Ubuntu for at vide, hvordan du gør dette.

Installation af Python-klient til Apache Kafka

Før vi kan begynde at arbejde med Apache Kafka i Python-programmet, skal vi installere Python-klienten til Apache Kafka. Dette kan gøres ved hjælp af pip (Python pakkeindeks). Her er en kommando for at opnå dette:

pip3 installer kafka-python

Dette vil være en hurtig installation på terminalen:

Python Kafka klientinstallation ved hjælp af PIP

Nu hvor vi har en aktiv installation af Apache Kafka, og vi også har installeret Python Kafka-klienten, er vi klar til at starte kodning.

At lave en producent

Den første ting at skulle offentliggøre beskeder på Kafka er en producentapplikation, der kan sende beskeder til emner i Kafka.

Bemærk, at Kafka-producenter er asynkrone meddelelsesproducenter. Dette betyder, at de handlinger, der udføres, mens en meddelelse er offentliggjort på Kafka Topic-partitionen, ikke blokerer. For at holde tingene enkle skriver vi en enkel JSON-udgiver til denne lektion.

For at starte skal du oprette en instans for Kafka Producer:

fra kafka import KafkaProducer
import json
importer pprint
producent = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.lossepladser (v).kode ('utf-8'))

Attributten bootstrap_servers informerer om værten og porten til Kafka-serveren. Attributten value_serializer er kun med henblik på JSON-serialisering af JSON-værdier, der er stødt på.

For at lege med Kafka Producer, lad os prøve at udskrive metrics relateret til Producer og Kafka-klyngen:

metrics = producent.metrics ()
pprint.pprint (metrics)

Vi ser følgende ud nu:

Kafka Mterics

Lad os endelig prøve at sende en besked til Kafka-køen. Et simpelt JSON-objekt vil være et godt eksempel:

producent.send ('linuxhint', 'topic': 'kafka')

Det linuxhint er emnepartitionen, som JSON-objektet sendes videre til. Når du kører scriptet, får du ikke noget output, da beskeden bare sendes til emnepartitionen. Det er tid til at skrive en forbruger, så vi kan teste vores ansøgning.

At skabe en forbruger

Nu er vi klar til at oprette en ny forbindelse som en forbrugerapplikation og få beskederne fra Kafka-emnet. Start med at oprette en ny instans til forbrugeren:

fra kafka import KafkaConsumer
fra kafka import TopicPartition
print ('Opretter forbindelse.')
forbruger = KafkaConsumer (bootstrap_servers = 'localhost: 9092')

Tildel nu et emne til denne forbindelse og en mulig forskydningsværdi også.

print ('Tildeling af emne.')
forbruger.tildel ([TopicPartition ('linuxhint', 2)])

Endelig er vi klar til at udskrive beskeden:

print ('Få besked.')
til besked i forbrugeren:
print ("OFFSET:" + str (besked [0]) + "\ t MSG:" + str (besked))

Gennem dette får vi en liste over alle offentliggjorte meddelelser på Kafka Consumer Topic Partition. Output for dette program vil være:

Kafka Forbruger

Bare for en hurtig reference er her det komplette producentscript:

fra kafka import KafkaProducer
import json
importer pprint
producent = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.lossepladser (v).kode ('utf-8'))
producent.send ('linuxhint', 'topic': 'kafka')
# metrics = producer.metrics ()
# pprint.pprint (metrics)

Og her er det komplette forbrugerprogram, vi brugte:

fra kafka import KafkaConsumer
fra kafka import TopicPartition
print ('Opretter forbindelse.')
forbruger = KafkaConsumer (bootstrap_servers = 'localhost: 9092')
print ('Tildeling af emne.')
forbruger.tildel ([TopicPartition ('linuxhint', 2)])
print ('Få besked.')
til besked i forbrugeren:
print ("OFFSET:" + str (besked [0]) + "\ t MSG:" + str (besked))

Konklusion

I denne lektion så vi på, hvordan vi kan installere og begynde at bruge Apache Kafka i vores Python-programmer. Vi viste, hvor let det er at udføre enkle opgaver relateret til Kafka i Python med den demonstrerede Kafka Client for Python.

Shadow of the Tomb Raider til Linux-vejledning
Shadow of the Tomb Raider er den tolvte tilføjelse til Tomb Raider-serien - en action-adventure-spilfranchise oprettet af Eidos Montreal. Spillet blev...
Sådan styrkes FPS i Linux?
FPS står for Billeder i sekundet. FPS's opgave er at måle billedhastigheden i videoafspilninger eller spiloptræden. I enkle ord betegnes antallet af u...
Top Oculus App Lab-spil
Hvis du er Oculus-headset-ejer, skal du være opmærksom på sideloading. Sideladning er processen med at installere ikke-butiksindhold på dit headset. S...