1.kafka以topic來進行訊息管理,每個topic包含多個partition,每個partition對應乙個邏輯log,有多個segment組成。2.每個segment中儲存多條訊息(見下圖),訊息id由其邏輯位置決定,即從訊息id可直接定位到訊息的儲存位置,避免id到位置的額外對映。
3.每個part在記憶體中對應乙個index,記錄每個segment中的第一條訊息偏移。
4.發布者發到某個topic的訊息會被均勻的分布到多個partition上(或根據使用者指定的路由規則進行分布),broker收到發布訊息往對應partition的最後乙個segment上新增該訊息,當某個segment上的訊息條數達到配置值或訊息發布時間超過閾值時,segment上的訊息會被flush到磁碟,只有flush到磁碟上的訊息訂閱者才能訂閱到,segment達到一定的大小後將不會再往該segment寫資料,broker會建立新的segment。
1.jdk安裝伺服器ip2.zookeeper集群搭建,可以參考我的另外部落格:
注意:記得關閉防火牆
名稱192.168.8.63
broker0(zk + kafka)
192.168.8.153
broker1(zk + kafka)
192.168.8.110
broker2(zk + kafka)
3臺虛擬機器均進行以下操作:
命令1:
命令2:cd /usr/local
命令3:wget
命令4:tar -zxvf kafka_2.11-1.0.0.tgz
命令5:修改配置檔案mv kafka_2.12-0.11.0.0 kafka
broker0 需要修改的內容如下(192.168.8.63)vi ./kafka/config/server.properties
broker1 需要修改的內容如下(192.168.8.153)broker.id=0
listeners=plaintext:
zookeeper.connect=192.168.8.63:2181,192.168.8.153:2181,192.168.8.110:2181
broker2 需要修改的內容如下(192.168.8.110)broker.id=1
listeners=plaintext:
zookeeper.connect=192.168.8.63:2181,192.168.8.153:2181,192.168.8.110:2181
命令6:broker.id=2
listeners=plaintext:
zookeeper.connect=192.168.8.63:2181,192.168.8.153:2181,192.168.8.110:2181
// 在系統環境中配置kafka的路徑
// 在檔案最下方新增kafka路徑,多路徑path寫法為path=zoovi /etc/profile
keep
erho
me/b
in:/bin:
zookee
perh
ome
/bin
:/bin:$path
命令7:使修改完的環境變數生效export kafka_home=/usr/local/kafka
path=$/bin:$path
export path
命令1:開啟3臺虛擬機器的zookeeper程式source /etc/profile
命令2:開啟成功後檢視zookeeper集群的狀態/usr/local/zookeeper/bin/zkserver.sh start
出現mode:follower或是mode:leader則代表成功/usr/local/zookeeper/bin/zkserver.sh status
命令3:在後台開啟3臺虛擬機器的kafka程式(cd /usr/local/kafka)
命令4:在其中一台虛擬機器(192.168.8.110)建立topic./bin/kafka-server-start.sh -daemon config/server.properties
命令5:檢視建立的topic資訊/usr/local/kafka/bin/kafka-topics.sh –create –zookeeper 192.168.8.110:2181 –replication-factor 3 –partitions 3 –topic test
命令6:在其中一台虛擬機器(192.168.8.110)發訊息(生產)/usr/local/kafka/bin/kafka-topics.sh –describe –zookeeper 192.168.131.130:2181 –topic my-replicated-topic
centos7搭建kafka集群
安裝環境 集群規劃 伺服器lnh01 伺服器lnh02 伺服器lnh03 zookeeper zookeeper zookeeper kafka kafka kafka 安裝步驟 上傳壓縮包到伺服器 解壓至 opt soft下 命令 tar zxvf kafka 2.12 2.4.1.tgz c o...
centos7搭建kafka集群
7.關閉防火牆 systemctl stop firewalld.service 停止firewall systemctl disable firewalld.service 禁止firewall開機啟動 firewall cmd state 檢視預設防火牆狀態 關閉後顯示notrunning,開啟...
centos7 搭建kafka集群筆記
安裝kafka cd soft tar zxvf kafka 2.11 1.0.0.tgz c usr local mv usr local kafka 2.11 1.0.0 usr local kafka 2.11 環境變數 echo export kafka home usr local kaf...