Prasyarat
Anda mesti memasang pustaka python yang diperlukan untuk membaca data dari Kafka. Python3 digunakan dalam tutorial ini untuk menulis skrip pengguna dan pengeluar. Sekiranya paket pip tidak dipasang sebelumnya dalam sistem operasi Linux anda, maka anda harus memasang pip sebelum memasang perpustakaan Kafka untuk python. python3-kafka digunakan dalam tutorial ini untuk membaca data dari Kafka. Jalankan arahan berikut untuk memasang perpustakaan.
$ pip memasang python3-kafkaMembaca data teks mudah dari Kafka
Berbagai jenis data dapat dihantar dari pengeluar mengenai topik tertentu yang dapat dibaca oleh pengguna. Bagaimana data teks mudah dihantar dan diterima dari Kafka menggunakan pengeluar dan pengguna ditunjukkan dalam bahagian tutorial ini.
Buat fail bernama pengeluar1.py dengan skrip python berikut. KafkaProducer modul diimport dari perpustakaan Kafka. Senarai broker perlu ditentukan pada masa permulaan objek pengeluar untuk berhubung dengan pelayan Kafka. Pelabuhan lalai Kafka adalah '9092'. argumen bootstrap_servers digunakan untuk menentukan nama host dengan port. 'Topik_Topik'ditetapkan sebagai nama topik di mana mesej teks akan dihantar dari pengeluar. Seterusnya, pesanan teks ringkas, 'Helo dari Kafka'dihantar menggunakan hantar () kaedah KafkaProducer ke topik, 'Topik_Topik'.
pengeluar1.py:
# Import KafkaProducer dari perpustakaan Kafkadari kafka import KafkaProducer
# Tentukan pelayan dengan port
bootstrap_servers = ['localhost: 9092']]
# Tentukan nama topik di mana mesej akan diterbitkan
topicName = 'Pertama_Topik'
# Permulaan pemboleh ubah pengeluar
pengeluar = KafkaProducer (bootstrap_servers = bootstrap_servers)
# Menerbitkan teks dalam topik yang ditentukan
penerbit.hantar (topicName, b'Hello dari kafka ... ')
# Cetak mesej
cetak ("Mesej Dihantar")
Buat fail bernama pengguna1.py dengan skrip python berikut. Pelanggan Kafka modul diimport dari perpustakaan Kafka untuk membaca data dari Kafka. sys modul digunakan di sini untuk menamatkan skrip. Nama host dan nombor port yang sama pengeluar digunakan dalam skrip pengguna untuk membaca data dari Kafka. Nama topik pengguna dan pengeluar mestilah sama iaitu 'Topik_topik'. Seterusnya, objek pengguna diinisialisasi dengan tiga argumen. Nama topik, id kumpulan dan maklumat pelayan. untuk gelung digunakan di sini untuk membaca teks yang dihantar dari pengeluar Kafka.
pengguna1.py:
# Import KafkaPengguna dari perpustakaan Kafkadari kafka import KafkaConsumer
# Modul sys import
import sys
# Tentukan pelayan dengan port
bootstrap_servers = ['localhost: 9092']]
# Tentukan nama topik dari mana mesej akan diterima
topicName = 'Pertama_Topik'
# Permulaan pemboleh ubah pengguna
pengguna = KafkaConsumer (topicName, group_id = 'group1', bootstrap_servers =
pelayan bootstrap)
# Baca dan cetak mesej daripada pengguna
untuk pesanan pengguna:
cetak ("Nama Topik =% s, Mesej =% s"% (msg.topik, msg.nilai))
# Tamatkan skrip
sys.keluar ()
Pengeluaran:
Jalankan arahan berikut dari satu terminal untuk melaksanakan skrip pengeluar.
$ python3 pengeluar1.pyOutput berikut akan muncul setelah menghantar mesej.
Jalankan arahan berikut dari terminal lain untuk melaksanakan skrip pengguna.
$ python3 pengguna1.pyKeluaran menunjukkan nama topik dan mesej teks yang dihantar dari pengeluar.
Membaca data berformat JSON dari Kafka
Data berformat JSON dapat dihantar oleh pengeluar Kafka dan dibaca oleh pengguna Kafka menggunakan si json modul python. Bagaimana data JSON dapat diselaraskan dan di-siri sebelum menghantar dan menerima data menggunakan modul python-kafka ditunjukkan dalam bahagian tutorial ini.
Buat skrip python bernama pengeluar2.py dengan skrip berikut. Modul lain bernama JSON diimport dengan KafkaProducer modul di sini. nilai_serializer hujah digunakan dengan pelayan bootstrap hujah di sini untuk memulakan objek pengeluar Kafka. Argumen ini menunjukkan bahawa data JSON akan dikodkan menggunakan 'utf-8'watak yang ditetapkan pada masa penghantaran. Seterusnya, data berformat JSON dihantar ke topik yang dinamakan JSONtopik.
pengeluar2.py:
# Import KafkaProducer dari perpustakaan Kafkadari kafka import KafkaProducer
# Import modul JSON untuk membuat siri data
import json
# Permulaan pemboleh ubah pengeluar dan tetapkan parameter untuk pengekodan JSON
pengeluar = KafkaProducer (bootstrap_servers =
['localhost: 9092'], value_serializer = lambda v: json.lambakan (v).mengekod ('utf-8'))
# Hantar data dalam format JSON
penerbit.hantar ('JSONtopic', 'name': 'fahmida', 'email': '[email dilindungi]')
# Cetak mesej
cetak ("Mesej Dihantar ke JSONtopik")
Buat skrip python bernama pengguna2.py dengan skrip berikut. Pelanggan Kafka, sys dan modul JSON diimport dalam skrip ini. Pelanggan Kafka modul digunakan untuk membaca data berformat JSON dari Kafka. Modul JSON digunakan untuk menyahkod data JSON yang dikodkan yang dihantar dari pengeluar Kafka. Sys modul digunakan untuk menamatkan skrip. value_deserializer hujah digunakan dengan pelayan bootstrap untuk menentukan bagaimana data JSON akan disahkod. Seterusnya, untuk gelung digunakan untuk mencetak semua rekod pengguna dan data JSON yang diambil dari Kafka.
pengguna2.py:
# Import KafkaPengguna dari perpustakaan Kafkadari kafka import KafkaConsumer
# Modul sys import
import sys
# Import modul json untuk membuat siri data
import json
# Permulaan pemboleh ubah pengguna dan tetapkan harta untuk penyahkod JSON
pengguna = KafkaConsumer ('JSONtopic', bootstrap_servers = ['localhost: 9092'],
value_deserializer = lambda m: json.muatan (m.menyahkod ('utf-8')))
# Baca data dari kafka
untuk pesanan dalam pengguna:
cetak ("Rekod pengguna: \ n")
cetak (mesej)
cetak ("\ nMembaca dari data JSON \ n")
cetak ("Nama:", mesej [6] ['name'])
cetak ("E-mel:", mesej [6] ['e-mel'])
# Tamatkan skrip
sys.keluar ()
Pengeluaran:
Jalankan arahan berikut dari satu terminal untuk melaksanakan skrip pengeluar.
$ python3 pengeluar2.pySkrip akan mencetak mesej berikut setelah mengirim data JSON.
Jalankan arahan berikut dari terminal lain untuk melaksanakan skrip pengguna.
$ python3 pengguna2.pyOutput berikut akan muncul setelah menjalankan skrip.
Kesimpulan:
Data boleh dihantar dan diterima dalam format yang berbeza dari Kafka menggunakan python. Data juga boleh disimpan ke dalam pangkalan data dan diambil dari pangkalan data menggunakan Kafka dan python. Saya pulang, tutorial ini akan membantu pengguna python untuk mula bekerjasama dengan Kafka.