Apache Kafka

Cara membaca data dari Kafka dengan Python

Cara membaca data dari Kafka dengan Python
Kafka adalah sistem perpesanan terdistribusi open-source untuk mengirim pesan dalam topik yang dipartisi dan berbeda. Streaming data waktu nyata dapat diimplementasikan dengan menggunakan Kafka untuk menerima data antar aplikasi. Ini memiliki tiga bagian utama. Ini adalah produsen, konsumen, dan topik. Produser digunakan untuk mengirim pesan ke topik tertentu dan setiap pesan dilampirkan dengan kunci. Konsumen terbiasa membaca pesan tentang topik tertentu dari kumpulan partisi. Data yang diterima dari produsen dan disimpan di partisi berdasarkan topik tertentu. Banyak perpustakaan yang ada di python untuk membuat produsen dan konsumen untuk membangun sistem pesan menggunakan Kafka. Bagaimana data dari Kafka dapat dibaca menggunakan python ditunjukkan dalam tutorial ini.

Prasyarat

Anda harus menginstal pustaka python yang diperlukan untuk membaca data dari Kafka. Python3 digunakan dalam tutorial ini untuk menulis skrip konsumen dan produser. Jika paket pip belum diinstal sebelumnya di sistem operasi Linux Anda, maka Anda harus menginstal pip sebelum menginstal perpustakaan Kafka untuk python. python3-kafka digunakan dalam tutorial ini untuk membaca data dari Kafka. Jalankan perintah berikut untuk menginstal perpustakaan.

$ pip instal python3-kafka

Membaca data teks sederhana dari Kafka

Berbagai jenis data dapat dikirim dari produsen pada topik tertentu yang dapat dibaca oleh konsumen. Bagaimana data teks sederhana dapat dikirim dan diterima dari Kafka menggunakan produsen dan konsumen ditunjukkan di bagian tutorial ini.

Buat file bernama produser1.py dengan skrip python berikut. KafkaProduser modul diimpor dari perpustakaan Kafka. Daftar broker perlu ditentukan pada saat inisialisasi objek produser untuk terhubung dengan server Kafka. Port default Kafka adalah '9092'. argumen bootstrap_servers digunakan untuk mendefinisikan nama host dengan port. 'Topik_Pertama' ditetapkan sebagai nama topik di mana pesan teks akan dikirim dari produser. Selanjutnya, pesan teks sederhana, 'Halo dari Kafka' dikirim menggunakan Kirim() metode dari KafkaProduser ke topik,'Topik_Pertama'.

produser1.py:

# Impor KafkaProducer dari perpustakaan Kafka
dari kafka import KafkaProducer
# Tentukan server dengan port
bootstrap_servers = ['localhost:9092']
# Tentukan nama topik tempat pesan akan dipublikasikan
topicName = 'Topik_Pertama'
# Inisialisasi variabel produser
produser = KafkaProducer(bootstrap_servers = bootstrap_servers)
# Publikasikan teks dalam topik yang ditentukan
produsen.send(topicName, b'Halo dari kafka… ')
# Cetak pesan
print("Pesan Terkirim")

Buat file bernama konsumen1.py dengan skrip python berikut. KafkaKonsumen modul diimpor dari perpustakaan Kafka untuk membaca data dari Kafka. sistem modul digunakan di sini untuk menghentikan skrip. Nama host dan nomor port yang sama dari produsen digunakan dalam skrip konsumen untuk membaca data dari Kafka. Nama topik konsumen dan produsen harus sama yaitu 'Topik_pertama'.  Selanjutnya, objek konsumen diinisialisasi dengan tiga argumen. Nama topik, id grup, dan informasi server. untuk loop digunakan di sini untuk membaca pengiriman teks dari produser Kafka.

konsumen1.py:

# Impor KafkaConsumer dari perpustakaan Kafka
dari kafka impor KafkaConsumer
# Impor modul sistem
sistem impor
# Tentukan server dengan port
bootstrap_servers = ['localhost:9092']
# Tentukan nama topik dari mana pesan akan diterima
topicName = 'Topik_Pertama'
# Inisialisasi variabel konsumen
konsumen = KafkaConsumer (topicName, group_id ='group1',bootstrap_servers =
bootstrap_servers)
# Baca dan cetak pesan dari konsumen
untuk pesan di konsumen:
print("Nama Topik=%s,Pesan=%s"%(msg.topik, pesan.nilai))
# Hentikan skrip
sistem.keluar()

Keluaran:

Jalankan perintah berikut dari satu terminal untuk menjalankan skrip produser.

$ python3 produser1.py

Output berikut akan muncul setelah mengirim pesan:.

Jalankan perintah berikut dari terminal lain untuk menjalankan skrip konsumen.

$ python3 konsumen1.py

Output menunjukkan nama topik dan pesan teks yang dikirim dari produser.

Membaca data berformat JSON dari Kafka

Data berformat JSON dapat dikirim oleh produsen Kafka dan dibaca oleh konsumen Kafka menggunakan json modul python. Bagaimana data JSON dapat diserialisasi dan dide-serialisasikan sebelum mengirim dan menerima data menggunakan modul python-kafka ditunjukkan di bagian tutorial ini.

Buat skrip python bernama produser2.py dengan skrip berikut. Modul lain bernama JSON diimpor dengan KafkaProduser modul di sini. nilai_serializer argumen digunakan dengan bootstrap_servers argumen di sini untuk menginisialisasi objek produser Kafka. Argumen ini menunjukkan bahwa data JSON akan dikodekan menggunakan 'utf-8' set karakter pada saat pengiriman. Selanjutnya, data berformat JSON dikirim ke topik bernama JSONtopik.

produser2.py:

# Impor KafkaProducer dari perpustakaan Kafka
dari kafka import KafkaProducer
# Impor modul JSON untuk membuat serial data
impor json
# Inisialisasi variabel produser dan setel parameter untuk encode JSON
produser = KafkaProducer(bootstrap_servers =
['localhost:9092'],nilai_serializer=lambda v: json.pembuangan (v).enkode('utf-8'))
# Kirim data dalam format JSON
produsen.send('JSONtopic', 'name': 'fahmida','email':'[email protected]')
 
# Cetak pesan
print("Pesan Dikirim ke JSONtopic")

Buat skrip python bernama konsumen2.py dengan skrip berikut. KafkaKonsumen, sistem dan modul JSON diimpor dalam skrip ini. KafkaKonsumen modul digunakan untuk membaca data berformat JSON dari Kafka. Modul JSON digunakan untuk memecahkan kode pengiriman data JSON yang disandikan dari produsen Kafka. sistem modul digunakan untuk mengakhiri skrip. nilai_deserializer argumen digunakan dengan bootstrap_servers untuk menentukan bagaimana data JSON akan didekode. Lanjut, untuk loop digunakan untuk mencetak semua catatan konsumen dan data JSON yang diambil dari Kafka.

konsumen2.py:

# Impor KafkaConsumer dari perpustakaan Kafka
dari kafka impor KafkaConsumer
# Impor modul sistem
sistem impor
# Impor modul json untuk membuat serial data
impor json
# Inisialisasi variabel konsumen dan setel properti untuk dekode JSON
konsumen = KafkaConsumer ('JSONtopic',bootstrap_servers = ['localhost:9092'],
value_deserializer=lambda m: json.beban (m.dekode('utf-8')))
# Baca data dari kafka
untuk pesan di konsumen:
print("Data Konsumen:\n")
cetak (pesan)
print("\nMembaca dari data JSON\n")
print("Nama:", pesan[6]['nama'])
print("Email:",pesan[6]['email'])
# Hentikan skrip
sistem.keluar()

Keluaran:

Jalankan perintah berikut dari satu terminal untuk menjalankan skrip produser.

$ python3 produser2.py

Script akan mencetak pesan berikut setelah mengirim data JSON.

Jalankan perintah berikut dari terminal lain untuk menjalankan skrip konsumen.

$ python3 konsumen2.py

Output berikut akan muncul setelah menjalankan skrip:.

Kesimpulan:

Data dapat dikirim dan diterima dalam format yang berbeda dari Kafka menggunakan python. Data juga dapat disimpan ke dalam database dan diambil dari database menggunakan Kafka dan python. Saya pulang, tutorial ini akan membantu pengguna python untuk mulai bekerja dengan Kafka.

Tambahkan gerakan Mouse ke Windows 10 menggunakan alat gratis ini
Dalam beberapa tahun terakhir, komputer dan sistem operasi telah berkembang pesat. Ada saat ketika pengguna harus menggunakan perintah untuk menavigas...
Kontrol & kelola gerakan mouse di antara beberapa monitor di Windows 10
Manajer Mouse Tampilan Ganda memungkinkan Anda mengontrol & mengonfigurasi gerakan mouse di antara beberapa monitor, dengan memperlambat gerakannya di...
WinMouse memungkinkan Anda menyesuaikan & meningkatkan gerakan penunjuk tetikus di PC Windows
Jika Anda ingin meningkatkan fungsi default penunjuk tetikus Anda, gunakan freeware WinMouse. Ini menambahkan lebih banyak fitur untuk membantu Anda m...