1. 程式人生 > >Kafka筆記2(安裝)

Kafka筆記2(安裝)

reads message hostname ret 集群 p地址 應用 新的 create

1.安裝java

2.安裝zookeeper

技術分享圖片

3.安裝kafka Broker

技術分享圖片

測試:發布消息

技術分享圖片

測試:讀取消息

技術分享圖片

4,broker配置

  常規配置:

    broker.id: 默認0 每個broker都需要一個標識符,使用broker.id標識,在kafka集群裏必須唯一

    port 默認監聽9092端口,使用1024以下的端口,需要root權限啟動Kafka,不建議

    zookeeper.connect 用於保存broker元數據的zookeeper地址,格式: hostname:port/path

        hostname zookeeper服務器的IP地址或機器名

        port zookeeper客戶端連接端口

        /path 可選的zookeeper路徑,作為kafka集群chroot環境,默認根路徑

    log.dirs 存放Kafka所有消息的日誌片段的路徑 註意:broker會向擁有最少數目分區的路徑新增分區,而不是往最小磁盤空間的路徑新增分區

    num.recovery.threads.per.data.dir

       對於如下3種情況,Kafka使用可配置的線程池來處理日誌片段

        服務器正常啟動,用於打開每個分區的日誌片段

        服務器崩潰後重啟,用於檢查和截短每個分區的日誌片段

        服務器正常關閉,用於關閉日誌片段

      默認每個日誌目錄(log.dirs)只使用一個線程

      如果num.recovery.threads.per.data.dir=8,log.dir指定了3個路徑,則一共需要24個線程

    auto.create.topic.enable

      默認情況下Kafka會在如下情形自動創建主題:

        當一個生產者開始往主題寫入消息時

        當一個消費者開始從主題讀取消息時

        當任意一個客戶端向主題發送元數據請求時

   主題的默認配置參數:

      num.partitions

參數指定新創建主題將包含多少分區,默認1 註意:可以增加主題分區的個數,但是不可以減少,若要少於該參數值,只能手動創建主題

        分區的參考計算:每秒從主題讀取/寫入1G數據,每個消費者處理50M數據,那麽分區的個數> 1G/50M=20個

        根據經驗,分區的大小限制在25GB以內較理想

      log.retention.ms 指定Kafka數據可以保留多長時間 ,除此之外還有參數log.retention.minutes log.retention.hour; kafka優先使用具有最小值的參數

      log.retention.bytes 決定Kafka每個分區數據過期的字節數閾值

      log.segment.bytes 日誌片段關閉的閾值 當分區上的日誌片段到達log.segment.bytes指定的上限時,當前日誌片段就會關閉,開啟新的日誌片段,同時關閉的日誌片段也會開始等待過期

      log.segment.ms 指定多長時間後日誌片段開始關閉

      message.max.bytes 限制單個消息大小 默認1M,該參數是指壓縮後消息的大小

        消費者客戶端設置的fetch.message.max.bytes必須與服務端設置的消息大小協調;若fetch.message.max.bytes < message.max.bytes 那麽消費者無法讀取比較大的消息,導致出現消費者被阻塞情形,在為集群broker設置replica.fetch.max.bytes參數時,也遵循同樣原則

硬件上的選擇:

  磁盤吞吐量:

    生產者客戶端性能受到服務器端磁盤吞吐量影響

  磁盤容量

  內存

    服務器端可用的內存容量是影響客戶端性能的主要因素,磁盤性能影響生產者,內存影響消費者

    Kafka會使用頁面緩存,如果和其他應用共享頁面緩存會降低Kafka消費者的性能

  網絡

    網絡吞吐量決定Kafka能處理的最大數據流量

  CPU

    Kafka對數據的壓縮和解壓縮會用到計算能力

KafKa集群: 可以實現負載均衡/避免單點故障

需要多少broker: 集群需要保留10T數據,每個broker可以保存2T,則至少需要5個broker,若果開啟復制,則還需要擴大一倍即10個

新加一個broker至集群種,修改2個參數: 1)配置相同的zookeeper.connect 2) 設置唯一的broker.id

Kafka筆記2(安裝)