1.複製server.propertiesjava
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties
bootstrap
如今編輯這些新文件並修改如下3個屬性:測試
config/server-1.properties:
broker.id=1
listeners=PLAINTEXT://:9093
log.dir=/tmp/kafka-logs-1
config/server-2.properties:
broker.id=2
listeners=PLAINTEXT://:9094
log.dir=/tmp/kafka-logs-2spa
該broker.id屬性是集羣中每一個節點的惟一和永久名稱。咱們必須覆蓋端口和日誌目錄,只由於咱們在同一臺機器上運行這些目錄,咱們但願讓經紀人不要在同一個端口上註冊或覆蓋對方的數據。日誌
咱們已經有Zookeeper,咱們的單節點啓動,因此咱們只須要啓動兩個新節點:code
bin/kafka-server-start.sh config/server-1.properties &
bin/kafka-server-start.sh config/server-2.properties &server
如今建立一個複製因子爲三的新主題:ci
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topickafka
查看詳情:同步
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
如下是輸出的說明。第一行給出了全部分區的摘要,每一個附加行提供有關一個分區的信息。由於這個主題只有一個分區,只有一行。
讓咱們發佈一些消息到咱們的新主題:
1 2 3 4 五 |
|
如今咱們來看看這些消息:
1 2 3 4 五 |
|
如今咱們來測試容錯。經紀人1做爲領導者,因此讓咱們殺了它:
1 2 3 |
|
領導已經切換到其中一個從站,節點1再也不處於同步副本集中:
1 2 3 |
|
不過消息仍然能夠用於消費,即便最初採起寫做的領導者也是如此:
1 2 3 4 五 |
|
至此,集羣已搭建完成