Kafaka入門(1)- Kafka簡介和安裝與啓動(mac)

Kafka是由Apache軟件基金會開發的一個開源流處理平臺,由Scala和Java編寫。kafka 是一個高性能的消息隊列,也是一個分佈式流處理平臺。
kafka中文網
kafka官網


1.kafka基礎概念

Producer:Producer即生產者,消息的產生者,是消息的入口。
kafka cluster
    Broker:Broker是kafka實例,每個服務器上有一個或多個kafka的實例,姑且認爲每個broker對應一臺服務器。一個集羣由多個broker組成,集羣內的broker都有一個不重複的編號,如圖中的broker-0、broker-1等……
    Topic:消息的主題,可以理解爲消息的分類,kafka的數據就保存在topic。在每個broker上都可以創建多個topic。
    Partition:Topic的分區,每個topic可以有多個分區,分區的作用是做負載,提高kafka的吞吐量。同一個topic在不同的分區的數據是不重複的,partition的表現形式就是一個一個的文件夾!
    Replication:每一個分區都有多個副本,副本的作用是做備胎。當主分區(Leader)故障的時候會選擇一個備胎(Follower)上位,成爲Leader。在kafka中默認副本的最大數量是10個,且副本的數量不能大於Broker的數量,follower和leader絕對是在不同的機器,同一機器對同一個分區也只可能存放一個副本(包括自己)。
    Message:每一條發送的消息主體。
Consumer:消費者,即消息的消費方,是消息的出口。
Consumer Group:將多個消費組成一個消費者組。在kafka的設計中同一個分區的數據只能被同一消費者組中的某一個消費者消費。Partition 的分配問題,即確定哪個 Partition 由哪個 Consumer 來消費。Kafka 有兩種分配策略,一個是 RoundRobin,一個是 Range,默認爲Range。
一個消費者組內也可以訂閱多個topic
多個消費組可以訂閱同一個topic

2個 Consumer Group A, B訂閱了topicA。topicA,有4個partition(p0,p1,p2,p3)。Consumer Group A有2個Consumer:c0、c1,Consumer Group B有4個Consumer:c3,c4,c5,c6。經過分區分配後,consumer與partition的訂閱關係如下:
(1)TopicA 的4個partition在Consumer Group A中的分配情況如下:
C1 訂閱p0,p3
C2 訂閱p1,p2
(2)TopicA 的4個partition在Consumer Group B中的分配情況如下:
C3 訂閱p0
C4 訂閱p3
C5 訂閱p1
C6 訂閱p2

Zookeeper:kafka集羣依賴zookeeper來保存集羣的的元信息,來保證系統的可用性。


2.安裝Kafka

使用brew進行安裝,非常方便。

brew install kafka

kafka的安裝目錄:/usr/local/Cellar/kafka
kafka的配置文件目錄:/usr/local/etc/kafka
如果需要修改配置,可以進入對應目錄,修改配置文件就好


3.小試牛刀

(3.1)啓動zookeeper

ZooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等。
kafka是基於zookeeper的,啓動kafka之前,需要先啓動zookeeper

/usr/local/Cellar/kafka/2.1.0/bin/zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties

查看啓動是否成功

ps aux | grep zookeeper

啓動kafka

/usr/local/Cellar/kafka/2.1.0/bin/kafka-server-start /usr/local/etc/kafka/server.properties

查看啓動是否成功

ps aux | grep kafka
(3.2)創建一個topic
kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic sunday

查看topic列表

kafka-topics --list --zookeeper localhost:2181
(3.3)創建一個生產者

新起一個終端,作爲生產者,用於發送消息,每一行算一條消息,將消息發送到kafka服務器

kafka-console-producer --broker-list localhost:9092 --topic sunday
(3.4)創建一個消費者

新起一個終端作爲消費者,接收消息

kafka-console-consumer --bootstrap-server localhost:9092 --topic sunday --from-beginning
(3.5)服務的關閉

服務關閉的順序是先kafka,然後zookeeper

# 關閉kafka
/usr/local/Cellar/kafka/2.1.0/bin/kafka-server-stop
#關閉zookeeper
/usr/local/Cellar/kafka/2.1.0/bin/zookeeper-server-stop

參考

再過半小時,你就能明白kafka的工作原理了
Kafka架構原理,也就這麼回事!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章