Apache Kafka

Cara membaca data dari Kafka dengan Python

Cara membaca data dari Kafka dengan Python
Kafka adalah sistem pesanan diedarkan sumber terbuka untuk menghantar mesej dalam topik yang dipartisi dan berbeza. Penstriman data masa nyata dapat dilaksanakan dengan menggunakan Kafka untuk menerima data antara aplikasi. Ia mempunyai tiga bahagian utama. Ini adalah pengeluar, pengguna, dan topik. Pengeluar digunakan untuk menghantar mesej ke topik tertentu dan setiap mesej dilampirkan dengan kunci. Pengguna digunakan untuk membaca mesej mengenai topik tertentu dari kumpulan partisi. Data yang diterima dari pengeluar dan disimpan di partisi berdasarkan topik tertentu. Terdapat banyak perpustakaan di python untuk mewujudkan pengeluar dan pengguna untuk membina sistem pesanan menggunakan Kafka. Bagaimana data dari Kafka dapat dibaca menggunakan python ditunjukkan dalam tutorial ini.

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

Membaca 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 Kafka
dari 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 Kafka
dari 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.py

Output berikut akan muncul setelah menghantar mesej.

Jalankan arahan berikut dari terminal lain untuk melaksanakan skrip pengguna.

$ python3 pengguna1.py

Keluaran 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 Kafka
dari 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 Kafka
dari 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.py

Skrip akan mencetak mesej berikut setelah mengirim data JSON.

Jalankan arahan berikut dari terminal lain untuk melaksanakan skrip pengguna.

$ python3 pengguna2.py

Output 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.

Cara Memasang League Of Legends di Ubuntu 14.04
Sekiranya anda peminat League of Legends, maka ini adalah peluang bagi anda untuk menguji menjalankan League of Legends. Perhatikan bahawa LOL disokon...
Pasang permainan Strategi OpenRA terkini di Ubuntu Linux
OpenRA adalah mesin permainan Strategi Masa Nyata / Bebas yang mencipta semula permainan Westwood awal seperti Command & Conquer klasik: Makluman Mera...
Pasang Dolphin Emulator terkini untuk Gamecube & Wii di Linux
Dolphin Emulator membolehkan anda memainkan permainan Gamecube & Wii pilihan anda di Komputer Peribadi Linux (PC). Menjadi emulator permainan sumber ...