2、為了提高并行度 。
kafka集群實戰(zhàn)對于kafka來說,一個單獨的broker意味著kafka集群中只有一個節(jié)點 。要想增加kafka集群中的節(jié)點數(shù)量,只需要多啟動幾個broker實例即可 。為了有更好的理解,現(xiàn)在我們在一臺機器上同時啟動三個broker實例 。
首先,我們需要建立好其他2個broker的配置文件:
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties
配置文件的需要修改的內(nèi)容分別如下:
config/server-1.properties:
#broker.id屬性在kafka集群中必須要是唯一 broker.id=1 #kafka部署的機器ip和提供服務(wù)的端口號 listeners=PLAINTEXT://192.168.65.60:9093 log.dir=/usr/local/data/kafka-logs-1 #kafka連接zookeeper的地址,要把多個kafka實例組成集群,對應(yīng)連接的zookeeper必須相同 zookeeper.connect=192.168.65.60:2181
config/server-2.properties:
broker.id=2 listeners=PLAINTEXT://192.168.65.60:9094 log.dir=/usr/local/data/kafka-logs-2 zookeeper.connect=192.168.65.60:2181
目前我們已經(jīng)有一個zookeeper實例和一個broker實例在運行了,現(xiàn)在我們只需要在啟動2個broker實例即可:
bin/kafka-server-start.sh -daemon config/server-1.properties bin/kafka-server-start.sh -daemon config/server-2.properties
查看zookeeper確認(rèn)集群節(jié)點是否都注冊成功:
創(chuàng)建一個新的topic,副本數(shù)設(shè)置為3,分區(qū)數(shù)設(shè)置為2:
bin/kafka-topics.sh –create –zookeeper 192.168.65.60:2181 –replication-factor 3 –partitions 2 –topic my-replicated-topic
查看下topic的情況
bin/kafka-topics.sh –describe –zookeeper 192.168.65.60:2181 –topic my-replicated-topic
leader節(jié)點負(fù)責(zé)給定partition的所有讀寫請求,同一個主題不同分區(qū)leader副本一般不一樣(為了容災(zāi))replicas 表示某個partition在哪幾個broker上存在備份 。不管這個幾點是不是”leader“,甚至這個節(jié)點掛了,也會列出 。isr 是replicas的一個子集,它只列出當(dāng)前還存活著的,并且已同步備份了該partition的節(jié)點 。kafka將很多集群關(guān)鍵信息記錄在zookeeper里,保證自己的無狀態(tài),從而在水平擴容時非常方便 。
集群消費log的partitions分布在kafka集群中不同的broker上,每個broker可以請求備份其他broker上partition上的數(shù)據(jù) 。kafka集群支持配置一個partition備份的數(shù)量 。
針對每個partition,都有一個broker起到“l(fā)eader”的作用,0個或多個其他的broker作為“follwers”的作用 。leader處理所有的針對這個partition的讀寫請求,而followers被動復(fù)制leader的結(jié)果,不提供讀寫(主要是為了保證多副本數(shù)據(jù)與消費的一致性) 。如果這個leader失效了,其中的一個follower將會自動地變成新的leader 。
Producers
生產(chǎn)者將消息發(fā)送到topic中去,同時負(fù)責(zé)選擇將message發(fā)送到topic的哪一個partition中 。通過round-robin做簡單的負(fù)載均衡 。也可以根據(jù)消息中的某一個關(guān)鍵字來進(jìn)行區(qū)分 。通常第二種方式使用得更多 。
Consumers
傳統(tǒng)的消息傳遞模式有2種:隊列( queue) 和(publish-subscribe)
queue模式:多個consumer從服務(wù)器中讀取數(shù)據(jù),消息只會到達(dá)一個consumer 。publish-subscribe模式:消息會被廣播給所有的consumer 。Kafka基于這2種模式提供了一種consumer的抽象概念:consumer group 。
queue模式:所有的consumer都位于同一個consumer group 下 。publish-subscribe模式:所有的consumer都有著自己唯一的consumer group 。由2個broker組成的kafka集群,某個主題總共有4個partition(P0-P3),分別位于不同的broker上 。這個集群由2個Consumer Group消費, A有2個consumer instances ,B有4個 。
通常一個topic會有幾個consumer group,每個consumer group都是一個邏輯上的訂閱者( logical subscriber ) 。每個consumer group由多個consumer instance組成,從而達(dá)到可擴展和容災(zāi)的功能 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- 一般的玉手鐲賣多少錢:翡翠項鏈編織繩,好的項鏈要配獨一無二的繩子
- 一般的玉手鐲賣多少錢:翡翠項鏈鑒定機構(gòu),專業(yè)的就是讓人信賴
- 2022年天貓年貨節(jié)紅包入口在哪里 天貓年貨節(jié)紅包口令怎么設(shè)置的
- 2022大連泉水疫情源頭在哪 大連疫情活動軌跡是怎樣的
- 蘇打水是碳酸飲料嗎
- 文玩核桃怎么清洗
- 坐飛機的流程步驟有哪些?
- 原唱者王琪攜手許歌淳主演院線電影 可可托海的牧羊人原唱
- 鏡子是用什么材料做的
- 筋膜槍怎么使用
