国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker 搭建 zookeeper、kafka 集群

這篇具有很好參考價(jià)值的文章主要介紹了Docker 搭建 zookeeper、kafka 集群。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、zookeeper 搭建

首先創(chuàng)建一個(gè)自定義網(wǎng)絡(luò),后續(xù)的所有容器都放入同一個(gè)內(nèi)網(wǎng)中,容器之間還可以通過容器名稱進(jìn)行直接訪問,在后續(xù)的配置中只需要寫明容器名稱即可,會(huì)自動(dòng)找到對(duì)應(yīng)的IP地址,防止重啟容器后IP地址發(fā)生變化時(shí),還要去修改配置文件的操作

docker network create kafka-net

1、zookeeper 單機(jī)搭建

創(chuàng)建目錄

mkdir -p /mnt/data/zookeeper/data # 數(shù)據(jù)掛載目錄
mkdir -p /mnt/data/zookeeper/conf # 配置掛載目錄
mkdir -p /mnt/data/zookeeper/logs # 日志掛載目錄

啟動(dòng)zookeeper

docker pull zookeeper:3.5.9

docker run -d --privileged=true --name zookeeper -p 2181:2181 --network kafka-net --network-alias zookeeper -v /mnt/data/zookeeper/data:/data -v /mnt/data/zookeeper/conf:/conf -v /mnt/data/zookeeper/logs:/datalog zookeeper:3.5.9

2888為組成zookeeper服務(wù)器之間的通信端口,3888為用來選舉leader的端口

進(jìn)入zookeeper容器

docker exec -it 容器id /bin/bash

找到配置文件位置

cat /conf/zoo.cfg

查看zookeeper狀態(tài)

zkServer.sh status

2、zookeeper 集群搭建

  • 注意,此處是在一臺(tái)服務(wù)器上搭建的偽集群,以下是docker compose的部署方案
  • 注意:安裝時(shí)遇到的問題,zookeeper 的版本必須是 3.5.0 以后,3.5.0 版本之前的配置與 3.5.0 版本之后是不同的,選錯(cuò)版本會(huì)導(dǎo)致 zookeeper 無法形成集群,最終導(dǎo)致使用 kafka 時(shí)報(bào)錯(cuò)?。。。。。?/li>
mkdir -p /mnt/data/zookeeper
cd /mnt/data/zookeeper
vim zookeeper-compose.yml

zookeeper-compose.yml 內(nèi)容如下

version: '3'

services:
  zoo1:
    image: zookeeper:3.5.9
    container_name: zoo1
    restart: always
    privileged: true
    ports:
      - 2182:2181
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo2:
    image: zookeeper:3.5.9
    container_name: zoo2
    restart: always
    privileged: true
    ports:
      - 2183:2181
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo3:
    image: zookeeper:3.5.9
    container_name: zoo3
    restart: always
    privileged: true
    ports:
      - 2184:2181
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

networks:
  default:
    external: true
    name: kafka-net
  • 注意:docker-compose會(huì)默認(rèn)將當(dāng)前的容器名稱作為network的alias
  • 執(zhí)行 docker-compose up,表示執(zhí)行當(dāng)前路徑下的yml文件。也可以指定執(zhí)行某一個(gè)yml文件
    • docker-compose -f zookeeper-compose.yml up -d
  • 通過 docker inspect 容器ID 查看容器的網(wǎng)絡(luò)配置

2、kafka 搭建

1、docer搭建kafka集群

docker pull wurstmeister/kafka
docker run -d  --privileged=true \
--name kafka0 -p 9092:9092 \
--network kafka-net \
--network-alias kafka0 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.231.10:9092 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
wurstmeister/kafka:latest

docker run -d  --privileged=true \
--name kafka1 -p 9093:9092 \
--network kafka-net \
--network-alias kafka1 \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.231.10:9093 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
wurstmeister/kafka:latest

docker run -d  --privileged=true \
--name kafka2 -p 9094:9092 \
--network kafka-net \
--network-alias kafka2 \
-e KAFKA_BROKER_ID=2 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.231.10:9094 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
wurstmeister/kafka:latest
  • KAFKA_LISTENERS 與 KAFKA_ADVERTISED_LISTENERS 是為了區(qū)分內(nèi)網(wǎng)和外網(wǎng)的
  • 如果只有內(nèi)網(wǎng)訪問,就可以只配置 KAFKA_LISTENERS
  • 如果涉及了外網(wǎng)訪問,比如要在云服務(wù)器上部署使用,就需要配置 KAFKA_ADVERTISED_LISTENERS 參數(shù)了,在本文開始時(shí)配置了一個(gè) kafka-net 的網(wǎng)絡(luò),也就是處于這個(gè)網(wǎng)絡(luò)下的訪問才屬于內(nèi)網(wǎng)訪問,而 kafka 部署完畢后,需要在其他服務(wù)器上訪問 kafka,這就需要通過外網(wǎng)訪問 kafka,所以必須配置 KAFKA_ADVERTISED_LISTENERS ,且值為 PLAINTEXT://<服務(wù)器ip>:<暴露端口> ,例如我的服務(wù)器外網(wǎng)地址為 192.168.231.10,端口為容器暴露的端口
  • KAFKA_BROKER_ID : broker的ID,這個(gè)ID是集群的標(biāo)識(shí),不能重復(fù)
  • KAFKA_ZOOKEEPER_CONNECT:zookeeper的連接地址
  • KAFKA_LISTENERS:標(biāo)識(shí)kafka服務(wù)運(yùn)行在容器內(nèi)的9092端口,因?yàn)闆]有指定host,所以是0.0.0.0標(biāo)識(shí)所有的網(wǎng)絡(luò)接口
  • KAFKA_ADVERTISED_LISTENERS:kafka發(fā)布到zookeeper供客戶端使用的服務(wù)地址

2、docker compose 搭建kafka集群

  • 注意,此處是在一臺(tái)服務(wù)器上搭建的偽集群,以下是docker compose的部署方案
  • 注意,需要等待 zookeeper 完全啟動(dòng)好后再啟動(dòng) kafka 集群
mkdir -p /mnt/data/kafka/node1/data # 數(shù)據(jù)掛載目錄
mkdir -p /mnt/data/kafka/node2/data # 數(shù)據(jù)掛載目錄
mkdir -p /mnt/data/kafka/node3/data # 數(shù)據(jù)掛載目錄

cd /mnt/data/kafka
vim kafka-compose.yml
version: '3'

services:
  broker1:
    image: wurstmeister/kafka:latest
    restart: always
    container_name: broker1
    privileged: true
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.231.10:9092    ## 宿主機(jī)IP
      KAFKA_ADVERTISED_PORT: 9092
      ## zookeeper 集群,因?yàn)槎荚谕粋€(gè)內(nèi)網(wǎng),所以可以通過容器名稱獲取到容器的ip
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181		
    volumes:
      - "/mnt/data/kafka/node1/data/:/kafka"

  broker2:
    image: wurstmeister/kafka:latest
    restart: always
    container_name: broker2
    privileged: true
    ports:
      - "9093:9092"
    environment:
      KAFKA_BROKER_ID: 2
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.231.10:9093    ## 宿主機(jī)IP
      KAFKA_ADVERTISED_PORT: 9093
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
    volumes:
      - "/mnt/data/kafka/node2/data/:/kafka"

  broker3:
    image: wurstmeister/kafka:latest
    restart: always
    container_name: broker3
    privileged: true
    ports:
      - "9094:9092"
    environment:
      KAFKA_BROKER_ID: 3
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.231.10:9094   ## 宿主機(jī)IP
      KAFKA_ADVERTISED_PORT: 9094
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
    volumes:
      - "/mnt/data/kafka/node3/data/:/kafka"

networks:
  default:
    external: true
    name: kafka-net
  • 執(zhí)行 docker-compose up,表示執(zhí)行當(dāng)前路徑下的yml文件。也可以指定執(zhí)行某一個(gè)yml文件
    • docker-compose -f kafka-compose.yml up -d
  • 通過 docker inspect 容器ID 查看容器的網(wǎng)絡(luò)配置

3、docker compose 整體啟動(dòng)

前面可以省略,直接創(chuàng)建一個(gè)docker-compose.yml 文件即可啟動(dòng) 3臺(tái) zookeeper 與 3臺(tái) kafka

version: '3'

services:
  zoo1:
    image: zookeeper:3.5.9
    container_name: zoo1
    restart: always
    ports:
      - 2182:2181
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo2:
    image: zookeeper:3.5.9
    container_name: zoo2
    restart: always
    ports:
      - 2183:2181
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo3:
    image: zookeeper:3.5.9
    container_name: zoo3
    restart: always
    ports:
      - 2184:2181
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  broker1:
    image: wurstmeister/kafka:latest
    restart: always
    container_name: broker1
    ports:
      - "9092:9092"
    # depends_on:通過 depends_on 告訴 docker-compose 當(dāng)前服務(wù)啟動(dòng)之前先要把 depends_on 指定的服務(wù)啟動(dòng)起來才行
    # 例如:kafka 依賴 zookeeper
    depends_on:
      - zoo1
      - zoo2
      - zoo3
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.231.10:9092    ## 宿主機(jī)IP
      KAFKA_ADVERTISED_HOST_NAME: broker1
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
    volumes:
      - "/mnt/data/kafka/node1/data/:/kafka"

  broker2:
    image: wurstmeister/kafka:latest
    restart: always
    container_name: broker2
    ports:
      - "9093:9092"
    depends_on:
      - zoo1
      - zoo2
      - zoo3
    environment:
      KAFKA_BROKER_ID: 2
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.231.10:9093    ## 宿主機(jī)IP
      KAFKA_ADVERTISED_HOST_NAME: broker2
      KAFKA_ADVERTISED_PORT: 9093
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
    volumes:
      - "/mnt/data/kafka/node2/data/:/kafka"

  broker3:
    image: wurstmeister/kafka:latest
    restart: always
    container_name: broker3
    ports:
      - "9094:9092"
    depends_on:
      - zoo1
      - zoo2
      - zoo3
    environment:
      KAFKA_BROKER_ID: 3
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.231.10:9094   ## 宿主機(jī)IP
      KAFKA_ADVERTISED_HOST_NAME: broker3
      KAFKA_ADVERTISED_PORT: 9094
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
    volumes:
      - "/mnt/data/kafka/node3/data/:/kafka"

networks:
  default:
    external: true
    name: kafka-net

4、可視化工具 offsetexplorer

docker 部署zookeeper,運(yùn)維,docker,kafka,zookeeper,java
docker 部署zookeeper,運(yùn)維,docker,kafka,zookeeper,java文章來源地址http://www.zghlxwxcb.cn/news/detail-695145.html

5、可視化工具 kafka-map

docker run -d \
-p 8080:8080 \
-v /opt/kafka-map/data:/usr/local/kafka-map/data \
-e DEFAULT_USERNAME=admin \
-e DEFAULT_PASSWORD=admin \
--name kafka-map \
--restart always dushixiang/kafka-map:latest
容器啟動(dòng)后,訪問:ip:8080 訪問

kafka-map官網(wǎng):https://gitee.com/dushixiang/kafka-map

到了這里,關(guān)于Docker 搭建 zookeeper、kafka 集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Zookeeper之基于Docker搭建集群

    Zookeeper之基于Docker搭建集群

    搭建ZK分布式模式,由2n+1臺(tái)服務(wù)器組成。 搭建集群有兩種方式: 單機(jī)多服務(wù): 不同服務(wù)使用不同的配置文件,配置不同的端口號(hào)等。 使用同一個(gè)配置不同的server.id,即IP相同,但是端口不同。 多機(jī)多服務(wù):各自配置zoo.cfg文件,互相加入各自的服務(wù)器列表。 Loader 主節(jié)點(diǎn) :

    2024年02月04日
    瀏覽(19)
  • 如何使用Docker搭建ZooKeepe集群

    1、拉取鏡像 2、創(chuàng)建網(wǎng)絡(luò) Docker創(chuàng)建容器時(shí)默認(rèn)采用bridge網(wǎng)絡(luò),自行分配ip,不允許自己指定。在實(shí)際部署中,需要指定容器ip,不允許其自行分配ip,尤其在搭建集群時(shí)??梢酝ㄟ^docker network create指令創(chuàng)建自己的bridge網(wǎng)絡(luò) ,在創(chuàng)建容器時(shí)指定網(wǎng)絡(luò)和ip即可。 3、配置文件 a、創(chuàng)

    2024年02月11日
    瀏覽(25)
  • 【Docker安裝部署Kafka+Zookeeper詳細(xì)教程】

    【Docker安裝部署Kafka+Zookeeper詳細(xì)教程】

    Docker拉取zookeeper的鏡像 Docker拉取kafka的鏡像 這個(gè)地方?jīng)]有使用掛載目錄的方式,想要使用掛載目錄的方式可以看我前面的文章呦!?。?【Linux操作系統(tǒng)使用Docker部署Zookeeper】 【Docker安裝部署Zookeeper集群】 參數(shù)說明 查看zookeeper的ip地址 后面部署kafka會(huì)使用到zookeeper的ip地址 進(jìn)

    2023年04月19日
    瀏覽(52)
  • zookeeper的介紹和用docker搭建zookeeper集群,以及Go語言使用zookeeper

    zookeeper的介紹和用docker搭建zookeeper集群,以及Go語言使用zookeeper

    typora-copy-images-to: imgs 2.1、Docker官方鏡像 Docker Zookeeper 2.2、Docker安裝zookeeper 下載zookeeper最新版的鏡像 docker inspect zookeeper用來查看zookeeper的詳細(xì)信息 在/root/docker/目錄下新建一個(gè)zookeeper掛載點(diǎn)文件夾 掛載本地文件夾并啟動(dòng)服務(wù) 參數(shù)解釋 2.3、進(jìn)入zookeeper容器客戶端 方式一 運(yùn)行上

    2024年02月10日
    瀏覽(18)
  • 【Kafka】docker部署Kafka集群

    【Kafka】docker部署Kafka集群

    目錄 Kafka概述 Kafka集群docker部署流程 簡(jiǎn)述 環(huán)境準(zhǔn)備 部署流程 ?參考文獻(xiàn) ? ? ? ? ? 以下概述Kafka內(nèi)的幾個(gè)核心概念,可參考官方文檔,有興趣可讀:kafka.apache.org Topic與日志 ????????Topic 就是數(shù)據(jù)主題,是數(shù)據(jù)記錄發(fā)布的地方,可以用來區(qū)分業(yè)務(wù)系統(tǒng)。Kafka 中的 Topics 總是

    2024年02月12日
    瀏覽(21)
  • docker快速搭建kafka集群

    docker快速搭建kafka集群

    一、準(zhǔn)備工作 1、拉取kafka鏡像 2、拉取kafka可視化管理工具鏡像 3、安裝docker-compose工具 4、創(chuàng)建相關(guān)文件夾 5、創(chuàng)建網(wǎng)絡(luò),用于kafka和zookeeper共享一個(gè)網(wǎng)絡(luò)段 6、構(gòu)建zookeeper集群 kafka集群需要用到zookeeper集群,因此需要先構(gòu)建zookeeper集群,請(qǐng)查看文章 docker快速搭建zookeeper集群

    2024年02月13日
    瀏覽(19)
  • docker搭建kafka集群并測(cè)試完整版

    docker搭建kafka集群并測(cè)試完整版

    1.安裝docker desktop. 打開docker官網(wǎng),下載docker desktop,這里直接給出網(wǎng)址:Install Docker Desktop on Windows | Docker Docs 如下圖,點(diǎn)擊下載即可。 下載好后 點(diǎn)擊運(yùn)行exe文件,我們采用交互式安裝程序。 安裝完成后直接重啟即可,默認(rèn)安裝在c盤,如果不想安裝在c盤就采用命令行的方式安裝

    2024年02月02日
    瀏覽(24)
  • kafka偽集群部署,使用docker環(huán)境拷貝模式
  • docker-compose部署kafka單機(jī)和集群

    docker-compose部署kafka單機(jī)和集群

    使用 docker-compose 部署 Kafka:3.5。 從 3.3 版本后,Kafka 引入了 KRaft 來替代 ZooKeeper,所以我們不必再部署 zk 了。 記得修改 KAFKA_CFG_ADVERTISED_LISTENERS 的 ip 為自己的 記得修改 KAFKA_CFG_ADVERTISED_LISTENERS 的 ip 地址為自己的 我們之后測(cè)試肯定用集群部署,就算是測(cè)試,也不用單機(jī)模式,

    2024年02月01日
    瀏覽(29)
  • 云計(jì)算集群搭建記錄[Hadoop|Zookeeper|Hbase|Spark | Docker |OpenStack]更新索引 |動(dòng)態(tài)更新

    云計(jì)算集群搭建記錄[Hadoop|Zookeeper|Hbase|Spark | Docker |OpenStack]更新索引 |動(dòng)態(tài)更新

    為了能夠更好的查看所更新的文章,講該博文設(shè)為索引 為了解決在編輯文件等操作的過程中的權(quán)限問題,博主一律 默認(rèn)采用 root 賬戶登錄 對(duì)于初次安裝的用戶可以采用如下命令行: 另外推薦一款終端工具:Tabby,既能夠連接自己的服務(wù)器,也能夠連接自己本地的虛擬機(jī),還

    2023年04月13日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包