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

Golang 連接Kafka

比較 架構圖 消費者 alt 模式 技術 zookeep 支持 pac

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

Golang 連接Kafka