回顧:kafka極簡入門(三)--建立topicapache
前言
kafka針對broker, topic, producer, consumer的配置很是多,這裏講一下經常使用的配置bootstrap
1.broker相關配置
- broker.id
broker在kafka集羣中的惟一標識,必須是一個大於等於0的整數,若是不寫的話默認從1001開始。
建議:把它設置成與機器名具備相關性的整數。
- port
設置kafka的端口號,默認狀況下是9092,不建議修改爲1024如下的端口,由於須要使用root權限啓動。
-
zookeeper.connect
設置zookeeper集羣,該配置參數是一組用逗號隔開的host:port/path列表segmentfault
- host是zookeeper服務器的機器名或ip地址
- port是zookeeper服務器的端口
- /path是可選的zookeeper路徑,做爲kafka集羣的chroot環境,默認是根路徑,若是指定的chroot路徑不存在,kafka會在啓動的時候建立它。使用chroot使得zookeeper集羣能夠共享給其餘應用程序時而不會產生衝突。
- log.dirs
配置kafka日誌片斷的目錄位置,多個路徑以逗號隔開。若是配置了多個路徑,kafka會根據最少使用原則,把統一分區的日誌保存到同一路徑下,注意的是,kafka會往擁有最少數量分區的路徑新增分區,而不是往擁有最小磁盤空間的路徑新增分區。
-
auto.create.topics.enable
配置是否開啓自動建立topic,若是設置爲true, kafka會在如下幾種場景自動建立topic:安全
- 當一個producer開始往topic寫入消息時。
- 當一個consumer開始從topic消費消息時。
- 當一個client向topic發送元數據請求時。
- num.partitions
配置建立主題時包含多少個分區,默認值爲1,由於咱們能增長主題的分區數,可是不能減小分區的個數,因此,若是要讓一個主題的分區個數少於num.partitions須要手動建立該主題而不是經過自動建立主題。
- log.retention.hours
配置kafka保留數據的時間,默認爲168小時也就是7天,效果等同log.retention.minutes和log.retention.ms,只是單位不同,分別是小時,分鐘,和毫秒,推薦使用log.retention.ms,粒度更加細,若是三個參數都配置了則去數值最小的配置。
- log.retention.bytes
配置一個分區能保存最大的字節數,若是超出的部分就會被刪除,同時配置了log.retention.hours/log.retention.minutes/log.retention.ms的話,任一個知足條件都會觸發數據刪除。
- message.max.bytes
配置消息的大小限制,默認爲100000,也就是1M,這裏的大小是指在kafka壓縮後的大小,也就是說實際消息能夠大於1M,若是消息超過這個限制,則會被kafka拒收。
2.producer相關配置
3.Consumer相關配置
默認使用org.apache.kafka.clients.consumer.RangeAssignor,這個類實現了Range策略,RoundRabin的實現類爲org.apache.kafka.clients.consumer.RoundRobinAssignor,咱們還能夠自定義策略。測試
若是對你有用麻煩點個贊哦 ^_^spa