Google Code Prettify

2016年2月21日 星期日

Apache Kafka 9.0 需注意的地方

Apache Kafka 9.0
     Documentation  http://kafka.apache.org/documentation.html

kafka 雖然沒限制 topics 的數量,但在機器數量少時 還是需要避免這種設計方式
因為kafka 是使用 file 的儲存方式,每一個topics 至少會產生1個目錄與2個檔案

kafka cluster 中的所有檔案數量是:
     (topics * partition * replication-factor * 2) + (offsets * n)

100K topics 在 3台 kafka 主機裡,至少會產生:
     (100K * 1 * 1 * 2) +(N) = 200k + N

每台 kafka 至少要產生 200K / 3 (約66666) 的檔案,超過一般linux fs.file-max = 65536 的設定,當然這還是有辦法解決

但在每個 partition 都需要相對應的 thread 來處理,這就比較麻煩了
100K 需要多少 thread 來處理才能夠即時回應,不造成timeout?
每台硬體都要有足夠的RAM 跟 夠好的 CPU時 也許可行, 但還是避掉這種設計會比較好


在設定檔有幾個需要注意的地方
    server.properties
  • broker.id 需特別注意編號 每台主機不可重覆
  • 如果需要 delete topic,需增加 delete.topic.enable=true
    producer.properties

  • client.id 在每個 thread 不能重覆
    consumer.properties
  • group.id=PG 修改預設的group id
  • offsets.storage=kafka 設定 offset 資料存在 kafka
ZooKeeper Cluster 設定
    可參考 http://myjeeva.com/zookeeper-cluster-setup.html
    修改 zookeeper.properties

    設定 zookeeper cluster id
        mkdir /tmp/zookeeper/
        echo 1 > /tmp/zookeeper/myid (id 需特別注意編號,跟zookeeper.properties 需對應)

沒有留言: