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