Apaçi Kafka

Python ile Kafka'dan veri nasıl okunur

Python ile Kafka'dan veri nasıl okunur
Kafka, mesajı bölümlenmiş ve farklı konularda göndermek için açık kaynaklı bir dağıtılmış mesajlaşma sistemidir. Uygulamalar arasında veri almak için Kafka kullanılarak gerçek zamanlı veri akışı gerçekleştirilebilir. Üç ana bölümü vardır. Bunlar üretici, tüketici ve konulardır. Üretici, belirli bir konuya mesaj göndermek için kullanılır ve her mesaja bir anahtar eklenir. Tüketici, bölümler kümesinden belirli bir konudaki bir mesajı okumak için kullanılır. Üreticiden alınan ve belirli bir konuya göre bölümlerde saklanan veriler. Kafka kullanarak bir mesajlaşma sistemi oluşturmak için üretici ve tüketici oluşturmak için python'da birçok kitaplık bulunmaktadır. Bu eğitimde Kafka'dan alınan verilerin python kullanılarak nasıl okunabileceği gösterilmektedir.

Önkoşul

Kafka'dan veri okumak için gerekli python kitaplığını kurmanız gerekir. Python3, bu öğreticide tüketici ve üretici komut dosyasını yazmak için kullanılır. Pip paketi Linux işletim sisteminizde daha önce kurulmamışsa, python için Kafka kitaplığını kurmadan önce pip kurmanız gerekir. python3-kafka bu öğreticide Kafka'dan veri okumak için kullanılır. Kütüphaneyi kurmak için aşağıdaki komutu çalıştırın.

$ pip kurulumu python3-kafka

Kafka'dan basit metin verilerini okuma

Üreticiden, tüketici tarafından okunabilecek belirli bir konuda farklı türde veriler gönderilebilir. Bu öğreticinin bu bölümünde, üretici ve tüketici kullanılarak Kafka'dan basit bir metin verisinin nasıl gönderilip alınabileceği gösterilmektedir.

adlı bir dosya oluşturun yapımcı1.p aşağıdaki python betiği ile. Kafka Yapımcı modül Kafka kitaplığından içe aktarılır. Aracı listesinin, Kafka sunucusuna bağlanmak için üretici nesnesi başlatma sırasında tanımlaması gerekir. Kafka'nın varsayılan bağlantı noktası '9092'. bootstrap_servers argümanı, ana bilgisayar adını bağlantı noktasıyla tanımlamak için kullanılır. 'İlk_Konu', üreticiden kısa mesajın gönderileceği bir konu adı olarak ayarlanır. Ardından, basit bir metin mesajı, 'Kafka'dan merhaba' kullanılarak gönderilir gönder() yöntemi Kafka Yapımcı konuya,'İlk_Konu'.

yapımcı1.not:

# KafkaProducer'ı Kafka kitaplığından içe aktar
kafka'dan KafkaProducer'ı içe aktar
# Bağlantı noktası ile sunucu tanımlayın
bootstrap_servers = ['localhost:9092']
# Mesajın yayınlanacağı konu adını tanımlayın
topicName = 'İlk_Konu'
# Üretici değişkenini başlat
yapımcı = KafkaProducer(bootstrap_servers = bootstrap_servers)
# Tanımlanmış bir konuda metin yayınla
üretici.send(konuAdı, b'Kafka'dan merhaba… ')
# Mesajı yazdır
print("Mesaj Gönderildi")

adlı bir dosya oluşturun tüketici1.p aşağıdaki python betiği ile. KafkaTüketici modül, Kafka'dan veri okumak için Kafka kitaplığından içe aktarılır. sistem modül betiği sonlandırmak için burada kullanılır. Üreticinin aynı ana bilgisayar adı ve bağlantı noktası numarası, Kafka'dan veri okumak için tüketici komut dosyasında kullanılır. Tüketici ve üreticinin konu adı aynı olmalıdır, yani 'First_topic'.  Ardından, tüketici nesnesi üç argümanla başlatılır. Konu adı, grup kimliği ve sunucu bilgileri. için döngü burada Kafka üreticisinden gönderilen metni okumak için kullanılır.

tüketici1.not:

# KafkaConsumer'ı Kafka kütüphanesinden içe aktar
kafka'dan Kafka'yı içe aktarConsumer
# Sistem modülünü içe aktar
ithalat sistemi
# Bağlantı noktası ile sunucu tanımlayın
bootstrap_servers = ['localhost:9092']
# Mesajın alınacağı konu adını tanımlayın
topicName = 'İlk_Konu'
# Tüketici değişkenini başlat
tüketici = KafkaConsumer (topicName, group_id ='group1',bootstrap_servers =
bootstrap_servers)
# Tüketiciden gelen mesajı okuyun ve yazdırın
tüketicideki msg için:
print("Konu Adı=%s,Mesaj=%s"%(msg.konu,mesaj.değer))
# Komut dosyasını sonlandır
sistem.çıkış()

Çıktı:

Yapımcı komut dosyasını yürütmek için aşağıdaki komutu bir terminalden çalıştırın.

$ python3 yapımcı1.p

Mesajı gönderdikten sonra aşağıdaki çıktı görünecektir.

Tüketici komut dosyasını yürütmek için aşağıdaki komutu başka bir terminalden çalıştırın.

$ python3 tüketici1.p

Çıktı, konu adını ve üreticiden gönderilen metin mesajını gösterir.

Kafka'dan JSON formatlı verileri okuma

JSON formatlı veriler Kafka üreticisi tarafından gönderilebilir ve kullanılarak Kafka tüketicisi tarafından okunabilir json piton modülü. Bu öğreticinin bu bölümünde, python-kafka modülünü kullanarak verileri göndermeden ve almadan önce JSON verilerinin nasıl serileştirilebileceği ve seri hale getirilebileceği gösterilmektedir.

adlı bir python betiği oluşturun yapımcı2.p aşağıdaki komut dosyası ile. JSON adlı başka bir modül ile içe aktarılır Kafka Yapımcı modül burada. değer_serileştirici argüman ile kullanılır bootstrap_servers Kafka üreticisinin nesnesini başlatmak için burada argüman. Bu argüman, JSON verilerinin ' kullanılarak kodlanacağını gösterirutf-8' karakter seti gönderme sırasında. Ardından, JSON formatlı veriler adlı konuya gönderilir JSONkonu.

yapımcı2.not:

# KafkaProducer'ı Kafka kitaplığından içe aktar
kafka'dan KafkaProducer'ı içe aktar
# Verileri seri hale getirmek için JSON modülünü içe aktarın
json'u içe aktar
# Üretici değişkenini başlat ve JSON kodlaması için parametre ayarla
yapımcı = KafkaProducer(bootstrap_servers =
['localhost:9092'],value_serializer=lambda v: json.çöplükler(v).kodlamak('utf-8'))
# JSON formatında veri gönder
üretici.send('JSONtopic', 'name': 'fahmida','email':'[email protected]')
 
# Mesajı yazdır
print("JSONtopic'e Gönderilen Mesaj")

adlı bir python betiği oluşturun tüketici2.p aşağıdaki komut dosyası ile. KafkaTüketici, sistem ve JSON modülleri bu komut dosyasında içe aktarılır. KafkaTüketici modülü, Kafka'dan JSON formatlı verileri okumak için kullanılır. JSON modülü, Kafka üreticisinden gönderilen kodlanmış JSON verilerinin kodunu çözmek için kullanılır. sistem modül betiği sonlandırmak için kullanılır. value_deserializer argüman ile kullanılır bootstrap_servers JSON verilerinin nasıl çözüleceğini tanımlamak için. Sonraki, için döngü, Kafka'dan alınan tüm tüketici kayıtlarını ve JSON verilerini yazdırmak için kullanılır.

tüketici2.not:

# KafkaConsumer'ı Kafka kütüphanesinden içe aktar
Kafka'dan Kafka'yı içe aktarConsumer
# Sistem modülünü içe aktar
ithalat sistemi
# Verileri seri hale getirmek için json modülünü içe aktarın
json'u içe aktar
# Tüketici değişkenini başlat ve JSON kod çözme için özelliği ayarla
tüketici = KafkaConsumer ('JSONtopic',bootstrap_servers = ['localhost:9092'],
value_deserializer=lambda m: json.yükler (m.kod çözme('utf-8')))
# Kafka'dan veri oku
tüketicideki mesaj için:
print("Tüketici kayıtları:\n")
yazdır(mesaj)
print("\nJSON verilerinden okuma\n")
print("Ad:",mesaj[6]['isim'])
print("E-posta:",mesaj[6]]['email'])
# Komut dosyasını sonlandır
sistem.çıkış()

Çıktı:

Yapımcı komut dosyasını yürütmek için aşağıdaki komutu bir terminalden çalıştırın.

$ python3 yapımcı2.p

Komut dosyası, JSON verilerini gönderdikten sonra aşağıdaki mesajı yazdıracaktır.

Tüketici komut dosyasını yürütmek için aşağıdaki komutu başka bir terminalden çalıştırın.

$ python3 tüketici2.p

Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Sonuç:

Veriler, python kullanılarak Kafka'dan farklı formatlarda gönderilebilir ve alınabilir. Veriler ayrıca veritabanında saklanabilir ve Kafka ve python kullanılarak veritabanından alınabilir. Ben eve geldim, bu eğitim python kullanıcısının Kafka ile çalışmaya başlamasına yardımcı olacak.

Linux için En İyi Komut Satırı Oyunları
Komut satırı, Linux kullanırken yalnızca en büyük müttefikiniz değil, aynı zamanda eğlence kaynağı da olabilir, çünkü onu özel bir grafik kartı gerekt...
Linux için En İyi Gamepad Eşleme Uygulamaları
Tipik bir klavye ve fare giriş sistemi yerine bir gamepad ile Linux'ta oyun oynamayı seviyorsanız, sizin için bazı faydalı uygulamalar var. Çoğu PC oy...
Linux Oyuncuları için Faydalı Araçlar
Linux'ta oyun oynamayı seviyorsanız, oyun deneyimini geliştirmek için Wine, Lutris ve OBS Studio gibi uygulamaları ve yardımcı programları kullanmış o...