kafka搭建、學習(三)

kafka集羣設置

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

如下是輸出的說明。第一行給出了全部分區的摘要,每一個附加行提供有關一個分區的信息。由於這個主題只有一個分區,只有一行。

  • 「leader」是負責給定分區的全部讀取和寫入的節點。每一個節點將成爲隨機選擇的分區部分的引導者。
  • 「replicas」是複製此分區的日誌的節點列表,不管它們是領先者仍是如今都是活着的。
  • 「isr」是一組「同步」副本。這是副本列表的子集,它目前是生存和追趕領導者的。

讓咱們發佈一些消息到咱們的新主題:

1

2

3

4

> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic

...

my test message 1

my test message 2

^C

如今咱們來看看這些消息:

1

2

3

4

> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

...

my test message 1

my test message 2

^C

如今咱們來測試容錯。經紀人1做爲領導者,因此讓咱們殺了它:

1

2

3

> ps aux | grep server-1.properties

7564 ttys002    0:15.91 /System/Library/Frameworks/JavaVM.framework/Versions/1.8/Home/bin/java...

> kill -9 7564

領導已經切換到其中一個從站,節點1再也不處於同步副本集中:

1

2

3

> bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

Topic:my-replicated-topic   PartitionCount:1    ReplicationFactor:3 Configs:

    Topic: my-replicated-topic  Partition: 0    Leader: 2   Replicas: 1,2,0 Isr: 2,0

不過消息仍然能夠用於消費,即便最初採起寫做的領導者也是如此:

1

2

3

4

> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

...

my test message 1

my test message 2

^C

 

至此,集羣已搭建完成

相關文章
相關標籤/搜索