【Kafka】Producer配置

名稱 描述 類型 默認值
bootstrap.servers kafka集羣地址,ip+端口,以逗號隔開。無論這邊配置的是什麼服務器,客戶端會使用全部的服務器。配置的列表只會影響初始發現全部主機。配置的格式應該是:ip:port,ip:port,由於配置的內容只是用於服務集羣的初始發現(集羣地址可能會變化),配置能夠不包含全部的服務器(你可能須要配置多於一個,防止某個服務掛掉) list
key.serializer 實現Serializer接口的序列化類鍵 class
value.serializer 實現Serializer接口的序列化類值 class
acks 生產者認爲一個請求完成,所須要kafka集羣主服務的應答次數。這個配置控制已發送消息的持久性。下面是這個配置可能的值。acks=0:若是設置爲0,生產者不會等待kafka的響應。消息會被馬上加到發送緩衝通道中,而且認爲已經發送成功。這種狀況下,不能保證kafka接收到了這條消息,retries配置不會生效,每條消息的偏移量都是1;acks=1:這個配置意味着kafka會把這條消息寫到本地日誌文件中,可是不會等待集羣中其餘機器的成功響應。這種狀況下,在寫入日誌成功後,集羣主機器掛掉,同時從機器還沒來得及寫的話,消息就會丟失掉。acks=all:這個配置意味着leader會等待全部的follower同步完成。這個確保消息不會丟失,除非kafka集羣中全部機器掛掉。這是最強的可用性保證。 string 1
buffer.memory 生產者等待發送到kafka的消息隊列佔用內容的大小。若是消息發送的速度比傳輸給kafka快,生產者會在拋出異常後,阻塞max.block.ms的時間。這個配置應該大致與生產者用到的內存差很少,但不全是,由於生產者使用的內存不所有用於消息隊列。還有些內存會被用於壓縮和保持長鏈接。 long 33554432
compression.type 生產者的數據壓縮類型。默認是不壓縮(no compression)。有效的配置能夠是none,gzip,snappy或lz4。壓縮是數據的批量壓縮,因此批量的效果也就是壓縮的比例(壓縮的比例越好,數據量越小)。 string none
retries 配置爲大於0的值的話,客戶端會在消息發送失敗時從新發送。重試等同於在發送有異常時從新發送消息。若是不把max.in.flight.requests.per.connection設爲1,重試可能會改變消息的順序。兩條消息同時發送到同一個分區,第一條失敗了,並在第二條發送成功後從新發送,那麼第二條消息可能在第一條消息前到達。 int 0
ssl.key.password 存在文件中的私鑰密碼,對於生產者來講可選。 password null
ssl.keystore.location 存儲私鑰的文件地址,能夠用於不一樣客戶端的認證。 string null
ssl.keystore.password 私鑰文件存儲密碼。只有當ssl.keystore.location配置了,纔有用。 password null
ssl.truststore.location 信任存儲文件路徑。 string null
ssl.truststore.password 信任存儲文件密碼 password null
batch.size 當多條消息須要發送到同一個分區時,生產者會嘗試合併網絡請求。這會提升client和生產者的效率。若是消息體大於這個配置,生產者不會嘗試發送消息。發送給kafka的消息包含不一樣的批次,每批發送給一個分區。批次大小過小的話可能會下降吞吐量。若是設爲0,會禁用批處理功能。若是批次設置很大,可能會有些浪費內存,由於咱們會預留這部份內存用於額外的消息。 int 16384
client.id 發送請求給kafka時帶上的生產者標識。目的是爲了在ip+端口以外,經過邏輯上的應用名稱跟蹤請求,以便記錄在kafka日誌中。 string ""
connections.max.idle.ms 在配置項的時間以後,關閉空閒的連接 long 540000
linger.ms 消息延遲發送的毫秒數,目的是爲了等待多個消息,在同一批次發送,減小網絡請求。 long 0
max.block.ms 這個配置控制KafkaProducer.send()和KafkaProducer.partitionsFor()的阻塞時間,當緩衝區空間不夠或者源數據丟失時阻塞 int 60000
max.request.size 生產者一次請求的最大字節數,這也是一次消息體的最大值。注意到kafka集羣有本身的消息限制,可能與這個值不同。這個配置限制的是生產者一次發送消息的大小,爲的是避免發送大的數據量。 int 1048576
partitioner.class 實現Partitioner接口的分區類 class class org.apache.kafka.clients.producer.internals.DefaultPartitioner
receive.buffer.bytes socket接收緩存空間的大小,讀數據時用 int 32768
request.timeout.ms 生產者發送消息後等待響應的最大時間,若是在配置時間內沒有獲得響應,生產者會重試。 int 30000
timeout.ms kafka集羣的leader等待follower響應的超時時間。 int 30000
相關文章
相關標籤/搜索