1. 程式人生 > >Golang 連線Kafka

Golang 連線Kafka

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使用居多。