Kafaka高可用集群環境搭建


zk集群環境搭建:https://www.cnblogs.com/toov5/p/9897868.html

三台主機每台的Java版本1.8

 

下面kafka集群的搭建:

  

 3台虛擬機均進行以下操作: 

// 解壓下載好的kafka壓縮包並重命名
cd /home

wget http://mirror.bit.edu.cn/apache/kafka/1.1.1/kafka_2.11-1.1.1.tgz

tar -xzvf kafka_2.11-1.1.1.tgz

mv kafka_2.11-1.1.1 kafka

// 修改配置文件

vi ./kafka/config/server.properties

修改如下:

   主機1的:(其他主機類似)

broker.id=0  #做標記的哦 其他的主機 1  2   與Zookeeper的data目錄下的myId一致!

listeners=PLAINTEXT://192.168.91.1:9092  #監聽的IP地址和端口號  這其實是個協議 要寫全!  監聽的本機的ip端口號哈     其他的主機ip地址更改

zookeeper.connect=192.168.91.1:2181,192.168.91.3:2181,192.168.91.4:2181    #zk的集群地址

 

然后修改系統環境中配置kafka的路徑

vi /etc/profile

// 在文件最下方添加kafka路徑

export KAFKA_HOME=/home/kafaka/kafka

// PATH的修改 多路徑PATH寫法為PATH=${ZOOKEEPER_HOME}/bin:${KAFKA_HOME}/bin:$PATH

 $PATH:${KAFKA_HOME}/bin

我的配置后:

export PATH=$PATH:${KAFKA_HOME}/bin:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH

 

// 使修改完的環境變量生效

source /etc/profile

 

此時 其他的兩台

scp -r ./kafaka/ root@192.168.91.3:/home

scp -r ./kafaka/ root@192.168.91.4:/home

 

然后分別修改server.properties

broker.id=X  #做標記的哦 其他的主機 X =1 和  2 

listeners=PLAINTEXT://192.168.91.X:9092  #監聽的IP地址和端口號  這其實是個協議 要寫全!  監聽的本機的ip端口號哈     其他的主機ip地址更改

,修改 /etc/profile  與第一台一致

 

此時的環境便搭建完畢!

先啟動Zookeeper集群,

逐個主機啟動: /home/zookeeper/zookeeper-3.4.6/bin/zkServer.sh start

查看啟動狀態: /home/zookeeper/zookeeper-3.4.6/bin/zkServer.sh status

再啟動kafka集群

2、在后台開啟3台虛擬機的kafka程序

/home/kafaka/kafka

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

 

啟動成功!

 

注意每個服務器要關閉防火牆!!

Kafka 沒有后台圖形化 不跟rabbitmq似的哈哈 

查看Zookeeper:

 

 

 每個broker啟動后 會去zk注冊信息,創建節點信息

 

 

下面創建個topic試試:

 

 

 

    參考官網:http://kafka.apachecn.org/quickstart.html 

 

     創建topic時候 需要指定分區partition  1 表示只在一個broker里面存放。(單節點存放)

                                                                   3 表示三個broker里面存放 。生產者投遞消息時候 均攤存放!

   

      只會在1個broker進行創建 

    

     在某一台服務器上創建 topic:   

  /home/kafaka/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.91.1:2181 --replication-factor 1 --partitions 1 --topic test   # 創建topic時候 會向zk進行連接 1表示在單機上存儲創建

  

  zk查看:

  

 broker就是我們指定的這台服務器上   partition是1 的話每次都投遞到 0這個broker上哦

 

 下面介紹下日志查看:

  kafka的日志存放是在配置中的 server.properties:

 

創新topic后發送消息

    往指定的broker發送消息

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

 

啟動consumer進行消費:連接的不是同一台主機,也可以進行消費

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

    

 

 同是一個集群。互通的 ,只是消息存放的地方有別而已。

 繼續創建topic,存放到三個broker:

   /home/kafaka/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.91.1:2181 --replication-factor 1 --partitions --topic  my_test_topic

 

 創建成功后查看日志目錄:

   broker0

 

  broker1

 

 broker2

 

 通過test-0  my_test_topic_x 可以看出編號是有自己的算法的

 

 得出的結論是 topic 在三台不同的節點進行存放的,生產者投遞消費進行均攤。

 


免責聲明!

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



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