一般的講:kafka 的參數分爲 Broker Configs 和 Topic-Level Configs,以 min.insync.replicas 爲例,能夠在 broker 和 topic 級別設置。apache
listeners=PLAINTEXT://192.168.40.8:9092接口
kafka 實際監聽的地址kafka
advertised.listeners=PLAINTEXT://192.168.40.8:9092it
kafka 註冊到 zk 中地址。客戶端鏈接到 kafka 集羣的任一 broker,該 broker 會返回 zk 中的 broker 信息。io
min.insync.replicas=1class
至少須要等 1 個副本確認後,producer 發送消息纔算成功test
auto.offset.reset=latest, earliest集羣
新建一個消費組,latest 表示從最新的位置開始消費,earliest 表示從最舊的位置開始。原理是重置位點。原理
若是消費組已經存在,必然有位點信息,則會使用現有位點信息。cli
enable.auto.commit = false
是否自動提交。若是客戶端一直不提交,則沒有位點信息,而 auto.offset.reset 設爲 latest 的話,則一直拉最新的消息。
producer 參數,默認爲 1
acks = -1, 0, 1
設爲 -1,須要和 min.insync.replicas 配合(一個典型的場景是,topic 3 副本,客戶端設置 acks = -1,服務端設置 topic level 的 min.insync.replicas = 2,這樣至少有 2 個副本寫入後,broker 纔會返回);
設爲 0,不須要等;
設爲 1,leader 寫入本地後,即返回。
https://hackernoon.com/apache-kafkas-distributed-system-firefighter-the-controller-broker-1afca1eae302
partitioner.class
producer 的參數,默認值是 org.apache.kafka.clients.producer.internals.DefaultPartitioner,能夠本身實現 Partitioner 接口,指定發送消息到哪一個分區的規則。