[Kafka]how to scale-out your kafka cluster

Kafka目前已經通過QA環境的壓力測試,也在Staging環境服務超過兩個禮拜了,

我們預計下一個版本將上Production,而那是一個超高流量和concurrent users的環境,

預防可能會有Scale-out的需求,我先來練習一下。

Production 環境我目前使用三台VM建置一個kafka cluster,

我擔心上正式環境可能會撐不了龐大request,

所以先練習一下如何使用螞蟻雄兵/scale-out來撐起公司Production的log aggregation。

 

目前我LAB有三台broker如下

修改producer.properties和consumer.properties新增broker

bootstrap.servers=192.168.137.182:9092,192.168.137.182:9093,192.168.137.182:9094,192.168.137.182:9095

 

修改server.properties的brokerid、port、JMX port和log.dir

broker.id=3

port=9095

log.dirs=C:/kafka/kafka-logs3

JMX_PORT=10000

 

Start new kafka broker

可以看到我們新的broker已經加入現有的cluster,整個過程不用花我1分鐘

由於我們新增了一台broker,所以相關的topic都會有Brokers分佈率低於100%的情況,

下面我將使用kafka-manager來解決這情況

現在我們必須要重新分配topic上的partition

然後依序執行(如下圖)

大概3秒鐘就可以讓所有broker都上陣了(過程中,對producer幾乎沒影響,但consumer可能就需要重新啟動了)

整體操作下來,只有Easy可以形容 :)​