Apache Kafka

Komma igång med Apache Kafka och Python

Komma igång med Apache Kafka och Python
I den här lektionen kommer vi att se hur vi kan använda Apache Kafka med Python och göra en provapplikation med Python-klienten för Apache Kafka.

För att slutföra den här lektionen måste du ha en aktiv installation för Kafka på din maskin. Läs Installera Apache Kafka på Ubuntu för att veta hur du gör det.

Installerar Python-klient för Apache Kafka

Innan vi kan börja arbeta med Apache Kafka i Python-programmet måste vi installera Python-klienten för Apache Kafka. Detta kan göras med pip (Python-paketindex). Här är ett kommando för att uppnå detta:

pip3 installera kafka-python

Detta kommer att vara en snabb installation på terminalen:

Python Kafka klientinstallation med PIP

Nu när vi har en aktiv installation för Apache Kafka och vi också har installerat Python Kafka-klienten är vi redo att börja koda.

Skapa en producent

Det första du måste publicera meddelanden på Kafka är en producentapplikation som kan skicka meddelanden till ämnen i Kafka.

Observera att Kafka-producenter är asynkrona meddelandeproducenter. Detta innebär att de åtgärder som utförs medan ett meddelande publiceras på Kafka Topic-partitionen inte blockeras. För att hålla sakerna enkla kommer vi att skriva en enkel JSON-utgivare för den här lektionen.

För att börja, gör en instans för Kafka Producer:

från kafka import KafkaProducer
importera json
importera pprint
producent = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.dumpar (v).koda ('utf-8'))

Attributet bootstrap_servers informerar om värd och port för Kafka-servern. Attributet value_serializer är bara för syftet med JSON-serialisering av påträffade JSON-värden.

För att spela med Kafka Producer, låt oss försöka skriva ut mätvärdena relaterade till klustret Producer och Kafka:

mätvärden = producent.metrik()
pprint.pprint (mätvärden)

Vi ser följande ut nu:

Kafka Mterics

Låt oss äntligen försöka skicka ett meddelande till Kafka-kön. Ett enkelt JSON-objekt är ett bra exempel:

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

De linuxhint är ämnespartitionen på vilken JSON-objektet kommer att skickas vidare. När du kör skriptet får du ingen utdata eftersom meddelandet bara skickas till ämnespartitionen. Det är dags att skriva en konsument så att vi kan testa vår ansökan.

Skapa en konsument

Nu är vi redo att skapa en ny anslutning som konsumentapplikation och få meddelanden från Kafka-ämnet. Börja med att skapa en ny instans för konsumenten:

från kafka import KafkaConsumer
från kafka importera TopicPartition
skriv ut ('Gör anslutning.')
konsument = KafkaConsumer (bootstrap_servers = 'localhost: 9092')

Tilldela nu ett ämne till denna anslutning och ett eventuellt förskjutningsvärde också.

skriva ut ('Tilldela ämne.')
konsument.tilldela ([TopicPartition ('linuxhint', 2)])

Slutligen är vi redo att skriva ut meddelandet:

skriv ut ('Få meddelande.')
för meddelande hos konsument:
skriv ut ("OFFSET:" + str (meddelande [0]) + "\ t MSG:" + str (meddelande))

Genom detta får vi en lista över alla publicerade meddelanden på Kafka Consumer Topic Partition. Resultatet för detta program kommer att vara:

Kafka konsument

Bara för en snabb referens, här är det kompletta producentmanuset:

från kafka import KafkaProducer
importera json
importera pprint
producent = KafkaProducer (
bootstrap_servers = 'localhost: 9092',
value_serializer = lambda v: json.dumpar (v).koda ('utf-8'))
producent.skicka ('linuxhint', 'topic': 'kafka')
# mätvärden = producent.metrik()
# pprint.pprint (mätvärden)

Och här är det kompletta konsumentprogrammet vi använde:

från kafka import KafkaConsumer
från kafka importera TopicPartition
skriv ut ('Gör anslutning.')
konsument = KafkaConsumer (bootstrap_servers = 'localhost: 9092')
skriva ut ('Tilldela ämne.')
konsument.tilldela ([TopicPartition ('linuxhint', 2)])
skriv ut ('Få meddelande.')
för meddelande hos konsument:
skriv ut ("OFFSET:" + str (meddelande [0]) + "\ t MSG:" + str (meddelande))

Slutsats

I den här lektionen tittade vi på hur vi kan installera och börja använda Apache Kafka i våra Python-program. Vi visade hur enkelt det är att utföra enkla uppgifter relaterade till Kafka i Python med den demonstrerade Kafka Client för Python.

HD Remastered Games för Linux som aldrig tidigare hade en Linux-version
Många spelutvecklare och utgivare kommer med HD-remaster av gamla spel för att förlänga livstiden för franchisen, snälla fans som begär kompatibilitet...
Hur man använder AutoKey för att automatisera Linux-spel
AutoKey är ett verktyg för desktopautomatisering för Linux och X11, programmerat i Python 3, GTK och Qt. Med hjälp av dess skript och MACRO-funktional...
Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...