Broker Configs
| Mülkiyet | Temerrüt | Açı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-logs | Kafka'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. | | liman | 6667 | sunucu, istemcinin bağlandığı portu kabul eder | | zookeeper.connect | sıfır | ZooKeeper 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.bayt | 1000000 | Bir 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.threads | 3 | Sunucunun ağ taleplerini işlemek için kullandığı ağ iş parçacığı sayısı; Genelde bu mülkü değiştirmenize gerek yoktur. | | num.io.threads | 8 | Sunucunun 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.threads | 4 | Arka plan işleme için kullanılan iş parçacığı, örneğin dosya silme; Bu mülkü değiştirmene gerek yok. | | queued.max.requests | 500 | Bir ağ iş parçacığının yeni istek okumayı durdurmadan önce işlemesi için kuyruk atılabilecek maksimum istek sayısı. | | host.name | sıfır | broker'ı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.name | sıfır | Ayarlanmışsa, üreticiye, tüketicilere ve diğer brokerlere aracının ana adı olarak gönderilir | | advertised.port | sıfır | Bu 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.bytes | 100 * 1024 | SO_SNDBUFF Sunucunun soket bağlantıları oluşturmak için kullandığı önbellek boyutu | | socket.receive.buffer.bytes | 100 * 1024 | SO_RCVBUFF önbellek boyutu, sunucu tarafından soketlere bağlanmak için kullanılır | | socket.request.max.bayt | 100 * 1024 * 1024 | Sunucu tarafından izin verilen maksimum istek boyutu; Bu, sunucu taşmasını önler, çünkü bu Java yığın boyutundan daha küçük olmalı | | num.partitions | 1 | Bir konu oluşturulurken bölüm sayısı verilmezse, bu sayı konu altındaki varsayılan bölüm sayısı olur. | | log.segment.bytes | 1014*1024*1024 | Konu 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.hours | 24 * 7 | Dosya 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.policy | Sil | | | log.retention.minutes ve log.retention.hours | 7 gün | Her 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 | -1 | Her 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.ms | 5 dakika | Dosya özelliklerinin silme gereksinimlerini karşılayıp karşılamadığını belirlemek için log segmentli dosyalar arasındaki aralığı kontrol edin. | | log.cleaner.enable | false | Bu ö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.threads | 1 | Log sıkıştırma yapan iş parçacığı sayısı | | log.cleaner.io.max.bytes.per.second | Hiç kimse | Bir 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.size | 500*1024*1024 | Log 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.factor | 512*1024 | Kü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.factor | 0.9 | log temizliğinde kullanılan hash tablosunun yük faktörü; Bu seçeneği değiştirmene gerek yok. | | log.cleaner.backoff.ms | 15000 | Logun temizlendiği zaman aralığı uygulanır | | log.cleaner.min.cleanable.ratio | 0.5 | Bu 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.ms | 1 gün | depolama 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.bayt | 10*1024*1024 | Log 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.bytes | 4096 | Bir 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.messages | Long.MaxValue | Log 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.ms | Long.MaxValue | Fsync aralıklarının gerekli olup olmadığını kontrol edin | | log.flush.interval.ms | Long.MaxValue | Bu 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.ms | 60000 | Dosya indekste temizlendikten sonraki tutma süresi genellikle değiştirilmesine gerek yoktur | | auto.create.topics.enable | true | Konuları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.ms | 30000 | Bölüm yönetim denetleyicisi yedekleme yaptığında soketin zaman aşımına ulaşma süresi. | | controller.message.queue.size | Int.MaxValue | kontrolör-broker-kanallar | | default.replication.factor | 1 | Yedek kopyaların varsayılan sayısı yalnızca otomatik olarak oluşturulan konuları ifade eder | | replica.lag.time.max.ms | 10000 | Bir 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.mesajlar | 4000 | Bir replikada bu saydan fazla yedek olmayan varsa, lider takipçiyi çıkarır ve takipçiyi asılmış sayır | | replica.socket.timeout.ms | 30*1000 | Veri yedeklerken soket ağ talepleri için lider zaman aşımı zamanı | | replica.socket.receive.buffer.bytes | 64*1024 | Yedekleme sırasında lidere ağ isteği gönderilirken soket alma tamponu | | replica.fetch.max.bayt | 1024*1024 | Yedekleme sırasında her getirmenin maksimum değeri | | replica.fetch.min.bytes | 500 | Lider yedek talebi yaptığında verinin lidere ulaşması için maksimum bekleme süresi | | replica.fetch.min.bytes | 1 | Her getirmeden sonra yedekleme sırasında yanıtın en küçük boyutu | | num.replica.fetchers | 1 | Liderden gelen verileri yedeken iş parçacıklarının sayısı | | replica.high.watermark.checkpoint.interval.ms | 5000 | Her replika, en yüksek su seviyesinin ne sıklıkla kürlendiğini kontrol eder | | fetch.purgatory.purge.interval.requests | 1000 | Temizleme aralığını fetch talep ediyor | | producer.purgatory.purge.interval.requests | 1000 | Üretici bir temizleme aralığı talep ediyor | | zookeeper.session.timeout.ms | 6000 | Hayvanat bahçesi görevlisi oturum molası. | | zookeeper.connection.timeout.ms | 6000 | Müşterinin hayvanat bahçesi görevlisi ile bağlantı kurmak için beklediği maksimum süre | | zookeeper.sync.time.ms | 2000 | zk takipçisi zk liderinin gerisinde en uzun süre geride kaldı | | controlled.shutdown.enable | true | Aracı 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.denemeler | 3 | Tamamlanmamış kapatma yapmadan önce bir kapatmayı başarıyla uygulayabilen komut sayısı. | | controlled.shutdown.retry.backoff.ms | 5000 | Kapatmalar arasındaki geri çekilme süresi | | auto.leader.rebalance.enable | true | Eğer bu doğruysa, denetleyici otomatik olarak brokerların liderliğini bölümler üzerinde dengeler | | lider.dengesizlik.komisyoncu başı.yüzde | 10 | Her aracı kurumun izin verdiği maksimum dengesizlik oranı | | leader.dengesizlik.kontrol.interval.seconds | 300 | Lider dengesizliğinin sıklığını kontrol edin | | offset.metadata.max.bayt | 4096 | İstemciler maksimum ofsetlerini kaydetmesine izin verir | | max.connections.per.ip | Int.MaxValue | Her 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.ms | 600000 | Boş bağlantılar için zaman aşımına bağlı sınır | | log.roll.jitter. {ms,saatler} | 0 | logRollTimeMillis'ten soyutlanan maksimum titreme sayısı | | num.recovery.threads.per.data.dir | 1 | Her veri dizininin kurtarma kaydı için kullandığı iş parçacığı sayısı | | unclean.leader.election.enable | true | ISR'de replika dışı ayarının lider olarak kullanılıp kullanılmayacağını gösterir | | delete.topic.enable | false | Konuları silme | | offsets.topic.num.partitions | 50 | Ofset 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.minutes | 1440 | Bu zaman sınırından daha uzun süredir var olan ofsetler, silinmeyi bekleyen olarak işaretlenir | | offsets.retention.check.interval.ms | 600000 | Ofset yöneticisi, bayat ofsetlerin sıklığını kontrol eder | | offsets.topic.replication.factor | 3 | Konunun 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.bytes | 104857600 | Konuyu kaydırır. | | offsets.load.buffer.size | 5242880 | Bu ayar parti boyutuyla ilgilidir ve ofset segmentinden okuma sırasında kullanılır. | | offsets.commit.required.acks | -1 | Onay sayısı, offset taahhüdünün kabul edilebilir olması için belirlenmelidir ve genellikle değiştirilmesine gerek yoktur |
| Mülkiyet | Temerrüt | Sunucu Varsayılan Özelliği | Açıklama | | temizlik.politika | Sil | log.cleanup.policy | Ya "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.ms | 86400000 (24 saat) | log.cleaner.delete.retention.ms | log.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.messages | Hiç kimse | log.flush.interval.messages | Bu 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.ms | Hiç kimse | log.flush.interval.ms | Bu 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.bytes | 4096 | log.index.interval.bytes | Varsayı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.bytes | 1000000 | max.message.bytes | Kafka 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.5 | minimum.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.replicas | 1 | min.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.bytes | Hiç kimse | log.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.ms | 7 gün | log.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.bytes | 1GB | log.segment.bytes | Kafka'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.bytes | 10MB | log.index.size.max.bayt | Bu 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.ms | 7 gün | log.roll.hours | Log 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.ms | 0 | log.roll.jitter. {ms,saatler} | Maksimum jitter logRollTimeMillis'ten çıkarılır. |
Tüketici Yapılandırmaları
| Mülkiyet | Temerrüt | Açı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.id | sıfır | Kurulum gerekmez ve genellikle otomatik olarak üretilir | | socket.timeout.ms | 30*100 | Ağ 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.bytes | 64*1024 | socket, ağ taleplerinin önbellek boyutunu almak için kullanılır | | fetch.message.max.bayt | 1024*1024 | Her 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.fetchers | 1 | Veri getirme için kullanılan fetcher iş akışı sayısı | | auto.commit.enable | true | Eğ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.ms | 60*1000 | Tüketicinin hayvanat bahçesi görevlisine ofseti sunma sıklığı saniyeler cinsindendir | | queued.max.message.chunks | 2 | Tü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.denemeler | 4 | Yeni 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.bytes | 1 | Her 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.ms | 100 | Fetch.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.ms | 2000 | Reblance'ı tekrar denemeden önce geri çekilme zamanı | | refresh.leader.backoff.ms | 200 | Bir bölünmenin liderinin liderliğini kaybedip kaybetmediğini belirlemeye çalışmadan önce beklemek için bir geri adım zaman var | | auto.offset.reset | En büyük | Zookeeper'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 | -1 | Belirli bir süre beklendikten sonra bile mesaj mevcut değilse, bir zaman aşımı istisnası uygulanır | | exclude.internal.topics | true | Tüketicilere iç konulardan gelen mesajların açığa verilip gösterilmemesi | | paritition.assignment.strategy | Menzil | Tüketici akışına bölüm atama politikasını seçin, isteğe bağlı olarak aralık, roundrobin | | client.id | Grup Kimliği Değeri | her 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.ms | 6000 | Hayvanat 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.ms | 6000 | Bir müşterinin Hayvanat Bahçesi Bekçisi bağlantısı kurması için maksimum bekleme süresi | | zookeeper.sync.time.ms | 2000 | ZK takipçileri ZK liderinin gerisinde maksimum süre kalabilir | | ofsets.storage | Hayvanat Bahçesi Görevlisi | Ofsetlerin saklandığı yerler: hayvanat bahçesi görevlisi veya kafka | | offset.channel.backoff.ms | 1000 | Offset kanalına yeniden bağlanma veya başarısız ofsetin fetch/commit isteğini yeniden deneme süresi | | offsets.channel.socket.timeout.ms | 10000 | Offset 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 denemeler | 5 | Offset 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.enabled | true | "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.strategy | Menzil | Tü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ülkiyet | Temerrüt | Açı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.acks | 0 | Bu 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.ms | 10000 | Aracı icra request.required.acks gerekliliğini uygulamak için elinden geleni yapar, aksi takdirde müşteriye hata gönderilir | | producer.type | Senkronizasyon | Bu 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.class | kafka.serializer.DefaultEncoder | Mesajı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.class | kafka.producer.DefaultPartitioner | Partitioner 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.codec | hiç kimse | Bu parametre, veri sıkıştırma kodeki "none", "gzip", "snappy" olarak seçilebilen bir codec ayarlayabilir. | | compressed.topics | sıfır | Bu 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.denemeler | 3 | Bu 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.ms | 100 | Her 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.ms | 600*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.ms | 5000 | Kullanı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.mesajlar | 10000 | Asenkron 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.messages | 200 | Asenkron 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.bytes | 100*1024 | Soket 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
| Ad | Tip | Temerrüt | Önemi | Açıklama | | boostrap.servers | Liste | | Yüksek | Host/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. | | acks | String | 1 | Yü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.memory | uzun | 33554432 | Yü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.type | String | hiç kimse | Yüksek | Producer, 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 denemeler | int | 0 | Yüksek | 0'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.size | int | 16384 | Orta | Ü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.id | String | | Orta | Bu 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.ms | uzun | 0 | Orta | Ü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.size | int | 1028576 | Orta | İ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.bytes | int | 32768 | Orta | TCP alıcı önbelleği boyutu, veri okururken kullanılır | | send.buffer.bytes | int | 131072 | Orta | TCP gönderme önbellek boyutu, veri gönderirken kullanılır | | timeout.ms | int | 30000 | Orta | Bu 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.full | Boolean | true | düşük | Bellek ö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.ms | uzun | 60000 | düşük | Bu, 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.ms | uzun | 300000 | düşük | Mikrosaniye 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.reporters | Liste | [] | düşük | Metrikleri ö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.samples | int | 2 | düşük | Metriklerin korunması için kullanılan örneklem sayısı | | metrics.sample.window.ms | uzun | 30000 | düşük | Metrikler 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.ms | uzun | 10 | düşük | Bağlantı kesildiğinde, yeniden bağlandığımızda bekleme süresi. Bu, tekrar eden istemci yeniden bağlantılarını önler | | retry.backoff.ms | uzun | 100 | düşük | Baş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.
|
|