Bu günlerde evden çalışırken derlenen Kafka bilgi noktalarının tam listesi

Bir, Kafka'ya genel bakış

1.1. Tanım

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 modu

Yukarı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 modu

A, 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 kurulumu

A.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.properties

C. 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ı

1.5, kafka'yı başlat

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

1.6, Kafka operasyonu

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

1.7. Üreticiyi mesaj üretmeye başlayın. Kafka, bir üretici ve tüketici müşteriyle birlikte gelir

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

İkincisi, kafka mimarisi derinlemesine

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.

2.1, Kafka'nın iş akışı

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.

2.2, kafka prensibi

Ü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ı

Üçüncüsü, kafka üreticileri ve tüketicileri

3.1, Kafka yapımcısı

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

3.3 Kafka, tüketim verilerinin tutarlılığını nasıl sağlar? HW Garantili

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 eder

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

3.4 Kafka Tüketicileri

3.4.1 Tüketim yöntemi

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 durumu

Tü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

Dört, Kafka'nın verimli okuma ve yazma mekanizması

4.1, dağıtılmış dağıtım

Çok düğümlü paralel çalışma

4.2, diski sırayla yaz

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.

4.3, sıfır kopyalama teknolojisi

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

Beş, kafka'da hayvanat bahçesi görevlisinin rolü

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.

Kuru mallar: String'in hashCode'u neden çarpan olarak 31'i seçer?
önceki
Alıştırma: SpringBoot, zamanlama görevlerinin dinamik olarak eklenmesini, silinmesini, başlatılmasını ve durdurulmasını gerçekleştirir
Sonraki
Bu makale, mikro hizmetler altında işlem tutarlılığının nasıl sağlanacağından bahsediyor
Mikro hizmetler için birleşik oturum açma kimlik doğrulaması nasıl yapılır? JWT?
Kod oluşturma aracı: IDEA'nın güçlü Canlı Şablonları
4D zarif grafikler ve metin, sizi JVM bellek düzeninde ve ayrıntılı analizde ustalaşmaya götürür
En son ve en eksiksiz! İnternet şirketi işe yeniden başlamayı tekrar erteleyeceğini açıkladı Firmanız var mı?
Bu çöp koleksiyonunu okuduktan sonra, görüşmeci ile konuşmak sorun değil
Java'da eşzamanlı ve eşzamansız programlama, orijinal on arabirim artık yalnızca bir arabirime ihtiyaç duymaktadır
Bir dizi temel otomatik dağıtım ve inşa süreci
SpringBoot; filtreler, önleyiciler ve dilimler uygular
Zhou Yutong'un sık sık görünüşü yükseldi! Küçük yeşil bir takım elbise giymek bir erkek çocuktan daha yakışıklı, gerçekten kıyaslanamaz
Song Yanfei'nin tatil yeri tarzı giyinmesi nefreti çekiyor! Tropiklerde böyle giyiyoruz, üşüyoruz
En yeni Japon sanatçı Yuko Shinki'nin en son özel sunucusu, yumuşak ve sevimli tarzı çok hoş ve model popüler.
To Top