kafka簡介
kafka是一種高吞吐量的分佈式發佈訂閱消息系統,
特點
- 通過O(1)的磁盤數據結構提供消息的持久,這種結構對於即使數以TB的消息存儲也能夠保持長時間的穩定性能.
- 高吞吐量,即使是非常普通的硬件,kafka也可以支持每秒數百萬的消息.
- 支持通過kafka服務器和消費機集羣來分區消息
- 支持hadoop並行數據加載.
kafka組成部分
- Broker
kafka集羣包含一個或多個服務器,這種服務器被稱爲broker
- Topic
每條發佈到kafka集羣的消息都有一個類別,這個類別被稱爲Topic.(物理上不同Topic的消息分開存儲. 邏輯上Topic的消息雖然保存於一個或多個broker上,但是用戶只需要指定消息的Topic,即可生產或消費數據,而不同關心數據存於何處)
- Partition
Partition是物理上的概念,每個Topic包含一個或多個Partition
- Producer
負責發佈消息到Kafka broker
- Consumer
消息消費者,向kafka broker讀取消息的客戶端
- Consumer Group
每個Consumer屬於一個特定的Consumer Group(可以每個consumer指定group name,若不指定group name,則屬於默認的group)
golang驅動kafka
go get github