For å fullføre denne leksjonen, må du ha en aktiv installasjon for Kafka på maskinen din. Les install Apache Kafka på Ubuntu for å vite hvordan du gjør dette.
Installere Python -klient for Apache Kafka
Før vi kan begynne å jobbe med Apache Kafka i Python -programmet, må vi installere Python -klienten for Apache Kafka. Dette kan gjøres ved hjelp av Pip (Python Package Index). Her er en kommando for å oppnå dette:
PIP3 installer Kafka-Python
Dette vil være en rask installasjon på terminalen:
Python Kafka klientinstallasjon ved hjelp av PIP
Nå som vi har en aktiv installasjon for Apache Kafka og vi også har installert Python Kafka -klienten, er vi klare til å begynne å kode.
Lage en produsent
Den første tingen å måtte publisere meldinger på Kafka er en produsentapplikasjon som kan sende meldinger til emner i Kafka.
Merk at Kafka -produsenter er asynkrone meldingsprodusenter. Dette betyr at operasjonene som er utført mens en melding er publisert på Kafka Topic Partition, ikke-blokkering. For å holde ting enkelt, vil vi skrive enkle JSON -utgiver for denne leksjonen.
For å starte, lage en forekomst for Kafka -produsenten:
Fra Kafka import Kafkaproducer
Importer JSON
Importer pprint
Produsent = Kafkaproducer (
bootstrap_servers = 'localhost: 9092',
Value_Serializer = Lambda V: JSON.dumper (v).kode ('UTF-8'))
Attributtet bootstrap_servers informerer om verten og porten for Kafka -serveren. Value_serializer -attributtet er bare for JSON -serialisering av JSON -verdier som oppstår.
For å leke med Kafka -produsenten, la oss prøve å skrive ut beregningene relatert til produsenten og Kafka Cluster:
Metrics = Produsent.METRICS ()
Pprint.PPrint (Metrics)
Vi vil se følgende nå:
Kafka Mterics
La oss endelig prøve å sende litt melding til Kafka -køen. Et enkelt JSON -objekt vil være et godt eksempel:
produsent.Send ('LinuxHint', 'Topic': 'Kafka')
De Linuxhint er emnepartisjonen som JSON -objektet vil bli sendt på. Når du kjører skriptet, får du ikke noen utdata ettersom meldingen nettopp sendes til emnepartisjonen. Det er på tide å skrive en forbruker slik at vi kan teste søknaden vår.
Lage en forbruker
Nå er vi klare til å lage en ny forbindelse som en forbrukerapplikasjon og få meldingene fra Kafka -emnet. Begynn med å lage et nytt forekomst for forbrukeren:
Fra Kafka import Kafkaconsumer
Fra Kafka import emnepartisjon
trykk ('lage forbindelse.')
Forbruker = KafkaConsumer (bootstrap_servers = 'localhost: 9092')
Nå, tilordne et emne til denne forbindelsen og en mulig forskyvningsverdi også.
trykk ('Tilordne emne.')
forbruker.tilordne ([TopicPartition ('Linuxhint', 2)])
Endelig er vi klare til å skrive ut MSSage:
trykk ('Få melding.')
For melding i forbruker:
print ("offset:" + str (melding [0]) + "\ t msg:" + str (melding))
Gjennom dette vil vi få en liste over alle publiserte meldinger på Kafka Consumer Topic Partition. Utgangen for dette programmet vil være:
Kafka forbruker
Bare for en rask referanse, her er det komplette produsentskriptet:
Fra Kafka import Kafkaproducer
Importer JSON
Importer pprint
Produsent = Kafkaproducer (
bootstrap_servers = 'localhost: 9092',
Value_Serializer = Lambda V: JSON.dumper (v).kode ('UTF-8'))
produsent.Send ('LinuxHint', 'Topic': 'Kafka')
# Metrics = Produsent.METRICS ()
# pprint.PPrint (Metrics)
Og her er det komplette forbrukerprogrammet vi brukte:
Fra Kafka import Kafkaconsumer
Fra Kafka import emnepartisjon
trykk ('lage forbindelse.')
Forbruker = KafkaConsumer (bootstrap_servers = 'localhost: 9092')
trykk ('Tilordne emne.')
forbruker.tilordne ([TopicPartition ('Linuxhint', 2)])
trykk ('Få melding.')
For melding i forbruker:
print ("offset:" + str (melding [0]) + "\ t msg:" + str (melding))
Konklusjon
I denne leksjonen så vi på hvordan vi kan installere og begynne å bruke Apache Kafka i Python -programmene våre. Vi viste hvor enkelt det er å utføre enkle oppgaver relatert til Kafka i Python med den demonstrerte Kafka -klienten for Python.