[Kafka]spring-kafka中的配置詳解

#################consumer的配置參數(開始)#################
#如果'enable.auto.commit'爲true,則消費者偏移自動提交給Kafka的頻率(以毫秒爲單位),默認值爲5000。
spring.kafka.consumer.auto-commit-interval;
 
#當Kafka中沒有初始偏移量或者服務器上不再存在當前偏移量時該怎麼辦,默認值爲latest,表示自動將偏移重置爲最新的偏移量
#可選的值爲latest, earliest, none
spring.kafka.consumer.auto-offset-reset=latest;
 
#以逗號分隔的主機:端口對列表,用於建立與Kafka羣集的初始連接。
spring.kafka.consumer.bootstrap-servers;
 
#ID在發出請求時傳遞給服務器;用於服務器端日誌記錄。
spring.kafka.consumer.client-id;
 
#如果爲true,則消費者的偏移量將在後臺定期提交,默認值爲true
spring.kafka.consumer.enable-auto-commit=true;
 
#如果沒有足夠的數據立即滿足“fetch.min.bytes”給出的要求,服務器在回答獲取請求之前將阻塞的最長時間(以毫秒爲單位)
#默認值爲500
spring.kafka.consumer.fetch-max-wait;
 
#服務器應以字節爲單位返回獲取請求的最小數據量,默認值爲1,對應的kafka的參數爲fetch.min.bytes。
spring.kafka.consumer.fetch-min-size;
 
#用於標識此使用者所屬的使用者組的唯一字符串。
spring.kafka.consumer.group-id;
 
#心跳與消費者協調員之間的預期時間(以毫秒爲單位),默認值爲3000
spring.kafka.consumer.heartbeat-interval;
 
#密鑰的反序列化器類,實現類實現了接口org.apache.kafka.common.serialization.Deserializer
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
 
#值的反序列化器類,實現類實現了接口org.apache.kafka.common.serialization.Deserializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
 
#一次調用poll()操作時返回的最大記錄數,默認值爲500
spring.kafka.consumer.max-poll-records;
#################consumer的配置參數(結束)#################
#################producer的配置參數(開始)#################
#procedure要求leader在考慮完成請求之前收到的確認數,用於控制發送記錄在服務端的持久化,其值可以爲如下:
#acks = 0 如果設置爲零,則生產者將不會等待來自服務器的任何確認,該記錄將立即添加到套接字緩衝區並視爲已發送。在這種情況下,無法保證服務器已收到記錄,並且重試配置將不會生效(因爲客戶端通常不會知道任何故障),爲每條記錄返回的偏移量始終設置爲-1。
#acks = 1 這意味着leader會將記錄寫入其本地日誌,但無需等待所有副本服務器的完全確認即可做出迴應,在這種情況下,如果leader在確認記錄後立即失敗,但在將數據複製到所有的副本服務器之前,則記錄將會丟失。
#acks = all 這意味着leader將等待完整的同步副本集以確認記錄,這保證了只要至少一個同步副本服務器仍然存活,記錄就不會丟失,這是最強有力的保證,這相當於acks = -1的設置。
#可以設置的值爲:all, -1, 0, 1
spring.kafka.producer.acks=1
 
#每當多個記錄被髮送到同一分區時,生產者將嘗試將記錄一起批量處理爲更少的請求, 
#這有助於提升客戶端和服務器上的性能,此配置控制默認批量大小(以字節爲單位),默認值爲16384
spring.kafka.producer.batch-size=16384
 
#以逗號分隔的主機:端口對列表,用於建立與Kafka羣集的初始連接
spring.kafka.producer.bootstrap-servers
 
#生產者可用於緩衝等待發送到服務器的記錄的內存總字節數,默認值爲33554432
spring.kafka.producer.buffer-memory=33554432
 
#ID在發出請求時傳遞給服務器,用於服務器端日誌記錄
spring.kafka.producer.client-id
 
#生產者生成的所有數據的壓縮類型,此配置接受標準壓縮編解碼器('gzip','snappy','lz4'),
#它還接受'uncompressed'以及'producer',分別表示沒有壓縮以及保留生產者設置的原始壓縮編解碼器,
#默認值爲producer
spring.kafka.producer.compression-type=producer
 
#key的Serializer類,實現類實現了接口org.apache.kafka.common.serialization.Serializer
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
 
#值的Serializer類,實現類實現了接口org.apache.kafka.common.serialization.Serializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
 
#如果該值大於零時,表示啓用重試失敗的發送次數
spring.kafka.producer.retries
#################producer的配置參數(結束)#################
#################listener的配置參數(結束)#################
#偵聽器的AckMode,參見https://docs.spring.io/spring-kafka/reference/htmlsingle/#committing-offsets
#當enable.auto.commit的值設置爲false時,該值會生效;爲true時不會生效
spring.kafka.listener.ack-mode;
 
#在偵聽器容器中運行的線程數
spring.kafka.listener.concurrency;
 
#輪詢消費者時使用的超時(以毫秒爲單位)
spring.kafka.listener.poll-timeout;
 
#當ackMode爲“COUNT”或“COUNT_TIME”時,偏移提交之間的記錄數
spring.kafka.listener.ack-count;
 
#當ackMode爲“TIME”或“COUNT_TIME”時,偏移提交之間的時間(以毫秒爲單位)
spring.kafka.listener.ack-time;
#################listener的配置參數(結束)#################
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章