您好,登錄后才能下訂單哦!
SpringKafka文檔地址:https://docs.spring.io/spring-kafka/reference/htmlsingle
kafka文檔地址:http://kafka.apache.org/documentation
SpringKafka中配置的Java配置實現類:https://github.com/spring-projects/spring-boot/blob/v1.5.4.RELEASE/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/kafka/KafkaProperties.java
配置及參數說明如下:
#################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的配置參數(結束)#################
以下是一個去掉了一些默認參數后的配置:
spring.kafka.bootstrap-servers=172.17.35.141:9092,172.17.41.159:9092,172.17.38.154:9092,172.17.40.60:9092 spring.kafka.consumer.topic=test_topic spring.kafka.consumer.group-id=streamProcesser spring.kafka.consumer.auto-offset-reset=earliest spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。