Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 10630|Yanıt: 1

Kafka yapılandırma parametrelerinin ayrıntılı açıklaması

[Bağlantıyı kopyala]
Yayınlandı 24.06.2021 11:47:12 | | |
Broker Configs

MülkiyetTemerrütAçıklama
broker.id Her aracı benzersiz negatif olmayan tam sayı kimliği ile tanımlanabilir; Bu id, aracı kurumun "adı" olarak kullanılabilir ve varlığı, aracının tüketicileri karıştırmadan farklı bir host/port'a geçiş yapmasını sağlar. Kimlik benzersiz olduğu sürece istediğiniz numarayı kimlik olarak seçebilirsiniz.
log.dirs/tmp/kafka-logsKafka'nın veri depoladığı yol. Bu yol benzersiz değildir, birden fazla olabilir ve yollar sadece virgülle ayrılır; Yeni bir bölüm oluşturulduğunda, en az sayıda bölüm içeren yol altında yapılması seçilir.
liman6667sunucu, istemcinin bağlandığı portu kabul eder
zookeeper.connectsıfırZooKeeper bağlantı dizisi formatı şudur: hostname:port; burada ana bilgisayar adı ve port, sırasıyla ZooKeeper kümesindeki bir düğümün ana bilgisayarı ve portudur. Bir host çöktüğünde diğer ZooKeeper düğümlerine bağlanmak için aşağıdaki gibi birden fazla ana bilgisayar oluşturabilirsiniz:
hostname1:port1, hostname2:port2, hostname3:port3.

ZooKeeper, kümedeki tüm kafka verilerini belirli bir yol altında depolamak için "chroot" yolu eklemenize izin verir. Birden fazla Kafka kümesi veya diğer uygulama aynı ZooKeeper kümesini kullandığında, veri depolama yolunu ayarlamak için bu yöntemi kullanabilirsiniz. Bu, bağlantı dizisini şu şekilde biçimlendirerek uygulanabilir:
hostname1:port1,hostname2:port2,hostname3:port3/chroot/path
Bu kurulum, tüm kafka küme verilerini /chroot/path path altında saklar. Broker'ı başlatmadan önce bu yolu oluşturmanız gerektiğini ve tüketicilerin aynı bağlantı formatını kullanmasını unutmayın.
message.max.bayt1000000Bir sunucunun alabileceği maksimum mesaj boyutu. Tüketici ve üreticinin bu mülkle ilgili ayarlarının senkronize edilmesi önemlidir, aksi takdirde üreticinin yayımladığı mesaj tüketici için çok büyük olur.
num.network.threads3Sunucunun ağ taleplerini işlemek için kullandığı ağ iş parçacığı sayısı; Genelde bu mülkü değiştirmenize gerek yoktur.
num.io.threads8Sunucunun isteği işlemek için kullandığı I/O iş parçacığı; İş parçacığı sayısı en az sabit disk sayısına eşit olmalıdır.
background.threads4Arka plan işleme için kullanılan iş parçacığı, örneğin dosya silme; Bu mülkü değiştirmene gerek yok.
queued.max.requests500Bir ağ iş parçacığının yeni istek okumayı durdurmadan önce işlemesi için kuyruk atılabilecek maksimum istek sayısı.
host.namesıfırbroker'ın host adı; Host adı zaten ayarlanmışsa, aracı kurum yalnızca bu adrese bağlı olur; Eğer ayar yoksa, tüm arayüzlere bağlanır ve ZK'ya bir kopya yayımlar
advertised.host.namesıfırAyarlanmışsa, üreticiye, tüketicilere ve diğer brokerlere aracının ana adı olarak gönderilir
advertised.portsıfırBu port, üreticilere, tüketicilere ve diğer aracı kurumlara verilir ve bağlantı kurmak için kullanılır; Sadece gerçek port ile sunucunun bağlaması gereken port farklıysa ayarlanması gerekir.
socket.send.buffer.bytes100 * 1024SO_SNDBUFF Sunucunun soket bağlantıları oluşturmak için kullandığı önbellek boyutu
socket.receive.buffer.bytes100 * 1024SO_RCVBUFF önbellek boyutu, sunucu tarafından soketlere bağlanmak için kullanılır
socket.request.max.bayt100 * 1024 * 1024Sunucu tarafından izin verilen maksimum istek boyutu;  Bu, sunucu taşmasını önler, çünkü bu Java yığın boyutundan daha küçük olmalı
num.partitions1Bir konu oluşturulurken bölüm sayısı verilmezse, bu sayı konu altındaki varsayılan bölüm sayısı olur.
log.segment.bytes1014*1024*1024Konu bölümünün günlükleri, belirli bir dizindeki birçok dosyada saklanır ve bu dosyalar bölüm loglarını segmentlere ayırır; Bu öznitelik, her dosyanın maksimum boyutudur; Boyutlar bu değere ulaştığında, yeni bir dosya oluşturulur. Bu ayar, her konunun temeli tarafından geçersiz kılınabilir.
Görünüm  Bağlantı girişi görünür.
log.roll.hours24 * 7Dosya log.segment.bytes'a ulaşmasa bile, dosya oluşturma süresi bu özelliğe ulaştığında yeni bir dosya oluşturulur. Bu ayar ayrıca konu düzeyindeki ayarlarla da geçersiz kılılabilir;
GörünümBağlantı girişi görünür.
log.cleanup.policySil
log.retention.minutes ve log.retention.hours7 günHer log dosyasının silinmeden önce kaydedildiği zaman. Varsayılan veri tasarrufu süresi tüm konular için aynıdır.
log.retention.minutes ve log.retention.bytes, hangi özelliğin taştığı olursa olsun log dosyalarının silinmesini ayarlamak için kullanılır.
Bu özellik ayarı, konu temelde ayarlandığında geçersiz hale getirilebilir.
GörünümBağlantı girişi görünür.
log.retention.bytes-1Her konu altında her bölüm tarafından kaydedilen toplam veri miktarı; Bu, bölüm başına üst sınırdır, bu sayının bölüm sayısıyla çarpılması, konu başına depolanan toplam veri miktarıdır. Ayrıca not: Hem log.retention.hours hem de log.retention.bytes ayarlanmışsa, her iki sınırı aşıldığında segment dosyası silinecektir.
Bu ayarın her konu tarafından geçersiz kılabileceğini unutmayın.
GörünümBağlantı girişi görünür.
log.retention.check.interval.ms5 dakikaDosya özelliklerinin silme gereksinimlerini karşılayıp karşılamadığını belirlemek için log segmentli dosyalar arasındaki aralığı kontrol edin.
log.cleaner.enablefalseBu özellik false olarak ayarlandığında, günlük maksimum süre veya boyut için saklandığında silinir. Doğru olarak ayarlanırsa, kaydetme özniteliği üst sınıra ulaştığında gerçekleşirBağlantı girişi görünür.
log.cleaner.threads1Log sıkıştırma yapan iş parçacığı sayısı
log.cleaner.io.max.bytes.per.secondHiç kimseBir log temizleyicinin log sıkıştırma yaparken sahip olabileceği maksimum G/O sayısı. Bu ayar, aktif istek hizmetlerine müdahale etmemek için temizleyiciyi sınırlar.
log.cleaner.io.buffer.size500*1024*1024Log Cleaner, temizlik sürecinde kayıtları indeksler ve kullanılan önbelleğin boyutunu azaltır. Bol bellek sağlamak için büyük ayarlamak en iyisidir.
log.cleaner.io.buffer.load.factor512*1024Kütük temizliği için gereken I/O parçasının büyüklüğü. Bu ayarı değiştirmene gerek yok.
log.cleaner.io.buffer.load.factor0.9log temizliğinde kullanılan hash tablosunun yük faktörü; Bu seçeneği değiştirmene gerek yok.
log.cleaner.backoff.ms15000Logun temizlendiği zaman aralığı uygulanır
log.cleaner.min.cleanable.ratio0.5Bu yapılandırma, log sıkıştırıcının kütükleri ne sıklıkla temizlemeye çalıştığını kontrol eder (varsayılırBağlantı girişi görünür.açık). Varsayılan olarak, kütüklerin %50'sinden fazlasını temizlemekten kaçının. Bu oran, yedek günlüğün maksimum tükettiği alana bağlıdır (kütüklerin %50'si %50 sıkıştırılmıştır). Daha yüksek bir oran, daha az atık ve daha fazla alan daha verimli temizlenebilecek anlamına gelir. Bu ayar her konu ayarında geçersiz kılılabilir.
GörünümBağlantı girişi görünür.
log.cleaner.delete.retention.ms1 gündepolama süresi; Sıkıştırılmış günlükleri tutma için maksimum süre; Ayrıca istemcinin mesaj tüketme süresinin maksimum olduğu zamandır ve log.retention.minutes arasındaki fark, birinin sıkıştırılmamış veriyi kontrol etmesi, diğerinin ise sıkıştırılmış veriyi kontrol etmesidir; bu da konu oluşturulduğunda belirtilen sürede üzerine yazılır.
log.index.size.max.bayt10*1024*1024Log segmenti başına maksimum boyut. Log boyutu bu değere ulaşırsa, boyut log.segment.bytes sınırını aşmasa bile yeni bir log segmenti oluşturulmalıdır.
log.index.interval.bytes4096Bir getirme işlemi yaparken, en yakın ofseti belirli bir alanla taramanız gerekir, ayar ne kadar büyükse o kadar iyi, genel olarak varsayılan değeri kullanın
log.flush.interval.messagesLong.MaxValueLog dosyasını mesaj biriktirmeden önce diske "senkronize" eder. Disk IO işlemleri yavaş bir işlem olmakla birlikte, aynı zamanda "veri güvenilirliği" için gerekli bir yöntem olduğundan, sabit diske kürlenme zaman aralığının gerekli olup olmadığını kontrol edin. Bu değer çok büyükse, çok uzun bir "senkronizasyon" süresine (IO engelleme) yol açar, eğer bu değer çok küçükse uzun süre "fsync" (IO engelleme) süresine yol açar, eğer bu değer çok küçükse çok sayıda "senkronizasyon" süresine yol açar, bu da genel istemci isteğinin belirli bir gecikmesi olduğu ve fiziksel sunucunun arızalanması fsync olmadan mesajların kaybına yol açar.
log.flush.scheduler.interval.msLong.MaxValueFsync aralıklarının gerekli olup olmadığını kontrol edin
log.flush.interval.msLong.MaxValueBu sayı, "fsync" zaman aralığını kontrol etmek için kullanılır; mesaj sayısı diske katılaşan mesaj sayısına ulaşmazsa ancak son disk senkronizasyonundan geçen zaman aralığı eşiğe ulaşırsa, disk senkronizasyonu da tetiklenir.
log.delete.delay.ms60000Dosya indekste temizlendikten sonraki tutma süresi genellikle değiştirilmesine gerek yoktur
auto.create.topics.enabletrueKonuların otomatik oluşturulmasına izin verilip verilmediği. Eğer doğruysa, üretim veya getirme olmadığında otomatik olarak var olmayan bir konu oluşturur. Aksi takdirde, konu oluşturmak için komut satırını kullanmanız gerekir
controller.socket.timeout.ms30000Bölüm yönetim denetleyicisi yedekleme yaptığında soketin zaman aşımına ulaşma süresi.
controller.message.queue.sizeInt.MaxValuekontrolör-broker-kanallar
default.replication.factor1Yedek kopyaların varsayılan sayısı yalnızca otomatik olarak oluşturulan konuları ifade eder
replica.lag.time.max.ms10000Bir takipçi bu süre içinde bir getirme talebi göndermezse, lider takipçisini tekrar ISR'den çıkarır ve takipçinin asıldığını düşüner
replica.lag.max.mesajlar4000Bir replikada bu saydan fazla yedek olmayan varsa, lider takipçiyi çıkarır ve takipçiyi asılmış sayır
replica.socket.timeout.ms30*1000Veri yedeklerken soket ağ talepleri için lider zaman aşımı zamanı
replica.socket.receive.buffer.bytes64*1024Yedekleme sırasında lidere ağ isteği gönderilirken soket alma tamponu
replica.fetch.max.bayt1024*1024Yedekleme sırasında her getirmenin maksimum değeri
replica.fetch.min.bytes500Lider yedek talebi yaptığında verinin lidere ulaşması için maksimum bekleme süresi
replica.fetch.min.bytes1Her getirmeden sonra yedekleme sırasında yanıtın en küçük boyutu
num.replica.fetchers1Liderden gelen verileri yedeken iş parçacıklarının sayısı
replica.high.watermark.checkpoint.interval.ms5000Her replika, en yüksek su seviyesinin ne sıklıkla kürlendiğini kontrol eder
fetch.purgatory.purge.interval.requests1000Temizleme aralığını fetch talep ediyor
producer.purgatory.purge.interval.requests1000Üretici bir temizleme aralığı talep ediyor
zookeeper.session.timeout.ms6000Hayvanat bahçesi görevlisi oturum molası.
zookeeper.connection.timeout.ms6000Müşterinin hayvanat bahçesi görevlisi ile bağlantı kurmak için beklediği maksimum süre
zookeeper.sync.time.ms2000zk takipçisi zk liderinin gerisinde en uzun süre geride kaldı
controlled.shutdown.enabletrueAracı kurumun kapanışını kontrol edip etmenin mümkün olup olmadığı. Mümkünse, komisyoncu kapanış öncesi tüm liderleri diğer brokerlere taşıyabilir. Bu, kapatma sürecinde ulaşılmamayı azaltır.
controlled.shutdown.max.denemeler3Tamamlanmamış kapatma yapmadan önce bir kapatmayı başarıyla uygulayabilen komut sayısı.
controlled.shutdown.retry.backoff.ms5000Kapatmalar arasındaki geri çekilme süresi
auto.leader.rebalance.enabletrueEğer bu doğruysa, denetleyici otomatik olarak brokerların liderliğini bölümler üzerinde dengeler
lider.dengesizlik.komisyoncu başı.yüzde10Her aracı kurumun izin verdiği maksimum dengesizlik oranı
leader.dengesizlik.kontrol.interval.seconds300Lider dengesizliğinin sıklığını kontrol edin
offset.metadata.max.bayt4096İstemciler maksimum ofsetlerini kaydetmesine izin verir
max.connections.per.ipInt.MaxValueHer IP adresine her aracı başına kurulabilecek maksimum bağlantı sayısı
max.connections.per.ip.overrides IP veya ana bilgisayar adı başına varsayılan bağlantının maksimum kapsamı
connections.max.idle.ms600000Boş bağlantılar için zaman aşımına bağlı sınır
log.roll.jitter. {ms,saatler}0logRollTimeMillis'ten soyutlanan maksimum titreme sayısı
num.recovery.threads.per.data.dir1Her veri dizininin kurtarma kaydı için kullandığı iş parçacığı sayısı
unclean.leader.election.enabletrueISR'de replika dışı ayarının lider olarak kullanılıp kullanılmayacağını gösterir
delete.topic.enablefalseKonuları silme
offsets.topic.num.partitions50Ofset commit konusu için bölüm sayısı. Dağıtımdan sonra bunu değiştirmek şu anda desteklenmediğinden, üretim için daha yüksek bir ayar kullanmanızı öneririz (örneğin 100-200).
offsets.topic.retention.minutes1440Bu zaman sınırından daha uzun süredir var olan ofsetler, silinmeyi bekleyen olarak işaretlenir
offsets.retention.check.interval.ms600000Ofset yöneticisi, bayat ofsetlerin sıklığını kontrol eder
offsets.topic.replication.factor3Konunun yedek kopyalarının sayısı. Daha yüksek erişilebilirliği garanti etmek için daha yüksek sayıların belirlenmesi önerilir
offset.topic.segment.bytes104857600Konuyu kaydırır.
offsets.load.buffer.size5242880Bu ayar parti boyutuyla ilgilidir ve ofset segmentinden okuma sırasında kullanılır.
offsets.commit.required.acks-1Onay sayısı, offset taahhüdünün kabul edilebilir olması için belirlenmelidir ve genellikle değiştirilmesine gerek yoktur


MülkiyetTemerrütSunucu Varsayılan ÖzelliğiAçıklama
temizlik.politikaSillog.cleanup.policyYa "delete" ya da "compact"; Bu dize, eski log kısmının nasıl kullanılacağını gösterir; Varsayılan yöntem ("silmek"), geri dönüşüm süresi veya boyut sınırına ulaştığında eski parçayı atacaktır. "kompakt" ise kütükleri sıkıştırır
delete.retention.ms86400000 (24 saat)log.cleaner.delete.retention.mslog.retention.minutes arasındaki fark, birinin sıkıştırılmamış veriyi kontrol etmesi, diğerinin sıkıştırılmış veriyi kontrol etmesidir. Bu yapılandırma, konu oluşturulduğunda sabitleme parametreleri tarafından geçersiz kılınabilir
flush.messagesHiç kimselog.flush.interval.messagesBu yapılandırma, fsync loglarını zorunlu kılmak için bir zaman aralığı belirler. Örneğin, bu seçenek 1 olarak ayarlanmışsa, her mesajdan sonra fsync gereklidir, 5 olarak ayarlanırsa her 5 mesaj için fsync gereklidir. Genel olarak, bu değeri belirlememeniz önerilir. Bu parametrin ayarlanması, "veri güvenilirliği" ile "performans" arasında gerekli bir dengeyi gerektirir. Bu değer çok büyükse, her seferinde uzun süre "fsync" (IO engelleme) ile sonuçlanır ve bu değer çok küçükse, çok sayıda "fsync" ile sonuçlanır, bu da genel istemci isteğinde belirli bir gecikme anlamına gelir. Fiziksel sunucu arızası, fsync olmadan mesajların kaybolmasına neden olur.
flush.msHiç kimselog.flush.interval.msBu yapılandırma, fsync loglarını diske zorlama arasındaki zaman aralığını sabitlemek için kullanılır; Örneğin, 1000 olarak ayarlanmışsa, her 1000ms'te fsync gereklidir. Bu seçenek genellikle tavsiye edilmez
index.interval.bytes4096log.index.interval.bytesVarsayılan ayar, mesaja her 4096 baytta bir indeks eklememizi sağlar ve daha fazla indeks okuma mesajını daha yakın yapar, ancak indeks boyutu artırılır. Bu seçenek genellikle gerekli değildir
max.message.bytes1000000max.message.bytesKafka ekleme mesajının maksimum boyutu. Bu boyutu büyütürseniz, tüketicinizin göndermelerini maksimum boyutlara getirebilmesi için getirme boyutunu da artırmanız gerektiğini unutmayın.
minimum.temizlenebilir.kirli.oranı0.5minimum.temizlenebilir.kirli.oranıBu yapılandırma, log kompresörünün kütükleri ne sıklıkla temizlemeye çalıştığını kontrol eder. Varsayılan olarak, sıkıştırma oranı %50'den fazla olan loglar kaçınılır. Bu oran, en büyük alan israfını önler
min.insync.replicas1min.insync.replicasÜretici request.required.acks olarak -1 olarak ayarlandığında, min.insync.replicas minimum replika sayısını belirler (her repica yazım başarılı olmalıdır) ve bu sayıya ulaşılmazsa üretici bir istisna üretir.
retention.bytesHiç kimselog.retention.bytes"Sil" saklama politikasını kullanırsanız, bu yapılandırma günlüğün silinmeden önce ulaşabileceği maksimum boyutu ifade eder. Varsayılan olarak, boyut sınırı yoktur, sadece bir zaman sınırı vardır
retention.ms7 günlog.retention.minutes"Sil" saklama politikasını kullanırsanız, bu yapılandırma günlüğün silme kaydından önce kaydedildiği zamanı ifade eder.
segment.bytes1GBlog.segment.bytesKafka'da, log loglar parçalar halinde saklanır ve bu yapılandırma, log loglarının parçalara bölünmüş boyutunu ifade eder
segment.index.bytes10MBlog.index.size.max.baytBu yapılandırma, offsetler ile dosya konumları arasında eşlenen indeks dosyasının boyutu kadardır; Bu yapılandırma genellikle değiştirilmesine gerek yoktur
segment.ms7 günlog.roll.hoursLog chunk dosyası silinmesi veya sıkıştırılması gereken boyuta ulaşmasa bile, log süresi bu üst sınıra ulaştığında yeni bir log chunk dosyası zorunlu kılınır
segment.jitter.ms0 log.roll.jitter. {ms,saatler}Maksimum jitter logRollTimeMillis'ten çıkarılır.


Tüketici Yapılandırmaları

MülkiyetTemerrütAçıklama
group.id Tüketici sürecinin bulunduğu grubu benzersiz şekilde tanımlayan bir dizidir ve aynı grup kimliği ayarlanırsa, bu süreçlerin aynı tüketici grubuna ait olduğu anlamına gelir
zookeeper.connect Zookeeper bağlantısının dizisini belirtin, format hostname:port'dur, burada host ve port hem Zookeeper Sunucusunun hem ana hem de portudur, bir Zookeeper makinesi çöktükten sonra temas kaybetmemek için, birden fazla ana adı:port belirtebilirsiniz, vegül kullanarak ayırma:
hostname1:port1,hostname2:port2,hostname3:port3
ZooKeeper'ın chroot yolunu, kendi verilerini depolamak için kullanılan ZooKeeper bağlantı dizisine şu şekilde ekleyebilirsiniz:
hostname1:port1,hostname2:port2,hostname3:port3/chroot/path
consumer.idsıfırKurulum gerekmez ve genellikle otomatik olarak üretilir
socket.timeout.ms30*100Ağ talepleri için zaman aşımına bağlı sınırlar. Gerçek zaman aşımına sahip sınır max.fetch.wait+socket.timeout.ms'dir.
socket.receive.buffer.bytes64*1024socket, ağ taleplerinin önbellek boyutunu almak için kullanılır
fetch.message.max.bayt1024*1024Her getirme isteği için bir getirme mesajı başına maksimum bayt sayısı. Bu baytlar, her bölüm için kullanılan bellekte denetlenecektir, böylece bu ayar tüketicinin kullandığı bellek miktarını kontrol eder. Getirme isteği boyutu, sunucunun izin verdiği maksimum mesaj boyutuna en az eşit olmalıdır, aksi takdirde üreticinin gönderebileceği mesajın boyutu, tüketicinin tüketebileceği boyuttan daha büyük olur.
num.consumer.fetchers1Veri getirme için kullanılan fetcher iş akışı sayısı
auto.commit.enabletrueEğer doğruysa, tüketici tarafından alınan mesajın ofseti otomatik olarak hayvanat bahçesi görevlisine senkronize edilir. Bu commit offset, süreç kapandığında yeni tüketici tarafından kullanılacaktır
auto.commit.interval.ms60*1000Tüketicinin hayvanat bahçesi görevlisine ofseti sunma sıklığı saniyeler cinsindendir
queued.max.message.chunks2Tüketim için önbelleklemek için kullanılan maksimum mesaj sayısı. Her parça fetch.message.max.byte ile aynı olmalıdır
rebalance.max.denemeler4Yeni bir tüketici bir tüketici grubuna eklendiğinde, tüketiciler koleksiyonu her tüketiciye tahsis edilen bölüm sayısını yeniden dengelemeye çalışır. Tüketici tahsilatı değişirse, bu yeniden dengeleme başarısız olur ve tahsis yürütülürken yeniden hak kazanır
fetch.min.bytes1Her getirme isteğinde sunucunun geri dönmesi gereken minimum bayt sayısı. Yeterli veri iade edilmezse, talep yeterli veri iade edilene kadar bekler.
fetch.wait.max.ms100Fetch.min.bytes'ı karşılamak için yeterli veri yoksa, bu yapılandırma sunucunun bir getirme isteğine yanıt vermeden önce engelleyeceği maksimum süreyi ifade eder.
rebalance.backoff.ms2000Reblance'ı tekrar denemeden önce geri çekilme zamanı
refresh.leader.backoff.ms200Bir bölünmenin liderinin liderliğini kaybedip kaybetmediğini belirlemeye çalışmadan önce beklemek için bir geri adım zaman var
auto.offset.resetEn büyükZookeeper'da başlatılmış ofset yoksa, eğer offset aşağıdaki değere verilen bir yanıttır:
en küçük: Otomatik sıfırlama ofseti en küçük ofsete
en büyük: Otomatik sıfırlama ofseti en büyük ofsete
Başka bir şey: tüketiciye bir istisna getirir
consumer.timeout.ms-1Belirli bir süre beklendikten sonra bile mesaj mevcut değilse, bir zaman aşımı istisnası uygulanır
exclude.internal.topicstrueTüketicilere iç konulardan gelen mesajların açığa verilip gösterilmemesi
paritition.assignment.strategyMenzilTüketici akışına bölüm atama politikasını seçin, isteğe bağlı olarak aralık, roundrobin
client.idGrup Kimliği Değeriher istekte çağrıları takip etmeye yardımcı olan kullanıcıya özgü bir dizidir. Talebi oluşturan uygulamayı mantıken doğrulaması gerekir
zookeeper.session.timeout.ms6000Hayvanat bahçesi görevlisi oturumları için zaman aşımına bağlı sınırlar. Tüketici bu süre içinde hayvanat bahçesi görevlisine kalp atışı mesajı göndermezse, mesaj asılmış sayılır ve bir reblance oluşturulur
zookeeper.connection.timeout.ms6000Bir müşterinin Hayvanat Bahçesi Bekçisi bağlantısı kurması için maksimum bekleme süresi
zookeeper.sync.time.ms2000ZK takipçileri ZK liderinin gerisinde maksimum süre kalabilir
ofsets.storageHayvanat Bahçesi GörevlisiOfsetlerin saklandığı yerler: hayvanat bahçesi görevlisi veya kafka
offset.channel.backoff.ms1000Offset kanalına yeniden bağlanma veya başarısız ofsetin fetch/commit isteğini yeniden deneme süresi
offsets.channel.socket.timeout.ms10000Offset okunurken fetch/commit isteği yanıtına verilen yanıt için soket zaman aşımına sınırı. Bu zaman aşımı limiti, tüketiciMetadata talebi tarafından ofset yönetimi talep etmek için kullanılır
offsets.commit.max.tekrar denemeler5Offset taahhüdünün kaç kez tekrar denendiği. Bu yeniden deneme yalnızca kapatma arasındaki offset commit'lere uygulanır. O
dual.commit.enabledtrue"Kafka"yı ofset.storage olarak kullanırsanız, ofseti zookeeper'a iki kez (ve bir kez kafka'ya) taahhüt edebilirsiniz. Bu, hayvanat bahçesi bekçisi tabanlı ofset depolamadan kafka tabanlı ofset depolamaya geçiş sırasında zorunludur. Herhangi bir tüketici grubu için, göç tamamlandığında bu seçeneği kapatmak güvenli bir öneridir
partition.assignment.strategyMenzilTüketici veri akışlarına bölüm atamak için "aralık" ve "roundrobin" politikaları arasında seçim yapın; Dairesel bölme ayırıcısı, tüm mevcut bölümleri ve tüm mevcut tüketici iş parçacıklarını tahsis eder. Partition döngüsünü tüketici iş parçacığına atayacak. Tüm tüketici örnekleri belirlenmiş bir cihaza abone olursa, bölümler deterministik dağılımlara ayrılır. Round-robin tahsis stratejisi yalnızca aşağıdaki koşullar sağlandığında mümkündür: (1) Her konu, tüketici gücü başına aynı sayıda veri akışına sahiptir. (2) Abone olan konuların koleksiyonu, tüketici grubundaki her tüketici örneği için belirlenir.


Producer Configs

MülkiyetTemerrütAçıklama
metadata.broker.list Kendi başına hizmet ver. üretici sadece meta veri (konular, bölümler, replikalar) almak için kullanılır. Gerçek veriyi gönderecek soket bağlantısı, geri dönen meta veri verilerine göre kurulacaktır. Format şöyledir:
host1:port1,host2:port2
Bu liste, brokerların alt listesi veya aracıları yönlendiren bir VIP olabilir
request.required.acks0Bu yapılandırma, bir üretim talebinin tamamlanmış sayıldığını gösteren bir onay değeridir. Özellikle, diğer brokerların kaç tane daha kayıtlarına veri göndermiş ve bu bilgileri liderlerine doğrulamış olması gerektiği. Tipik değerler şunlardır:
0: Üreticinin brokerden onay beklemediğini gösterir (0.7 ile aynı davranış). Bu seçenek en az gecikmeyi sağlar ama aynı zamanda en yüksek riski de sunar (çünkü sunucu kapandığında veri kaybedilir).
1: Lider replikanın veri onayını aldığını gösterir. Bu seçenek düşük gecikmeye sahiptir ve sunucunun alındığını onaylamasını sağlar.
-1: Üretici, tüm senkronize kopyaların veri aldığına dair onay alır. Gecikme en büyüktür, ancak bu yöntem mesajların kaybedilme riskini tamamen ortadan kaldırmaz, çünkü senkronize replikaların sayısı 1 olabilir. Bazı replikaların veri almasını istiyorsanız, konu düzeyindeki ayarlarda min.insync.replicas seçeneğini ayarlamalısınız. Daha derinlemesine bir tartışma için tasarım dokümantasyonunu okuyun.
request.timeout.ms10000Aracı icra request.required.acks gerekliliğini uygulamak için elinden geleni yapar, aksi takdirde müşteriye hata gönderilir
producer.typeSenkronizasyonBu seçenek, mesajın arka plan iş parçacığında asenkron olarak gönderilip gönderilmediğini sabitler. Doğru değerler:
(1) asenkron: Asenkron gönderim
(2) senkronizasyon: Senkronize gönderim
Üreticiyi asenkron olarak ayarlayarak, istekler toplu olarak işlenebilir (bu daha yüksek veri aktarım için iyidir), ancak bu aynı zamanda istemci makinenin gönderilmemiş verileri kaybetme ihtimalini de yaratır
serializer.classkafka.serializer.DefaultEncoderMesajın serileştirme kategorisi. Varsayılan kodlayıcı bir bayt[] girer ve aynı baytı[] döndürür[]
key.serializer.class Anahtar kelimeler için serileştirme sınıfı. Eğer bu verilmezse, varsayılan olarak mesajla eşleşmektir
partitioner.classkafka.producer.DefaultPartitionerPartitioner sınıfı ile mesajları alt konular arasında bölmek için kullanılır. Varsayılan bölümleyici, anahtarın hash tablosuna dayanır.
compression.codechiç kimseBu parametre, veri sıkıştırma kodeki "none", "gzip", "snappy" olarak seçilebilen bir codec ayarlayabilir.
compressed.topicssıfırBu parametre, belirli konuların sıkıştırılıp sıkıştırılmadığını ayarlamak için kullanılabilir. Sıkıştırılmış kodek NoCompressCodec dışında bir kodek ise, bu kodekler belirtilen konu verilerine uygulanır. Sıkıştırılmış konular listesi boşsa, belirli sıkıştırılmış codec'i tüm konulara uygulayın. Sıkıştırılmış kodek NoCompressionCodec ise, sıkıştırma tüm konular için erişilebilir değildir.
message.send.max.denemeler3Bu parametre, üreticinin başarısız gönderme isteklerini otomatik olarak yeniden denemesine neden olur. Bu parametre deneme sayısını sabitler. Not: 0 olmayan bir değer ayarlandığında bazı ağ hataları tekrarlanır: gönderme ve onay kaybı olur
retry.backoff.ms100Her tekrar denemeden önce, üretici ilgili konunun meta verilerini güncelleyerek yeni liderin atanıp atanmadığını kontrol eder. Lider seçimi biraz zaman aldığı için, bu seçenek, üreticinin meta veriyi güncellemeden önce ne kadar beklemesi gerektiğini belirtir.
topic.metadata.refresh.interval.ms600*1000Üretici genellikle bazı arıza senaryolarında (bölüm eksik, lider kullanılamaz vb.) konunun meta verilerini günceller. Düzenli bir döngüden geçecek. Eğer onu negatif bir değere ayarsanız, meta veri ancak başarısız olursa güncellenir. 0 olarak ayarlandığında, meta veri her mesaj gönderildikten sonra güncellenir (bu seçenek önerilmez, sistem çok fazla enerji tüketir). Önemli: Güncellemeler yalnızca mesaj gönderildikten sonra gerçekleşir, bu yüzden üretici mesajı hiç göndermezse, meta veri asla güncellenmez.
queue.buffering.max.ms5000Kullanıcının asenkron mod uygulandığında veriyi önbellediği maksimum zaman aralığı. Örneğin, mesaj 100 olarak ayarlanmışsa, 100ms içindeki mesajlar toplu olarak işlenecektir. Bu, veri taşıma hızını artırır ama önbellekleme nedeniyle gecikmeyi artırır.
queue.buffering.max.mesajlar10000Asenkron mod kullanılırken, üreticiden önce kuyruğun önbelleğe alınabileceği gönderilmemiş mesajların maksimum sayısı engellenmelidir veya veri kaybedilmelidir
batch.num.messages200Asenkron mod kullanıldığında, maksimum mesaj sayısını toplu olarak işleyebilirsiniz. Ya da mesaj sayısı çevrimiçi olarak ulaştı ya da queue.buffer.max.ms geldi ve yapımcı bunu işliyor
send.buffer.bytes100*1024Soket yazım önbelleği boyutu
client.id“”Bu istemci kimliği, her isteğe çağrıyı takip etmek için dahil edilen kullanıcıya özgü bir dizidir ve uygulamanın talebi yaptığını mantıksal olarak doğrulayabilmelidir.


Producer Configs

AdTipTemerrütÖnemiAçıklama
boostrap.serversListe YüksekHost/port grubu ile kafka kümesine bağlantı kurarsınız. Veriler, hangi sunucunun önyükleme için ayrıldığına bakılmaksızın, tüm sunucularda eşit şekilde yüklenecektir. Bu liste yalnızca başlatılmış hostları etkiler (tüm sunucuları keşfetmek için kullanılır). Bu liste formatı:
host1:port1,host2:port2,...
Bu sunucular sadece bağlantıları başlatmak ve kümenin tüm üyeliklerini keşfetmek için kullanıldığı için (ki bu üyelikler dinamik olarak değişebilir), bu listede tüm sunucuları içermek zorunda değilsiniz (birden fazla sunucu isteyebilirsiniz, ancak bu durumda bir sunucu kapalı olabilir). Bu listede sunucu görünmezse, veri gönderme liste kullanılabilir olana kadar başarısız olur.
acksString1YüksekÜretici, veriyi aldıktan sonra alıcıyı onaylamak için sunucudan bir sinyale ihtiyaç duyar ve bu yapılandırma, proküderin kaç tane onay sinyali gerektiğine işaret eder. Bu yapılandırma aslında veri yedeklemelerinin kullanılabilirliğini temsil eder. Aşağıdaki ayarlar yaygın seçeneklerdir:
(1) acks=0: 0 olarak ayarlanması, üreticinin alınan bilginin onayını beklemesine gerek kalmadığı anlamına gelir. Replika hemen soket tamponuna eklenir ve gönderilir sayılacaktır. Bu durumda sunucunun veriyi başarıyla aldığının garantisi yoktur ve yapılandırmanın yeniden denemesi çalışmaz (çünkü istemci başarısız olup olmadığını bilmez) ve geri bildirim ofseti her zaman -1 olarak ayarlanır.
(2) acks=1: Bu, en azından liderin veriyi yerel günlüğe başarıyla yazmasını beklemek, ancak tüm takipçilerin başarılı şekilde yazmasını beklememek anlamına gelir. Bu durumda, takipçi verileri başarıyla yedeklemezse ve lider tekrar kapatırsa, mesaj kaybolur.
(3) acks=all: Bu, liderin tüm yedeklemelerin başarılı bir şekilde günlük yazmasını beklemesi gerektiği anlamına gelir ve bu strateji, bir yedek hayatta kaldığı sürece verilerin kaybedilmemesini sağlar. Bu en güçlü garantidir.
(4) acks=2 gibi diğer ayarlar da mümkündür; bunlar belirli bir ack sayısını gerektirir, ancak bu strateji genellikle nadiren kullanılır.
buffer.memoryuzun33554432YüksekÜretici, verinin bellek boyutunu önbelleğe almak için kullanılabilir. Veriler aracıya gönderildiğinden daha hızlı üretilirse, üretici "block.on.buffer.full" ile belirtilen bir istisna engeller veya atar.

Bu ayar, üreticinin kullanabileceği toplam belleğe bağlı olacaktır, ancak bu kesin bir sınır değildir, çünkü üreticinin kullandığı tüm bellek önbellek için kullanılmaz. Sıkıştırma için (sıkıştırma getirilirse) bir kısmı ek bellek kullanılırken, bir kısmı bakım talepleri için kullanılır.
compression.typeStringhiç kimseYüksekProducer, veri sıkıştırmak için kullanılan sıkıştırma türüdür. Varsayılan olarak sıkıştırılmamıştır. Doğru seçenek değerleri sıfır, gzip, hızlı olur.
Sıkıştırma en iyi toplu işleme için kullanılır; ne kadar çok mesaj toplu olarak işlenirse, sıkıştırma performansı o kadar iyi olur.
Yeniden denemelerint0Yüksek0'dan büyük bir değer ayarlamak, istemcinin veri arızalandığında herhangi bir veriyi yeniden göndermesine neden olur. Bu tekrar denemelerin, istemcinin gönderme hatası aldığında yapılan denemelerden farklı olmadığını unutmayın. Yeniden denemelerin verilerin sırasını değiştirmesine izin verir; her iki mesaj kaydı da aynı bölüme gönderilirse, ilk mesaj başarısız olur, ikinci mesaj ilk mesajdan daha erken çıkar.
batch.sizeint16384OrtaÜretici, istek sayısını azaltmak için mesaj kayıtlarını toplu olarak almaya çalışır. Bu, istemci ile sunucu arasındaki performansı iyileştirecektir. Bu yapılandırma, toplu işleme mesajlarının varsayılan bayt sayısını kontrol eder.
Bu bayt sayısından büyük mesaj baytlarını işlemek için hiçbir girişim yapılmaz.
Aracı kurumlara gönderilen istekler, her bölüm için bir talep içeren birden fazla grup içerir.
Daha küçük toplu üretim değerleri daha az kullanılır ve verimliliği azaltabilir (0 sadece toplu işleme kullanır). Daha büyük toplu değerler daha fazla bellek alanı kaybeder, bu yüzden belirli toplu değerler için bellek ayırmanız gerekir.
client.idString OrtaBu dizgi, bir talep yapıldığında sunucuya gönderilir. Amaç, IP/Port izin listesi dışındaki bazı uygulamaların bilgi göndermesine izin vermek için istek kaynağını takip edebilmektir. Bu uygulama, kayıt ve takip dışında işlevsel bir amacı olmadığı için herhangi bir sehiyi ayarlayabiliyor
linger.msuzun0OrtaÜretici grubu, istek ile gönderme arasında gelen mesajları toplayarak ayrı bir istek partisi kaydeder. Genellikle, bu sadece kayıt gönderme hızından daha hızlı üretildiğinde gerçekleşir. Ancak, belirli koşullar altında, istemci istek sayısını azaltmak veya hatta orta yüke kadar azaltmak isteyecektir. Bu kurulum küçük bir gecikme eklenerek yapılır - yani bir kaydı hemen göndermek yerine, üretici diğer mesaj kayıtlarının gönderilmesine izin vermek için belirli bir gecikme süresini bekler, bu kayıtlar toplu olarak gönderilebilir. Bu, TCP Nagle'a benzer bir algoritma olarak değerlendirilebilir. Bu ayar, toplu düzenleme için daha yüksek gecikme sınırı belirliyor: bir bölümün batch.size dosyasını aldıktan sonra, bu ayar ne olursa olsun hemen gönderilir, ancak bu ayardan çok daha küçük bayt sayısına sahip bir mesaj alırsak, daha fazla mesaj almak için belirli bir sürede "oyalanmamız" gerekir. Bu ayar varsayılan olarak 0'dır, yani gecikme yoktur. Örneğin linger.ms=5 ayarları istek sayısını azaltır, ancak aynı zamanda gecikmeyi 5ms artırır.
max.request.sizeint1028576Ortaİstenen maksimum bayt sayısı. Bu aynı zamanda maksimum kaydedilen boyut için etkili bir kapsamadır. Not: Sunucunun mesaj kayıt boyutlarının kendi geçersiz kalması vardır ve bunlar bu ayardan farklıdır. Bu ayar, üreticilerin toplu olarak gönderebileceği istek sayısını sınırlayarak çok sayıda isteği önler.
receive.buffer.bytesint32768OrtaTCP alıcı önbelleği boyutu, veri okururken kullanılır
send.buffer.bytesint131072OrtaTCP gönderme önbellek boyutu, veri gönderirken kullanılır
timeout.msint30000OrtaBu yapılandırma seçeneği, sunucunun takipçilerden onay beklediği maksimum süreyi kontrol eder. Onaylanmış istek sayısı bu süre içinde karşılanmazsa, hata döner. Bu zaman aşımına sahip limit sunucu tarafında ölçülür ve istekler dahil ağ gecikmesi yoktur
block.on.buffer.fullBooleantruedüşükBellek önbelleğimiz tükendiğinde, yeni mesaj kayıtlarını almayı durdurmamız veya hata atmamız gerekir. Varsayılan olarak bu doğrudur, ancak bazı engellemeler beklenmeye değmeyebilir, bu yüzden hemen hata vermek daha iyidir. Bu, false olarak ayarlandığında geçerlidir: Eğer kayıt gönderilmişse ve önbellek doluysa, üretici bir istisna hatası atar: BufferExhaustedException
metadata.fetch.timeout.msuzun60000düşükBu, bazı elementlerin ilk kez elde edilen verilerini ifade eder. Öğeler arasında: konu, ev sahibi, bölümler bulunur. Bu yapılandırma, elemenin fetch (fetch) ile başarılı bir şekilde tamamlanması için gereken süreyi ifade eder; aksi takdirde istemciye bir istisna gönderilir.
metadata.max.age.msuzun300000düşükMikrosaniye cinsinden zaman, meta verilerin güncellenmesini zorladığımız aralıktır. Bölünme liderliğinde herhangi bir değişiklik görmesek bile.
metric.reportersListe[]düşükMetrikleri ölçmek için kullanılan sınıfların listesi. MetricReporter arayüzünün uygulanması, yeni metrikler oluşturuldukça değişen sınıfların eklenmesine olanak tanıyacaktır. JmxReporter her zaman JMX istatistiklerini kaydetme yöntemi içerecektir
metrics.num.samplesint2düşükMetriklerin korunması için kullanılan örneklem sayısı
metrics.sample.window.msuzun30000düşükMetrikler sistemi, düzeltilebilir bir pencere boyutunda yapılandırılabilir sayıda örnek tutar. Bu konfigürasyon, örneğin pencere boyutunu yapılandırır. İki örnek 30 saniye boyunca tutabiliriz. Bir pencere açıldığında, en eski pencereyi siler ve yeniden yazıyoruz
recoonect.backoff.msuzun10düşükBağlantı kesildiğinde, yeniden bağlandığımızda bekleme süresi. Bu, tekrar eden istemci yeniden bağlantılarını önler
retry.backoff.msuzun100düşükBaşarısız ürün talebini tekrar denemeden önce bekleme süresi. Gönder-başarısız bir döngüye takılmaktan kaçın.




Önceki:【Practice】Eclipse installs the lombok plugin
Önümüzdeki:Java JMX anlaşılması ve kullanımı oldukça kolaydır
 Ev sahibi| Yayınlandı 2.11.2021 14:10:57 |
server.properties yapılandırması

Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com