Kafka是由Apache軟件基金會開發的壹個開源流處理平臺,由Scala和Java編寫。kafka 是壹個高性能的消息隊列,也是壹個分布式流處理平臺。
kafka中文網
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 。
Zookeeper :kafka集群依賴zookeeper來保存集群的的元信息,來保證系統的可用性。
使用brew進行安裝,非常方便。
ZooKeeper是壹個分布式的,開放源碼的 分布式應用程序協調服務 ,是Google的Chubby壹個開源的實現,是Hadoop和Hbase的重要組件。它是壹個為分布式應用提供壹致性服務的軟件,提供的功能包括:配置維護、域名服務、分布式同步、組服務等。
kafka是基於zookeeper的,啟動kafka之前,需要先啟動zookeeper
查看啟動是否成功
啟動kafka
查看啟動是否成功
查看topic列表
新起壹個終端,作為生產者,用於發送消息,每壹行算壹條消息,將消息發送到kafka服務器
新起壹個終端作為消費者,接收消息
服務關閉的順序是先kafka,然後zookeeper
再過半小時,妳就能明白kafka的工作原理了
Kafka架構原理,也就這麽回事!
嘿!我是李紫,歡迎您閱讀這篇文章《坦克大戰雙人版遊戲編程》。
相信這個遊戲可能大家都很難。如果妳剛開始學,這個代碼會直接發給大家玩,但是妳可以看看這個代碼!
當然,如果妳基礎比較好,可以考慮看完之後嘗試玩壹個類似的遊戲,然後有不懂的可以來我的粉絲裙。
沒有基礎的同學也不用擔心:Python偶爾有免費的在線直播互動課,妳可以跟