Kafka 單機和偽分布式集群搭建


 

感覺自己越來越像個運維了,真的是所有的分布式的中間件基本都搭建了一遍   不得了了。

好 廢話少說 , 還是來走Kafka 吧 , 經歷了Rocket MQ , Kafka 的搭建真的是簡單的不知道多少倍 , RocketMQ  實在 是太麻煩了。

還是老方案 , 先登錄官網。

https://archive.apache.org/dist/kafka

可以根據官網的指示文檔  進行下載。

單機搭建

Step 1: 下載代碼

> wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz

> tar -xzf kafka_2.11-2.1.0.tgz
> cd kafka_2.11-2.1.0

Step 2: 啟動服務

1) 啟動Zookeeper

因為kafa 是強依賴於ZooKeeper 的, 所以首先得啟動Zookeeper

2)啟動kafka

> bin/kafka-server-start.sh config/server.properties

同時進入 Zookeeper  可以看到創建的節點

可以看到在啟動kafka  之后 , 就被建立了如下很多的節點。

Step 3: 創建Topic

創建一個主題是Test 的Topic , zookeeper 是本地的 備份因子是1 ,partation  設置為1 的Topic   (因為現在是單機版本的,不是集群)

> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

主題Test  創建成功。

同時可以看Zookeeper 的下面, 也有topic的成功的創建。

Step 4: 發送消息

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

發送了兩條消息到topic 是Test 的消息中。

 

Step 5: 開啟客戶端,接收消息。

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

 

得到兩條消息

Step 6: 查看節點信息

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test

同樣的  也可以通過Zookeeper  來進行查看

 

 集群搭建

Step 1 : 修改配置文件

首先 我們先拷貝一份配置文件 

> cp config /server .properties config /server-1 .properties
> cp config /server .properties config /server-2 .properties
更改如下內容  因為我的是偽集群  所以 都用 本地的地址來做host 那么
config/server-1.properties:
     broker.id=1
     listeners=PLAINTEXT://127.0.0.1:9093
     log.dirs=/tmp/kafka-logs-1
 
config/server-2.properties:
     broker.id=2
     listeners=PLAINTEXT://127.0.0.1:9094
     log.dirs=/tmp/kafka-logs-2

 broker.id 是唯一標識符,而且是每一個集群的唯一值。然后我們重寫Port 對每一個節點 , 以及給每一個節點創建log 目錄

Step 2 : 啟動 另外兩個服務

> bin /kafka-server-start .sh config /server-1 .properties &
...
> bin /kafka-server-start .sh config /server-2 .properties &
...

可以看到現在有3個Kafka。

Step 3 :Create Topic

> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

現在在Zookeeper 中可以看到 Topic my-replicated-topic

觀察狀態:

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

可以看到此時有三個節點  1 , 2  , 0

Leader  是1 ,因為分區只有一個 所以在0上面, Replicas:主從備份是 1,2,0,ISR(in-sync):現在存活的信息也是 1,2,0

 Step 4: 啟動消費端

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

 

 Step 5: 啟動客戶端

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

 

可以看見消息已經被消費了。

Step 7 : 現在我們試試下kafka 的容災 。

現在我們知道leader 是  1   那么我們現在kill 掉broker 1 節點  就知道下一個master 是哪個 了

> ps aux | grep server-1.properties
root      18735  1.5 14.5 1452824 292820 pts/0  Sl   Dec25   0:21...
> kill  18735

再來觀察現在的狀態。ISR  只剩下 2,0 了。  現在的Leader 是  2 。

 在消費端 可以看到如下信息

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM