Kakfa, çoğunlukla büyük verinin gerçek zamanlı işleme alanında kullanılan, yayınlama / abone olma moduna dayalı dağıtılmış bir mesaj kuyruğudur.
1.2, mesaj kuyruğu 1.2.1 geleneksel mesaj kuyruğu yeni mesaj kuyruğu moduYukarıdakiler geleneksel bir mesaj kuyruğudur.Örneğin, bir kullanıcı bilgi kaydetmek istediğinde, kullanıcı bilgileri veri tabanına yazıldıktan sonra, kısa mesaj göndermek gibi başka işlemler de vardır, kullanıcıya geri dönmeden önce bu işlemlerin işlenmesini beklemeniz gerekir.
Yeni kuyruk, örneğin bir kullanıcı kayıt bilgisidir, veriler doğrudan veritabanına atılır ve doğrudan kullanıcıya geri gönderilir.
1.2.2, mesaj kuyruklarını kullanmanın faydalarıA. Ayrıştırma
B. Kurtarılabilirlik
C, tampon
D. Esnek tepe işleme kapasitesi
E. Eşzamansız iletişim
1.2.3, mesaj kuyruğunun moduA, noktadan noktaya modu
Mesaj üreticisi mesajı mesaj kuyruğuna gönderir ve ardından mesaj tüketicisi mesajı kuyruktan çıkarır ve mesajı tüketir Mesaj tüketildikten sonra kuyrukta depolanmaz. Bu nedenle, bir mesaj tüketicisinin tüketilmiş bir mesajı tüketmesi imkansızdır; kuyruk birden fazla tüketiciyi destekler, ancak bir mesaj için yalnızca bir tüketici tüketebilir; birden fazla tüketiciye göndermek istiyorsanız, daha fazlasına ihtiyacınız var. Bu mesajı gönder
B. Yayınlama / abone olma modeli (birden çoka, tüketiciler verileri tükettikten sonra mesajlar silinmeyecektir)
Mesaj üreticisi konuya mesajı yayınlar ve birden fazla mesaj tüketicisi (abone) mesajı aynı anda tüketir Noktadan noktaya yöntemden farklı olarak konuya yayınlanan mesaj tüm aboneler tarafından tüketilir ancak veri saklama sınırlıdır. Varsayılan süre 7 gündür, çünkü bu bir depolama sistemi değildir; Kafka bu moddadır: Birincisi, üreticilerin tüketicilere mesaj göndermesi yerine, tüketicilerin mesajları aktif olarak tüketmeleri (çekmeleri) için iki yol vardır; Birincisi, üreticilerin resmi bir hesaba benzer şekilde tüketicilere aktif olarak mesaj göndermesidir.
1.3, Kafka'nın altyapısıKafka'nın altyapısı esas olarak komisyoncu, üretici ve tüketici gruplarından oluşur ve şu anda hayvanat bahçesi görevlisi içerir
Üretici mesajın gönderilmesinden sorumludur
Aracı, iletileri arabelleğe almaktan sorumludur, konular aracıda oluşturulabilir ve her konu bölüm ve çoğaltma kavramına sahiptir.
Tüketici grubu mesajların işlenmesinden sorumludur.Aynı tüketici grubundaki tüketiciler aynı bölümde veri tüketemezler.Tüketici grubu esas olarak tüketim yeteneğini geliştirmek içindir. Örneğin, bir tüketici 100 parça veri tüketiyordu, ancak şimdi 2 tüketim Tüketiciler, tüketim gücünü artırabilecek 100 adet veri tüketir; bu nedenle, tüketici grubundaki tüketici sayısı bölüm sayısından az olmalıdır, aksi takdirde tüketilecek bölümleri olmayan tüketiciler olacaktır ve bu da kaynak israfına neden olacaktır.
Not: Ancak farklı tüketici gruplarındaki tüketiciler aynı bölüm verilerini kullanabilir
Kakfa bir bileşen kümesi istiyorsa, yalnızca bir zk'ye kaydolmanız gerekir ve zk ayrıca mesaj tüketiminin ilerlemesini veya ofset veya tüketim konumunu korur
Ofset, sürüm 0.9'dan önce zk'de saklanır
0.9 sürümünden sonra, ofset Kafka'da saklanır Kafka, ofset verilerini depolamaya adanmış bir sistem konusunu tanımlar;
Neden değişiyorsun? Esas olarak ofsetin sık sık değiştiği düşünüldüğünde, zk üzerindeki baskı daha büyüktür ve Kafka'nın işlenmesi de daha karmaşıktır.
1.4, kafka kurulumuA.Kafka'nın kurulumu, kurulumu tamamlamak için yalnızca kurulum paketini açmalıdır.
tar -zxvf kafka_2.11-2.1.1.tgz -C / usr / local /B. Yapılandırma dosyasını görüntüleyin
# pwd / usr / local / kafka / config # ll toplam 84 -rw-r - r--. 1 kök kök 9068 Şubat 2019 connect-console-sink.properties -rw-r - r--. 1 kök kök 9098 Şubat 2019 connect-console-source.properties -rw-r - r--. 1 kök kök 53218 Şubat 2019 connect-distributed.properties -rw-r - r--. 1 kök kök 8838 Şubat 2019 connect-file-sink.properties -rw-r - r--. 1 kök kök 8818 Şubat 2019 connect-file-source.properties -rw-r - r--. 1 kök kök 11118 Şubat 2019 connect-log4j.properties -rw-r - r--. 1 kök kök 22628 Şubat 2019 connect-standalone.properties -rw-r - r--. 1 kök kök 12218 Şubat 2019 tüketici.özellikler -rw-r - r--. 1 kök kök 47278 Şubat 2019 log4j.properties -rw-r - r--. 1 kök kök 19258 Şubat 2019 üretici.özellikler -rw-r - r--. 1 kök kök 686516 Ocak 22:00 sunucu-1.özellikler -rw-r - r--. 1 kök kök 686516 Ocak 22:00 server-2.properties -rw-r - r--. 1 kök kök 687316 Ocak 03:57 server.properties -rw-r - r--. 1 kök kök 10328 Şubat 2019 tools-log4j.properties -rw-r - r--. 1 kök kök 11698 Şub 2019 trogdor.conf -rw-r - r--. 1 kök kök 10238 Şub 2019 zookeeper.propertiesC. Yapılandırma dosyası server.properties'i değiştirin
Set broker.id Bu, her bir düğümü ayırt etmek için Kafka kümesinin benzersiz tanımlayıcısıdır.
D. Kafka'nın veri depolama yolunu ayarlayın
Not: Bu dizinde kafka olmayan başka dizin olamaz, aksi takdirde Kafka kümesinin başlatılamamasına neden olur
E. Konuların silinip silinemeyeceğini belirleyin. Varsayılan olarak, Kafka'nın konularının silinmesine izin verilmez.
F.Kafka veri saklama süresi, varsayılan süre 7 gündür
G. Günlük dosyasının maksimum boyutu. Günlük dosyası 1 g'yi aşarsa, yeni bir dosya oluşturulur
H.Kafka'ya bağlı zk'nin adresi ve Kafka'ya bağlanma zaman aşımı süresi
J. Varsayılan bölümlerin sayısı
A. Başlangıç yöntemi 1. Kafka yalnızca tek bir düğümde başlatılabilir, bu nedenle her kakfa düğümünün manuel olarak başlatılması gerekir. Aşağıdaki yöntem engellenir
B. Başlatma modu 2, koruma modunda başlatma, önerilir
A. Mevcut Kafka kümesinin mevcut konularını görüntüleyin
Not: Buraya bağlanan hayvanat bahçesi görevlisi, bağlı kafka değil
B. Bir konu oluşturun, parça ve kopya sayısını belirtin
Not:
çoğaltma faktörü: kopya sayısı
çoğaltma faktörü: bölüm sayısı
Konu: konu adı
Mevcut Kafka kümesinde yalnızca 3 aracı düğümü varsa, maksimum çoğaltma faktörü 3'tür. Aşağıdaki örnek, 4'ün bir kopyasını oluşturur ve bir hata bildirilir
C, konuyu sil
D. Konu bilgilerini görüntüleyin
A. Bir üretici başlatın, şu anda bağlı olan 9092 bağlantı noktasına ve bağlı Kafka kümesine dikkat edin
B. Bir tüketici başlatın. 9092 numaralı bağlantı noktasının şu anda hala bağlı olduğunu ve 2181 numaralı bağlantı noktasının 0.9 sürümünden önce hala bağlı olduğunu unutmayın.
Burada test etmek için 2 tüketiciye başlıyoruz
Not: Bir tüketici grubunun konfigürasyon dosyasını belirtmezseniz, her tüketici varsayılan olarak farklı bir tüketici grubuna aittir.
C. Bir mesaj gönderin, her tüketicinin mesajı alabileceğini görebilirsiniz
D. Kakfa'daki gerçek veriler
Kafka, mesajların küresel sırasını garanti edemez, ancak yalnızca bölüm içindeki mesajların sırasını garanti edebilir, çünkü tüketiciler mesajları rastgele farklı bölümlerde tüketirler.
Kafka'da mesajlar konuya göre sınıflandırılır.Üreticiler mesaj üretir ve tüketiciler mesajlar tüketir.
Konu mantıksal bir kavramdır ve bölüm fiziksel bir kavramdır
Her bölümün kopyalama kavramı vardır
Her bölüm bir günlük dosyasına karşılık gelir. Günlük dosyası, üretici tarafından oluşturulan verileri depolar. Üretici tarafından oluşturulan veriler, günlük dosyasının sonuna sürekli olarak eklenir ve her veri parçasının kendi ofseti vardır. Tüketici Gerçek zamanlı olarak tükettikleri ofseti kaydedecekler, böylece bir hata oluştuğunda, son konumdan tüketmeye devam edecekler.Bu ofset indeks dosyasına kaydedilir.
Kafka ofseti bölüm içinde sıralanır, ancak farklı bölümlerde sıralanmaz.Kafka, verilerin küresel düzenini garanti etmez.
Üretici tarafından üretilen mesajlar sürekli olarak günlük dosyasının sonuna eklendiğinden, günlük dosyasının çok büyük olmasını ve verimsiz veri konumlandırmasına neden olmasını önlemek için Kafka, her bölümü her bir bölüme karşılık gelen birden çok bölüme ayırmak için bir parçalama ve dizin mekanizması kullanır. 2 dosya dizin dosyası ve günlük dosyası, bu 2 dosya aynı klasörde bulunur, klasörün adlandırma kuralı konu adı + bölüm numarasıdır
Indx ve günlük dosyalarının dosya adı, mevcut dizinin ofsetidir en küçük veridir
Kafka verileri nasıl hızlı bir şekilde tüketiyor?
İndeks dosyasında depolanan verilerin indeks bilgileri, ilk sütun ofsettir ve ikinci sütun, tıpkı dosyayı okuduğumuz ve geçerli fare konumunu ayarlamak için seek () işlevini kullandığımız gibi, günlük dosyasındaki bu verilere karşılık gelen uzaklıktır. Verileri daha hızlı bulmak için
3'lük bir ofset ile veri kullanmak istiyorsanız, önce verinin hangi indeks dosyasında ikiye bölünerek olduğunu bulun ve ardından indeksteki ofset aracılığıyla günlük dosyasındaki verilerin ofsetini bulun; bu şekilde verileri hızlı bir şekilde bulabilir ve tüketebilirsiniz.
Yani kakfa verileri diskte depolamasına rağmen, okuma hızı hala çok hızlı
Kafka bölümünün rolü
Kafka'nın bölümlenmesinin ana nedeni, performansı artırmak için eşzamanlılık sağlamaktır, çünkü okuma ve yazma, bölüm olarak bir birim olarak gerçekleştirilir;
Üretici mesajı hangi bölüme gönderiyor?
A. İstemcideki bölümü belirtin
B. Sorgulama (önerilen) mesaj 1 ila p1, mesaj 2 ila p2, mesaj 3 ila p3, mesaj 4 ila p1, mesaj 5 ila p2 ve mesaj 6 ila p3. . . . . . .
3.2 Kafka veri güvenilirliğini nasıl garanti eder? Ack garantiliÜretici tarafından gönderilen verilerin güvenilir bir şekilde belirtilen konuya gönderilebilmesini sağlamak için, konunun her bölümünün üretici tarafından gönderilen verileri aldıktan sonra, üreticiye bir ack (alındı onayı) göndermesi gerekir. , Bir sonraki gönderim turu gerçekleştirilecek, aksi takdirde veriler tekrar gönderilecektir
Peki Kafka yapımcıya ne zaman irade gönderir?
Takipçi ve liderin senkronize olduğundan ve liderin, onu kapattıktan sonra, takipçiden yeni bir lider seçildikten sonra verilerin kaybolmamasını sağlamak için üreticiye bir onay gönderdiğinden emin olun.
Senkronizasyon tamamlandıktan sonra kaç takipçi ack gönderiyor?
1. Seçenek: Senkronizasyonun yarısı tamamlandıktan sonra posta gönder
Çözüm 2: Tüm senkronizasyon tamamlandıktan sonra, ack gönderilir (kafka bu yöntemi kullanır)
İkinci şemayı benimsedikten sonra, aşağıdaki senaryoyu hayal edin, lider verileri alır, tüm takipçiler verileri senkronize etmeye başlar, ancak bir tür hata nedeniyle takipçi senkronizasyonu tamamlayamaz, ardından lider senkronizasyon tamamlanana kadar beklemek zorundadır. , Verimliliği büyük ölçüde etkileyen bir ack gönderebilir, bu sorunu nasıl çözebilirim?
Lider dinamik bir ISR listesi tutar (senkronize bir kopyanın rolü), yalnızca bu listedeki takipçilerin liderle senkronize edilmesi gerekir; ISR'deki takipçi veri senkronizasyonunu tamamladığında, takipçi uzunsa lider üreticiye bir onay gönderecektir. Zaman liderle senkronize değilse, takipçi ISR'den çıkarılır.Bu zaman eşiği de özelleştirilir; lider başarısız olduktan sonra ISR'den yeni bir lider seçilecektir.
ISR düğümü nasıl seçilir?
Öncelikle iletişim süresinin hızlı olması ve lider ile iletişimin hızlı bir şekilde tamamlanması gerekir.Varsayılan süre 10 saniyedir.
Ardından lider veri boşluğuna bakın, varsayılan mesaj sayısı 10.000'dir (sonraki sürüm kaldırılacaktır)
Neden kaldırılsın: Kafka toplu mesajlar gönderdiği için lider tarafından anında kabul edilecek, ancak takipçi henüz çekmedi, bu nedenle sık sık dışarı atılacak ve ISR'ye katılacak. Bu veriler zk ve bellekte saklanacak, bu yüzden sık olacak Zk ve belleği güncelleyin.
Ancak daha az önemli bazı veriler için, verilerin güvenilirlik gereksinimleri çok yüksek değildir ve az miktarda veri kaybı tolere edilebilir, bu nedenle ISR'deki tüm takipçilerin başarıyla kabul etmesini beklemeye gerek yoktur.
Bu nedenle Kafka, kullanıcılara üç düzeyde güvenilirlik sağlar.Kullanıcılar güvenilirliği ve gecikmeyi tartabilir. Bu ayar, Kafka: acks parametre ayarının oluşturulmasında ayarlanır.
A, acks 0'dır
Üretici ack beklemiyor, sadece konuyla ilgili verileri kaybediyor, veri kaybetme olasılığı çok yüksek
B, ack 1
Lider yerleştirildikten sonra, ack konumuna dönecek ve veri kaybı olacaktır.Senkronizasyon tamamlandıktan sonra lider başarısız olursa, veri kaybı meydana gelecektir.
C, ack -1 (tümü)
Lider ve takipçi (ISR) yalnızca yerleştirildiklerinde geri dönecek ve veri çoğaltması olacaktır.Eğer lider yazmayı tamamladıysa ve takipçi senkronizasyonu tamamlanmışsa, ancak ack'in dönüşü başarısız olduğunda, veri çoğaltması meydana gelecektir; aşırı durumlarda, Veri kaybı da olacaktır.Örneğin, takipçi ve lider arasındaki iletişim çok yavaştır, bu nedenle ISR'de yalnızca bir lider düğüm vardır. Şu anda, lider disk yerleştirmeyi tamamladıktan sonra geri dönecektir. Lider bu sırada başarısız olursa, bu kayıplara neden olur veri
LEO: her takipçinin maksimum ofsetini ifade eder
HW (Yüksek Su İşareti): Tüketicilerin görebileceği en büyük ofseti, LSR kuyruğundaki en küçük LEO'yu ifade eder, yani tüketiciler yalnızca 1'den 6'ya kadar olan verileri görebilir ve son veriler görülemez veya tüketilemez.
Liderin takılmasını önlemek için, örneğin mevcut tüketici 8 veriyi tükettikten sonra, lider takılır. Şu anda, örneğin, f2 lider olur ve f2 hiç 9 veriye sahip değildir, o zaman tüketici bir hata bildirir, böylece HW parametresi tasarlanır. , Tüketicilere yalnızca en az veriyi gösterin, yukarıdaki sorunlardan kaçının
3.3.1, HW, veri depolamanın tutarlılığını garanti ederA. Takipçi hatası
Follower başarısız olduktan sonra, LSR geçici olarak yükseltilecektir. Follower kurtarıldıktan sonra, follower, yerel disk tarafından kaydedilen son HW'yi okuyacak ve log dosyasının HW'den daha yüksek kısmını kesecek ve HW'den lider ile senkronizasyonu başlatacaktır. , Takipçinin LEO'su bölümün hw'sinden büyük veya ona eşit olduktan sonra, yani takipçi lideri yakaladıktan sonra LSR'ye yeniden katılabilirsiniz.
B. Lider hatası
Lider başarısız olduktan sonra, ISR'den yeni bir lider seçilecektir. Bundan sonra, birden fazla kopya arasında veri tutarlılığını sağlamak için, kalan takipçiler önce günlük dosyalarının hw'den (yeni lider) daha yüksek kısımlarını keseceklerdir. Onu kesmeyeceğim) ve ardından yeni liderden gelen verileri senkronize etmeyeceğim
Not: Bu, birden çok kopya arasında veri depolama tutarlılığını sağlamak içindir ve verilerin kaybolmayacağını veya kopyalanmayacağını garanti etmez.
3.3.2 Verilerin tekrarlanmamasını sağlamak için bir kez doğru (idempotence)Ack -1 olarak ayarlandı, verilerin kaybolmadığından emin olabilirsiniz, ancak veri çoğaltması olacaktır (en az bir kez)
Ack 0 olarak ayarlanmıştır, verilerin tekrarlanmamasını sağlayabilirsiniz, ancak verilerin kaybolmayacağı garanti edilemez (en fazla bir kez)
Peki ya hem balık hem de ayı pençelerine sahipsen? Şu anda, Exactl bir kez tanıtıldı
0.11 sürümünden sonra, kakfa kümesi içindeki veri çoğaltmasını çözmek için idempotence tanıtıldı. 0.11 sürümünden önce, tüketici işlemi kendi başına yaptı
İdempotence etkinleştirilmişse, ack varsayılan olarak -1'dir. Kafka, her mesaja bir sıra numarası atamak yerine her üreticiye bir pid atar. Pid, bölüm ve sıra numarası aynıysa, Kafka yinelenen verileri değerlendirir , Diske kaydedilmeyecek; ancak üretici kapatırsa, veri çoğaltması olacaktır; bu nedenle idempotence tek bir oturumda tek bir bölümün veri çoğaltmasını çözer, ancak bölümler arasında veya oturumlar arasında olur Veri çoğaltma çözülemez
Mesaj kuyruğunun, mesajları tüketmek için iki yolu vardır: itme (WeChat genel hesabı) ve çekme (kafka). İtme modelinin, farklı tüketim oranlarına sahip tüketicilere uyarlanması zordur, çünkü tüketim gönderme oranı broker tarafından belirlenir ve amacı, mümkün olduğunca çok denemektir. Mesajları en yüksek hızda iletin, ancak bu, tüketicilerin mesajları işlemek için çok geç kalmasına neden olabilir. Tipik belirtiler, hizmet reddi ve ağ tıkanıklığıdır. Çekme yöntemi, tüketicilerin mesajları uygun bir oranda tüketmesine izin verir.
Çekme modelinin dezavantajı, Kafka'nın verisi yoksa tüketicilerin sonsuz bir döngüye girip her zaman boş veri döndürebilmesidir.Buna yanıt olarak, Kafka tüketicileri veri tüketirken, o anda tüketim için kullanılabilir veri yoksa bir zaman aşımı parametresi geri verir. , Tüketici geri dönmeden önce bir süre bekleyecek
3.4.2 Bölüm tahsis stratejisi Bir tüketici grubunun birden çok tüketicisi vardır ve bir konu birden çok bölüme sahiptir. Bu nedenle kaçınılmaz olarak bölüm tahsisi konusunu içerecek, yani hangi bölümün hangi tüketici tarafından tüketildiğini belirleyecektir.
Kafka, biri konu grupları için yoklama (RountRobin) ve diğeri tek konular için (Aralık) olmak üzere iki yöntem sunar.
Rotasyon eğitimi: Ön koşul, bir tüketicideki tüketicilerin aynı konuya abone olmaları gerektiğidir. Aksi takdirde sorunlar olacaktır; varsayılan olmayan yol
Aynı tüketici grubundaki tüketiciler aynı anda aynı bölümü kullanamazlar
Örneğin, üç tüketici bir konunun 9 bölümünü tüketiyor
Bir tüketici grubunda 2 tüketici varsa, tüketici grubu aynı anda 2 konu tüketir ve her konu üç bölümden oluşur.
İlk olarak, iki konu bir konu olarak ele alınacak, ardından konuya ve bölüme göre karma hale getirilecek ve ardından hash'e göre sıralanacaktır. Ardından dönüşümlü olarak bir tüketici grubundaki 2 tüketiciye dağıtın
Ya aşağıdaki şekilde abone olursanız?
Örneğin, 3 konu var, her konu 3 bölümden oluşuyor ve bir tüketici grubunda 2 tüketici var. Tüketici 1, konu1 ve konu2'ye abone olur, tüketici 2 konu2 ve konu3'e abone olur, daha sonra böyle bir senaryoda, rotasyon eğitim yöntemini kullanarak konuya abone olurken sorunlar olacaktır.
Abone olmanın aşağıdaki yolu ise
Örneğin, 2 konu vardır, her konu 3 bölümden oluşur ve bir tüketici grubu 2 tüketiciye sahiptir.Tüketici 1 konu 1'e abone olur ve tüketici 2 konu 2'ye abone olur, bu nedenle rotasyon eğitim yöntemini kullanarak konulara abone olurken sorunlar olacaktır.
Bu nedenle, konulara sıralı bir şekilde abone olmanın ön koşulunun, bir tüketici grubundaki tüm tüketicilerin aynı konulara abone olması olduğunu her zaman vurguladık;
Dolayısıyla, döndürme yöntemi kafka'nın varsayılan yöntemi değildir
Aralık: tek bir konuya göre bölünmüştür, varsayılan ayırma yöntemi
Menzil sorunu, eşit olmayan tüketici verileri sorununa neden olacaktır
Örneğin, aşağıdaki örnekte, bir tüketici grubu 2 konuya abone olursa, tüketici 14 bölüm tüketirken, başka bir tüketici yalnızca 2 bölüm tüketir
Bölümleme stratejisi ne zaman tetiklenecek? Tüketici grubundaki tüketici sayısı değiştiğinde, tüketicileri eklemek veya tüketicileri tüketicileri azaltmak gibi bölümleme stratejisinin ayarlanmasını tetikleyecektir.
3.4.3 Ofsetin bakımıTüketiciler, tüketim sırasında elektrik kesintileri ve kesinti gibi arızalar yaşayabildiğinden, tüketiciler düzeldikten sonra, arızadan önce lokasyondan tüketmeye devam etmeleri gerekir, bu nedenle tüketicilerin, arızanın düzeltilmesinden sonra tüketmeye devam edebilmeleri için tükettikleri ofseti kaydetmeleri gerekir.
Ofset ile kaydedilmiş 2 lokasyon vardır, biri zk diğeri kafka
İlk olarak zk'ye kaydedilen ofsete bakın
Benzersiz fark, tüketici grubu, konu ve bölümün üç unsuru tarafından belirlenir
Dolayısıyla, tüketici grubundaki bir tüketici telefonu kapattıktan sonra veya tüketici yine de ofseti alabilir.
Denetleyici düğümü zk ile iletişim kurar ve verileri senkronize eder.İlk önce gelen düğüm ilk önce denetleyiciyi ve denetleyici kim olursa olsun kaydedecektir. Diğer düğümleri ve denetleyici bilgilerini senkronize tutun
3.4.5, tüketici grubu durumuTüketici grubu kimliğini değiştirin
3 parça veri göndermek için bir tüketiciyi başlatın
Tüketicileri başlatmak için bir tüketici grubu belirleyin, üç tüketiciyi başlatın, her tüketicinin bir parça veri tükettiğini görebilirsiniz.
Farklı grupların aynı konuyu kullanabileceğini göstermede, iki tüketicinin tüketicilerinin aynı veri parçasını tükettiğini görüyoruz.
Yeniden bir tüketici başlatın, bu tüketici başka bir tüketici grubuna aittir
Çok düğümlü paralel çalışma
Kafka'nın üretici üretim verileri log dosyasına yazılmalıdır.Yazım işlemi sırasında sırayla yazılan dosyanın sonuna eklenir.Resmi web sitesinde gösteren veriler bulunur. Aynı disk için sıralı yazma 600M / S'ye ulaşabilirken, rastgele yazma yalnızca 100K / S'dir. Bu, diskin mekanik yapısı ile ilgilidir.Sıralı yazmanın hızlı olmasının nedeni, çok fazla kafa adresleme süresinden tasarruf sağlamasıdır.
Normal şartlar altında, önce verileri çekirdek alanına okuyun, verileri çekirdek alanından kullanıcı alanına okuyun ve ardından işletim sisteminin io arayüzünü ayarlarken çekirdek alanına yazın ve son olarak sabit diske yazın.
Kafka bunu yapar ve io akışını doğrudan çekirdek alanına aktarır, bu nedenle Kafka'nın performansı çok yüksektir
Kafka kümesindeki bir aracı, kümedeki aracının çevrimiçi ve çevrimdışı yönetiminden, tüm konuların bölüm kopyalarının tahsisinden ve lider seçiminden sorumlu denetleyici olarak seçilecektir.