kafka0.9 java commit_kafka0.9.0及0.10.0配置属性
名稱
說明
類型
默認(rèn)值
有效值
重要性
zookeeper.connect
zookeeper集群的地址,
可以是多個(gè),
多個(gè)之間用逗號分割
string
localhost:
2181
ip1
:port1
,ip2
:port2
高
zookeeper.connection.timeout.ms
客戶端在建立通zookeeper
連接中的最大等待時(shí)間
int
null
6000
高
zookeeper.session.timeout.ms
ZooKeeper的session的超時(shí)
時(shí)間,如果在這段時(shí)間內(nèi)沒
有收到ZK的心跳,則會(huì)被認(rèn)
為該Kafka server掛掉了。
如果把這個(gè)值設(shè)置得過低可
能被誤認(rèn)為掛掉,如果設(shè)置
得過高,如果真的掛了,則需
要很長時(shí)間才能被server得知
int
6000
高
zookeeper.sync.time.ms
一個(gè)ZK follower能落后leader
的時(shí)間
int
2000
高
listeners
監(jiān)聽列表(以逗號分隔 不同的
協(xié)議(如plaintext,trace,ssl、
不同的IP和端口)),hostname
如果設(shè)置為0.0.0.0則綁定所
有的網(wǎng)卡地址;如果hostname
為空則綁定默認(rèn)的網(wǎng)卡。
如果
沒有配置則默認(rèn)為
java.net
.InetAddress
.getCanonicalHostName()
string
null
如:PLAINTEXT:
//myhost:
9092,
TRACE://:
9091
或 PLAINTEXT:
//0.0.0.0
:9092,
高
host.name
。如果設(shè)置了它,
會(huì)僅綁定這個(gè)
地址。
如果沒有設(shè)置,則會(huì)
綁定所有
的網(wǎng)絡(luò)接口,并提交
一個(gè)給ZK。
不推薦使用 只有當(dāng)
listeners沒
有設(shè)置時(shí)才有必要使用。
string
“’
如:
”localhost”
高
port
server用來接受
client連接的端口。
不推薦使用,使用
listeners配置
項(xiàng)代替;只有在
listeners沒有
配置時(shí)才使用。
int
9092
高
advertised.host.name
會(huì)將hostname通知給
生產(chǎn)者
和消費(fèi)者,在多網(wǎng)卡
時(shí)需要
設(shè)置該值為另一個(gè)ip地址。
如果沒有設(shè)置該值,
則返回
配置項(xiàng)host.name設(shè)置的值,
如果host.name沒有設(shè)
置則返回java.net.InetAddress.
getCanonicalHostName()
不推薦使用 只有當(dāng)
advertised.listeners或
listeners沒有設(shè)置時(shí)才
有必要使用。
string
null
高
advertised.listeners
設(shè)置不同于listeners配置
的監(jiān)聽列表即不同于
listeners設(shè)置的網(wǎng)卡地址
及端口;如果沒有配置,
會(huì)使用listeners的值
string
null
高
advertised.port
分發(fā)這個(gè)端口給所有的
producer,consumer和
其他broker來建立連接
。如果此端口跟server
綁定的端口不同,
則才有必要設(shè)置。
不推薦使用 只有當(dāng)
advertised.listeners
或listeners沒有設(shè)置
時(shí)才有必要使用。
int
null
高
auto.create.topics.enable
是否允許自動(dòng)創(chuàng)建topic。
如果設(shè)為true,那么
produce,consume
或者fetch metadata
一個(gè)不存在的topic時(shí),
就會(huì)自動(dòng)創(chuàng)建一個(gè)默認(rèn)
replication factor和
partition number的topic。
boolean
true
高
background.threads
一些后臺(tái)任務(wù)處理的
線程數(shù),例如過期消
息文件的刪除等,
一般情況下不需要去
做修改
int
10
高
broker.id
每一個(gè)broker在集群中
的唯一表示,要求是正數(shù)。
當(dāng)該服務(wù)器的IP地址發(fā)
生改變時(shí),broker.id沒有
變化,則不會(huì)影響
consumers的消息情況。
int
-1
高
compression.type
指定topic的壓縮類型。
除了支持’gzip’, ‘snappy’,
‘lz4’外,還支持
”uncompressed(不壓縮)
”以及produce
r(由producer來指定)
string
producer
高
delete.topic.enable
是否啟動(dòng)刪除topic。
如果設(shè)置為false,
你在刪除topic的時(shí)
候無法刪除,但是會(huì)打
上一個(gè)你將刪除該topic
的標(biāo)記,等到你修改這
一屬性的值為true后重
新啟動(dòng)Kafka集群的時(shí)候
,集群自動(dòng)將那些標(biāo)記
刪除的topic刪除掉,對應(yīng)
的log.dirs目錄下的topic
目錄和數(shù)據(jù)也會(huì)被刪除。
而將這一屬性設(shè)置為true之后,
你就能成功刪除你想要
刪除的topic了
boolean
false
高
auto.leader.rebalance.enable
一個(gè)后臺(tái)線程會(huì)周期性
的自動(dòng)嘗試,為所有的
broker的每個(gè)partition
平衡leadership,使kafka
的leader均衡。
boolean
true
高
leader.imbalance.check.interval.seconds
檢查leader是否均衡的
時(shí)間間隔(秒)
long
300
高
leader.imbalance.per.broker.percentage
每個(gè)broker允許的不平衡
的leader的百分比。
如果每個(gè)broker超過
了這個(gè)百分比,復(fù)制控
制器會(huì)重新平衡leadership。
int
10
高
log.flush.interval.messages
數(shù)據(jù)flush(sync)到硬盤
前之前累積的消息條數(shù)
,因?yàn)榇疟PIO操作是一
個(gè)慢操作,但又是一個(gè)
”數(shù)據(jù)可靠性”的必要
手段,所以此參數(shù)的設(shè)置
,需要在”數(shù)據(jù)可靠性”
與”性能”之間做必要
的權(quán)衡.如果此值過大,
將會(huì)導(dǎo)致每次”fsync”
的時(shí)間較長
(IO阻塞),如果此值過
小,將會(huì)導(dǎo)致”fsync”的
次數(shù)較多,這也意味著
整體的client請求有一
定的延遲.物理server
故障,將會(huì)導(dǎo)致沒有
fsync的消息丟失
long
9223372
0368547
75807
(此為一
個(gè)數(shù)字)
高
log.flush.interval.ms
當(dāng)達(dá)到下面的時(shí)間
(ms)時(shí),執(zhí)行一次
強(qiáng)制的flush操作。
interval.ms和
interval.messages
無論哪個(gè)達(dá)到,
都會(huì)flush。
long
null
高
log.flush.offset.checkpoint.interval.ms
記錄上次把log刷
到磁盤的時(shí)間點(diǎn)的
頻率,用來日后的
recovery。通常
不需要改變
long
60000
高
log.flush.scheduler.interval.ms
檢查是否需要固
化到硬盤的時(shí)間
間隔
long
92233720
3685477
5807
(此為一
個(gè)數(shù)字)
高
log.retention.bytes
topic每個(gè)分區(qū)的
最大文件大小,
一個(gè)topic的大小
限制 = 分區(qū)數(shù)*
log.retention.bytes。
-1沒有大小限
log.retention.bytes和log.retention.minutes
任意一個(gè)達(dá)到要求,
都會(huì)執(zhí)行刪除,
會(huì)被topic創(chuàng)建時(shí)
的指定參數(shù)覆蓋
loong
-1
高
log.retention.hours
日志保存時(shí)間,
默認(rèn)為7天(168小時(shí))
。超過這個(gè)時(shí)間會(huì)根
據(jù)policy處理數(shù)據(jù)。
bytes和minutes無論
哪個(gè)先達(dá)到都會(huì)觸發(fā)
int
168
高
log.retention.minutes
數(shù)據(jù)存儲(chǔ)的最大時(shí)間
超過這個(gè)時(shí)間會(huì)根據(jù)
log.cleanup.policy
設(shè)置的策略處理數(shù)
據(jù),也就是消費(fèi)端能
夠多久去消費(fèi)數(shù)據(jù)
log.retention.bytes和log.retention.minutes任意一個(gè)達(dá)到要求,都會(huì)執(zhí)行刪除,會(huì)被topic創(chuàng)建時(shí)的指定參數(shù)覆蓋
int
null
高
log.roll.hous
當(dāng)達(dá)到下面時(shí)間,
會(huì)強(qiáng)制新建一個(gè)segment。
這個(gè)參數(shù)會(huì)在日志
segment沒有達(dá)到
log.segment.bytes
設(shè)置的大小,也會(huì)強(qiáng)制
新建一個(gè)segment會(huì)
int
168
高
log.roll.jitter.{ms,hours}
從logRollTimeMillis抽
離的jitter最大數(shù)目
int
0
高
log.segment.bytes
topic partition的日志存
放在某個(gè)目錄下諸多
文件中,這些文件將
partition的日志切分成
一段一段的;這個(gè)屬性就
是每個(gè)文件的最大尺寸;
當(dāng)尺寸達(dá)到這個(gè)數(shù)值時(shí),
就會(huì)創(chuàng)建新文件。
此設(shè)置可以由每個(gè)topic
基礎(chǔ)設(shè)置時(shí)進(jìn)行覆蓋
long
1G=
1024*
1024*
1024
高
log.segment.delet.delay.ms
刪除文件系統(tǒng)上文件
的等待時(shí)間,默認(rèn)是
1分鐘
long
6000
高
message.max.bytes
表示一個(gè)服務(wù)器能夠
接收處理的消息的最
大字節(jié)數(shù),注意這個(gè)
值producer和consumer
必須設(shè)置一致,且不要大于fetch.message.max.bytes
屬性的值該值默認(rèn)是
1000012字節(jié),大概900KB
int
1000012
高
min.insync.replicas
該屬性規(guī)定了最小的
ISR數(shù)。當(dāng)producer設(shè)置request.required.acks
為all或-1時(shí),指定副
本(replicas)的最小數(shù)目
(必須確認(rèn)每一個(gè)repica
的寫數(shù)據(jù)都是成功的),
如果這個(gè)數(shù)目沒有達(dá)到,
producer會(huì)產(chǎn)生異常。
int
1
高
num.io.threads
服務(wù)器用來處理請求
的I/O線程的數(shù)目;
這個(gè)線程數(shù)目至少要
等于硬盤的個(gè)數(shù)。
int
8
高
num.network.threads
服務(wù)器用來處理網(wǎng)絡(luò)
請求的網(wǎng)絡(luò)線程數(shù)目;
一般你不需要更改這
個(gè)屬性
int
3
高
num.recovery.threads.per.data.dir
每數(shù)據(jù)目錄用于日志
恢復(fù)啟動(dòng)和關(guān)閉沖洗
時(shí)的線程數(shù)量
int
1
高
num.replica.fetchers
從leader進(jìn)行復(fù)制
消息的線程數(shù),增大這個(gè)
數(shù)值會(huì)增加follower的IO
int
1
高
offset.metadata.max.bytes
允許client(消費(fèi)者)保存
它們元數(shù)據(jù)(offset)的
最大的數(shù)據(jù)量
int
4096(4kb)
offsets.commit.required.acks
在offset commit可以接
受之前,需要設(shè)置確認(rèn)的
數(shù)目,一般不需要更改
int
-1
高
offsets.commit.timeout.ms
offset commit會(huì)延遲
直至此超時(shí)或所需的
副本數(shù)都收到offset
commit,
這類似于producer請
求的超時(shí)
int
5000
高
offsets.load.buffer.size
此設(shè)置對應(yīng)于offset
manager在讀取緩存
offset segment的批量
大小(以字節(jié)為單位).
int
5242880
高
offsets.retention.check.interval.ms
offset管理器檢查陳
舊offsets的頻率
long
600000
(10分鐘)
高
offsets.topic.num.partitions
偏移的提交topic的分
區(qū)數(shù)目。 由于目前不
支持部署之后改變,
我們建議您使用生產(chǎn)
較高的設(shè)置
(例如,100-200)
int
50
高
offsets.topic.replication.factor
復(fù)制因子的offset提交topic。
較高的設(shè)置
(例如三個(gè)或四個(gè)),
建議以確保更高的
可用性。如果offset topic
創(chuàng)建時(shí),broker比
復(fù)制因子少,
offset topic將以較
少的副本創(chuàng)建。
short
3
高
offsets.topic.segment.bytes
offset topic的Segment
大小。因?yàn)樗褂?/p>
壓縮的topic,所有
Sgment的大小應(yīng)該
保持小一點(diǎn),以促進(jìn)更
快的日志壓實(shí)和負(fù)載
int
104857600
高
queued.max.requests
在網(wǎng)絡(luò)線程
(network threads)
停止讀取新請求之前,
可以排隊(duì)等待I/O線程
處理的最大請求個(gè)數(shù)。
若是等待IO的請求超
過這個(gè)數(shù)值,那么會(huì)
停止接受外部消息
int
500
高
quota.consumer.default
以clientid或
consumer group區(qū)分
的consumer端每秒
可以抓取的最大byte
long
92233720
36854775
807
(此為一
個(gè)數(shù)字)
高
quota.producer.default
producer端每秒可
以產(chǎn)生的最大byte
long
92233720
3685477
5807
(此為一
個(gè)數(shù)字)
高
replica.fetch.max.bytes
replicas每次獲取數(shù)
據(jù)的最大字節(jié)數(shù)
int
1048576
高
replica.fetch.min.bytes
fetch的最小數(shù)據(jù)尺寸,
如果leader中尚未同步
的數(shù)據(jù)不足此值,將會(huì)
阻塞,直到滿足條件
int
1
高
replica.fetch.wait.max.ms
replicas同leader之間
通信的最大等待時(shí)間,
失敗了會(huì)重試。這個(gè)值
須小于
replica.lag.time.max.ms,
以防止低吞吐量
主題ISR頻繁收縮
int
500
高
replica.high.watermark.checkpoint.interval.ms
每一個(gè)replica存儲(chǔ)自己
的high watermark到磁
盤的頻率,用來日后
的recovery
int
5000
高
replica.socket.timeout.ms
復(fù)制數(shù)據(jù)過程中,
replica發(fā)送給leader的
網(wǎng)絡(luò)請求的socket超
時(shí)時(shí)間,至少等于
replica.fetch.wait.max.ms
int
30000
高
replica.socket.receive.buffer.bytes
復(fù)制過程leader接
受請求的buffer大小
int
65536
(64*1024)
高
replica.lag.time.max.ms
replicas響應(yīng)partition leader
的最長等待時(shí)間,
若是超過這個(gè)時(shí)間,
就將replicas列入
ISR(in-sync replicas),
并認(rèn)為它是死的,
不會(huì)再加入管理中
long
10000
高
replica.lag.max.messages
如果follower落后與
leader太多,將會(huì)認(rèn)
為此follower
[或者說partition relicas]
已經(jīng)失效。 通常,在
follower與leader通訊時(shí),
因?yàn)榫W(wǎng)絡(luò)延遲或者鏈
接斷開,
總會(huì)導(dǎo)致replicas中消息
同步滯后如果消息之
后太多,leader將認(rèn)為
此follower網(wǎng)絡(luò)延遲
較大或者消息吞吐
能力有限,將會(huì)把此
replicas遷移到其他
follower中.在broker數(shù)
量較少,或者網(wǎng)絡(luò)不足
的環(huán)境中,建議提高此值.
int
4000
高
request.timeout.ms
producer等待響應(yīng)的
最長時(shí)間,如果超時(shí)
將重發(fā)幾次,最終報(bào)錯(cuò)
int
30000
高
socket.receive.buffer.bytes
socket用于接收網(wǎng)
絡(luò)請求的緩存大小
int
102400
高
socket.request.max.bytes
server能接受的請求
的最大的大小,
這是為了防止server
跑光內(nèi)存,不能大
于Java堆的大小。
int
104857600
(100*1024
*1024)
(此為一
個(gè)表達(dá)式)
高
socket.send.buffer.bytes
server端用來處理
socket連接的
SO_SNDBUFF緩沖大小
int
102400
高
controller.socket.timeout.ms
partition管理控制
器進(jìn)行備份時(shí),
socket的超時(shí)時(shí)間
int
30000
高
controller.message.queue.size
partition leader與
replicas數(shù)據(jù)同步時(shí),
消息的隊(duì)列大小
int
10
高
num.partitions
每個(gè)topic的分區(qū)個(gè)數(shù),
若是在topic創(chuàng)建時(shí)候
沒有指定的話會(huì)被
topic創(chuàng)建時(shí)的指定
參數(shù)覆蓋
int
1
推薦
設(shè)為8
高
log.index.interval.bytes
當(dāng)執(zhí)行一次fetch后,
需要一定的空間掃描
最近的offset,設(shè)置的
越大越好,但是也更耗
內(nèi)存一般使用默認(rèn)值就可以
int
4096
中
log.index.size.max.bytes
每個(gè)log segment的
最大尺寸。注意,
如果log尺寸達(dá)到這
個(gè)數(shù)值,即使尺寸
沒有超過log.segment.bytes
限制,也需要產(chǎn)生新的
log segment。
int
10485760
中
fetch.purgatory.purge.interval.requests
非立即答復(fù)請求放入
purgatory中,
當(dāng)?shù)竭_(dá)或超出interval
時(shí)認(rèn)為request complete
int
1000
中
producer.purgatory.purge.interval.requests
producer請求清除時(shí)間
int
1000
中
default.replication.factor
一個(gè)topic ,默認(rèn)分區(qū)
的replication個(gè)數(shù) ,
不能大于集群中
broker的個(gè)數(shù)。
int
1
中
group.max.session.timeout.ms
注冊consumer允許
的最大超時(shí)時(shí)間
int
300000
中
group.min.session.timeout.ms
注冊consumer允許
的最小超時(shí)時(shí)間
int
6000
中
inter.broker.protocol.version
broker協(xié)議版本
string
0.10.0
中
log.cleaner.backoff.ms
檢查log是否需要
clean的時(shí)間間隔
long
15000
中
log.cleaner.dedupe.buffer.size
日志壓縮去重時(shí)候的
緩存空間,在空間允許
的情況下,越大越好
long
134217
728
中
log.cleaner.delete.retention.ms
保存時(shí)間;保存壓縮
日志的最長時(shí)間;
也是客戶端消費(fèi)消息的
最長時(shí)間,
同log.retention.minutes
的區(qū)別在于一個(gè)控制未
壓縮數(shù)據(jù),一個(gè)控制壓
縮后的數(shù)據(jù);會(huì)被topic
創(chuàng)建時(shí)的指定時(shí)間覆蓋。
long
86400000
(一天)
中
log.cleaner.enable
是否啟動(dòng)壓縮日志,
當(dāng)這個(gè)屬性設(shè)置為false時(shí)
,一旦日志的保存時(shí)間或
者大小達(dá)到上限時(shí),
就會(huì)被刪除;
如果設(shè)置為true,
則當(dāng)保存屬性達(dá)到上限時(shí),
就會(huì)進(jìn)行壓縮
boolean
false
中
log.cleaner.threads
日志壓縮運(yùn)行的線程數(shù)
int
1
中
log.cleaner.io.buffer.load.factor
日志清理中hash表的
擴(kuò)大因子,一般不需
要修改
double
0.9
中
log.cleaner.io.buffer.size
log cleaner清除過程
中針對日志進(jìn)行索引
化以及精簡化所用到
的緩存大小。最好設(shè)置大
點(diǎn),以提供充足的內(nèi)存
int
524288
中
log.cleaner.io.max.bytes.per.second
進(jìn)行l(wèi)og compaction時(shí),
log cleaner可以擁有的
最大I/O數(shù)目。這項(xiàng)設(shè)置
限制了cleaner,以避免干
擾活動(dòng)的請求服務(wù)。
double
1.79769313
48623157E308
(此為一
個(gè)數(shù)字)
中
log.cleaner.min.cleanable.ratio
這項(xiàng)配置控制
log compactor
試圖清理日志的頻率
(假定[log compaction]
是打開的)。
默認(rèn)避免清理壓縮超過
50%的日志。這個(gè)比率
綁定了備份日志所消耗
的最大空間(50%的
日志備份時(shí)壓縮率為50%)。
更高的比率則意味著浪
費(fèi)消耗更少,也就可
以更有效的清理更多
的空間。這項(xiàng)設(shè)置在
每個(gè)topic設(shè)置中可以覆蓋
double
0.5
中
log.preallocate
是否預(yù)創(chuàng)建新文件,windows推薦使用
boolean
false
中
log.retention.check.interval.ms
檢查日志分段文件的間隔時(shí)間,以確定是否文件屬性是否到達(dá)刪除要求。
long
300000
中
max.connections.per.ip
一個(gè)broker允許從每個(gè)ip地址連接的最大數(shù)目
int
2147483647
=Int.
MaxValue
中
max.connections.per.ip.overrides
每個(gè)IP或主機(jī)名覆蓋連接的默認(rèn)最大數(shù)量
string
“”
中
replica.fetch.backoff.ms
復(fù)制數(shù)據(jù)時(shí)失敗等待時(shí)間
int
1000
中
reserved.broker.max.id
broker可以使用的最大ID值
int
1000
中
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的kafka0.9 java commit_kafka0.9.0及0.10.0配置属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java matlab 矩阵_如何在MA
- 下一篇: mysql_connect 废弃_解决D