Kafka作為高吞吐的消息中間件,在消息大小為100Bytes,吞吐即可達到800kQPS,此外,Kafka的定位為流式處理平臺,以下為Kafka官網的解釋:
Kafka is generally used for two broad classes of applications:
- Building real-time streaming data pipelines that reliably get data between systems or applications
- Building real-time streaming applications that transform or react to the streams of data
即主要應用於流式處理平臺。
Kafka的消息處理流程如下:
簡單理解就是由生產者將消息寫入topic,消費從topic拉取消息,即發佈-訂閱機制。
那麼,如果要每天處理上萬億條消息,單節點是不夠用的,我們要考慮採用分佈式集群,這裡講的是偽集群,即單服務器上開多個節點。
下面開啟Kafka的4個節點:9092-9095
配置比較簡單,修改Kafka配置文件server.properties就可以。
vim server.properties
broker.id=1
listeners=PLAINTEXT://ip:9095
注:每個節點的broker.id與listeners不應相同,下面通過sed命令實現批量修改。
以9095實例為例:
sed -i "s/broker.id=1/broker.id=5/g" server.properties
sed -i "s/9092/9095/g" server.properties
其它節點,也要進行修改。
修改後,執行以下shell腳本以守護進程啟動kafka:
vim start_kafka.sh
#!/bin/bash
for j in $(seq 9092 9095)
do
kafka-server-start.sh -daemon /usr/local/kafka/$j/config/server.properties
j=`expr $j + 1`;
done
這樣,通過netstat就可惜監聽到9092-9095端口了。
閱讀更多 InternetPlus 的文章