Golang 連線Kafka
阿新 • • 發佈:2018-11-08
Kafka介紹
Kafka是Apache軟體基金會開發的一個開源流處理平臺,由Java和Scala編寫;Kafka是一種高吞吐、分散式、基於訂閱釋出的訊息系統。
Kafka名稱解釋
Producer:生產者
Consumer:消費者
Topic:訊息主題,每一類的訊息稱之為一個主題
Broker:Kafka以叢集的方式執行,可以由一個或多個伺服器組成,每個伺服器叫做一個broker
Partition:物理概念上的分割槽,為了提供系統吞吐量,在物理上每個Topic會分為一個或多個Partition
Kafka架構圖
一個典型的Kafka叢集中包含若干Producer,若干broker(Kafka支援水平擴充套件,一般broker數量越多,叢集吞吐率越高),若干Consumer Group,以及一個Zookeeper叢集。
Kafka通過Zookeeper管理叢集配置及服務協同,Producer使用push模式將訊息釋出到broker,Consumer通過監聽使用pull模式從broker訂閱並消費訊息。
圖上有個細節需要注意,producer給broker的過程是push,也就是有資料就推送給broker,而consumer給broker的過程是pull,是通過consumer主動去拉資料的,而不是broker把資料主動傳送給consumer端的。
Kafka與RabbitMQ比較
Kafka比RabbitMQ效能要高
RabbitMQ比Kafka可靠性要高
因此在金融支付領域使用RabbitMQ居多,而在日誌處理、大資料等方面Kafka使用居多。