Windows系統搭建Kafka集羣(3-broker)

kafka名詞介紹

  1. Message:消息,就是要發送的內容,一般包裝成一個消息對象。
  2. Topic:通俗來講的話就是放置“消息”的地方,也就是說消息投遞的一個容器。假如把消息看作是信封的話,那麼Topic就是一個郵箱。
  3. Partition && Log
    Partition分區,可以理解爲一個邏輯上的分區,像是我們電腦的磁盤 C,D,E盤一樣。
    Kafka爲每個分區維護着一份日誌Log文件。
  4. Producers(生產者)
    和其他消息隊列一樣,生產者通常都是消息的產生方。
    在Kafka中它決定消息發送到指定Topic的哪個分區上。
  5. Consumers(消費者)
    消費者就是消息的使用着,在消費者端也有幾個名詞需要區分一下。
    一般消息隊列有兩種模式的消費方式,分別是隊列模式訂閱模式
    隊列模式:一對一,就是一個消息只能被一個消費者消費,不能重複消費。一般情況隊列支持存在多個消費者,但是對於一個消息,只會有一個消費者可以消費它。
    訂閱模式:一對多,一個消息可能被多次消費,消息生產者將消息發佈到Topic中,只要是訂閱改Topic的消費者都可以消費。

Zookeeper集羣

搭建Kafka集羣需要先搭建Zookeeper集羣
參考 : Windows系統ZooKeeper集羣環境搭建

Kafka broker集羣

  1. 這裏我們以在同一臺服務器配置3套Kafka爲例,將Kafka分別安裝到3個目錄中。如:
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

  2. 編輯server.properties
    (1) 打開 kafka_A 服務器的server.properties文件,修改或增加如下配置:

    #唯一標識
    broker.id=0
    #kafka消息存放的路徑
    log.dirs=E:/kafka/kafka_A/kafka_2.13-2.5.0/kafka-logs
    host.name=192.168.2.76
    #監聽端口
    port=9097
    #對應3臺Zookeeper的IP地址和端口
    zookeeper.connect=192.168.2.76:2181,192.168.2.76:2182,192.168.2.76:2183
    listeners=PLAINTEXT://192.168.2.76:9097
    advertised.listeners=PLAINTEXT://192.168.2.76:9097
    

    (2) 打開 kafka_B 服務器的server.properties文件,修改或增加如下配置:

    #唯一標識
    broker.id=1
    #kafka消息存放的路徑
    log.dirs=E:/kafka/kafka_B/kafka_2.13-2.5.0/kafka-logs
    host.name=192.168.2.76
    #監聽端口
    port=9098
    #對應3臺Zookeeper的IP地址和端口
    zookeeper.connect=192.168.2.76:2181,192.168.2.76:2182,192.168.2.76:2183
    listeners=PLAINTEXT://192.168.2.76:9098
    advertised.listeners=PLAINTEXT://192.168.2.76:9098
    

    (3) 打開 kafka_C 服務器的server.properties文件,修改或增加如下配置:

    #唯一標識
    broker.id=2
    #kafka消息存放的路徑
    log.dirs=E:/kafka/kafka_C/kafka_2.13-2.5.0/kafka-logs
    host.name=192.168.2.76
    #監聽端口
    port=9099
    #對應3臺Zookeeper的IP地址和端口
    zookeeper.connect=192.168.2.76:2181,192.168.2.76:2182,192.168.2.76:2183
    listeners=PLAINTEXT://192.168.2.76:9099
    advertised.listeners=PLAINTEXT://192.168.2.76:9099
    
  3. 啓動服務
    定位到3個Kafka安裝目錄,以管理員身份運行CMD(用於啓動3個Kafka服務),然後分別在3個窗口中輸入.\bin\windows\kafka-server-start.bat .\config\server.properties命令來啓動這3個Kafka服務
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

  4. 驗證Kafka服務是否啓動,如果open則代表啓動成功
    執行下面命令:

    nc -vz 192.168.2.76 9097
    nc -vz 192.168.2.76 9098
    nc -vz 192.168.2.76 9099
    

    在這裏插入圖片描述
    nc安裝參考:Windows 下載安裝 netcat(nc)命令
    到此,Kafka的集羣環境就搭建好了。

Kafka命令配置

由於是集羣操作,以前的Kafka操作命令就有所改變,如:
創建主題:
單機模式:

.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic TestTopic1
或
kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic TestTopic1

集羣模式:

.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181,localhost:2182,localhost:2183 --replication-factor 1 --partitions 1 --topic TestTopic1
或
kafka-topics --create --zookeeper localhost:2181,localhost:2182,localhost:2183 --replication-factor 1 --partitions 1 --topic TestTopic1

查詢主題:
單機模式:

.\bin\windows\kafka-topics.bat --zookeeper localhost:2181 --list
或
kafka-topics --zookeeper localhost:2181 --list

集羣模式:

.\bin\windows\kafka-topics.bat --zookeeper localhost:2181,localhost:2182,localhost:2183 --list
或
kafka-topics --zookeeper localhost:2181,localhost:2182,localhost:2183 --list

其他命令(如設置用戶讀寫權限、分組權限等)操作也類似。

Kafka集羣測試

創建生產者命令:

.\bin\windows\kafka-console-producer.bat --broker-list 192.168.2.76:9097,192.168.2.76:9098,192.168.2.76:9099 --topic muTopic

創建消費者命令:

.\bin\windows\kafka-console-consumer.bat --bootstrap-server 192.168.2.76:9097,192.168.2.76:9098,192.168.2.76:9099 --topic muTopic

創建一個生產者兩個消費者,執行結果如下圖:
在這裏插入圖片描述

執行生產者和消費者命令報下面錯誤:
[2020-07-06 13:55:43,935] WARN [Producer clientId=console-producer] Connection to node -2 (localhost/127.0.0.1:9099) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

解決方案:
在C:\Windows\System32\drivers\etc目錄下,修改hosts文件,新增下面命令:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章