日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

RocketMQ-docker镜像的制作与部署

發(fā)布時(shí)間:2024/9/30 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RocketMQ-docker镜像的制作与部署 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ????????在制作 RocketMQ 的 docker 鏡像之前,我們先了解一下如何在 window 環(huán)境下基于官網(wǎng)編譯好的 Binary 文件去啟動(dòng) RocketMQ

一、RocketMQ的下載與安裝:

1、下載并解壓:

https://rocketmq.apache.org/release_notes/release-notes-4.9.0/

2、配置環(huán)境變量:

注意:RocketMQ 存放路徑最好不要出現(xiàn)空格,否則配置容易出錯(cuò)

(1) 新建系統(tǒng)變量:ROCKETMQ_HOME

?

?(2)在 PATH 添加以下配置:

?3、啟動(dòng) RocketMQ:

(1)啟動(dòng) NameServer:

在命令控制臺(tái)中輸入:start mqnamesrv.cmd

執(zhí)行完之后,出現(xiàn)以下新窗口,注意下面的窗口不要關(guān)閉

?(2)啟動(dòng) Broker:

同樣在命令控制臺(tái)中輸入:start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true

?執(zhí)行完之后,出現(xiàn)以下新窗口,注意下面的窗口不要關(guān)閉

?至此,RocketMQ 已經(jīng)成功啟動(dòng)了,訪問(wèn)地址與端口為:127.0.0.1:9876

4、安裝 RocketMQ 控制臺(tái):

(1)下載控制臺(tái)源代碼:

git clone git://github.com/apache/rocketmq-externals.git

(2)下載完成之后,進(jìn)入 “rocketmq-externals\rocketmq-console\src\main\resources” 目錄下,打開(kāi) application.properties 配置以下信息:

?(3)編譯生成:

????????進(jìn)入 "\rocketmq-externals\rocketmq-console" 文件夾,執(zhí)行 "mvn clean package -Dmaven.test.skip=true" 命令,編譯生成運(yùn)行所需 jar 包

(4)運(yùn)行 jar 包:

? ? ? ? 編譯成功后,進(jìn)入 target 文件夾,執(zhí)行 “java -jar rocketmq-console-ng-1.0.0.jar” 命令,啟動(dòng) RocketMQ 的控制臺(tái)

(5)訪問(wèn)地址:http://localhost:8080

?

二、RocketMQ-docker鏡像的制作與部署:

? ? ? ? 前面介紹如何在 window 環(huán)境下基于官網(wǎng)編譯好的 Binary 文件去啟動(dòng) RocketMQ,核心操作主要有三個(gè):啟動(dòng)?NameServer、Broker、console,接下來(lái)我們就介紹如何制作 RocketMQ 的docker 鏡像,方便在不同環(huán)境快速啟動(dòng)?RocketMQ,核心操作也是分為三個(gè):NameServer 鏡像的制作與部署、Broker 鏡像的制作與部署、console 鏡像的制作與部署。

1、docker鏡像構(gòu)建的準(zhǔn)備工作:

(1)構(gòu)建項(xiàng)目的目錄結(jié)構(gòu):

? ? ? ? 我們直接使用文章第一部分已經(jīng)編譯好的 Binary 文件以及 rocketmq-console-ng-1.0.0.jar?來(lái)制作的鏡像,先將 Binary 下的 bin、conf、lib 三個(gè)目錄以及?rocketmq-console-ng-1.0.0.jar,放在同一個(gè)路徑下,最終目錄如下圖所示:

?(2)namesrv-Dockerfile 文件:

Dockerfile 是一個(gè)用來(lái)構(gòu)建鏡像的文本文件,文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說(shuō)明,namesrv-Dockerfile 文件內(nèi)容如下:

FROM java:openjdk-8u111-alpine MAINTAINER zhangweipeng# set environment ENV JVM_XMS="1g" \JVM_XMX="1g" \JVM_XMN="512m" \JVM_MS="128m" \JVM_MMS="320m"ENV ROCKETMQ_VERSION 4.9.0 ENV ROCKETMQ_HOME /opt/rocketmq-${ROCKETMQ_VERSION} WORKDIR ${ROCKETMQ_HOME}# 設(shè)置時(shí)間,東八區(qū) RUN set -x \&& rm -f /etc/localtime \&& ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezoneADD bin bin ADD conf conf ADD lib libRUN mkdir -p \/opt/logs \/opt/storeVOLUME /opt/logs \/opt/storeEXPOSE 9876 RUN chmod +x bin/mqnamesrv CMD cd ${ROCKETMQ_HOME}/bin && export JAVA_OPT=" -Duser.home=/opt" && sh mqnamesrv

(3)broker-Dockerfile 文件:

FROM java:openjdk-8u111-alpine MAINTAINER zhangweipeng# set environment ENV JVM_XMS="1g" \JVM_XMX="1g" \JVM_XMN="512m" \JVM_MS="128m" \JVM_MMS="320m"ENV ROCKETMQ_VERSION 4.9.0 ENV ROCKETMQ_HOME /opt/rocketmq-${ROCKETMQ_VERSION} WORKDIR ${ROCKETMQ_HOME}# 設(shè)置時(shí)間,東八區(qū) RUN set -x \&& rm -f /etc/localtime \&& ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezoneADD bin bin ADD conf conf ADD lib libRUN mkdir -p \/opt/logs \/opt/storeVOLUME /opt/logs \/opt/store# Rocketmq broker ip ARG BROKER_IP1 ARG BROKER_IP2 ENV BROKER_IP1 ${BROKER_IP1} ENV BROKER_IP2 ${BROKER_IP2} RUN if [ -n "$BROKER_IP1" ] ; then echo -e "\nbrokerIP1 = $BROKER_IP1\nbrokerIP2 = $BROKER_IP2" >> ./conf/broker.conf ; fiEXPOSE 10909 10911 RUN chmod +x bin/mqbroker CMD cd ${ROCKETMQ_HOME}/bin && export JAVA_OPT="${JAVA_OPT} -Duser.home=/opt" && sh mqbroker -n ${NAMESRV_ADDR} -c ../conf/broker.conf

(4)console-Dockerfile 文件:

FROM java:openjdk-8u111-alpine MAINTAINER zhangweipeng# Rocketmq home ENV ROCKETMQ_CONSOLE_HOME /opt/rocketmq-console WORKDIR ${ROCKETMQ_CONSOLE_HOME}# 設(shè)置時(shí)間,東八區(qū) RUN set -x \&& rm -f /etc/localtime \&& ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezoneADD rocketmq-console-ng-1.0.0.jar .EXPOSE 8080 CMD java -jar rocketmq-console-ng-1.0.0.jar -DnamesrvAddr=${NAMESRV_ADDR}

2、鏡像的構(gòu)建與運(yùn)行:

? ? ? ? dokcer 鏡像的構(gòu)建與運(yùn)行腳本已經(jīng)編寫(xiě)在?startup.cmd 和 startup.sh 文件中,只需針對(duì)自己服務(wù)器的情況進(jìn)行以下的修改便可以執(zhí)行了。

  • ① 修改 startup.cmd 和 startup.sh 腳本中的 rmqnamesrv、NAMESRV_ADDR 的值為 nameserver 的IP地址
  • ② 如果是本地 window 環(huán)境,則修改 startup.cmd 腳本中 BROKER_IP1、BROKER_IP2 的值為自身服務(wù)器的IP地址
  • ③ 執(zhí)行 startup.cmd 或者 startup.sh 腳本便可以生成 rmqnamesrv、broker、console 鏡像,并自動(dòng)運(yùn)行相應(yīng)的容器

(1)startup.sh 腳本如下:

#!/bin/sh# 創(chuàng)建 rocketmq-nameserver 鏡像 docker build -f namesrv-Dockerfile -t rocketmq-namesrv:4.9.0 . # 創(chuàng)建 rocketmq-broker 鏡像 docker build -f broker-Dockerfile -t rocketmq-broker:4.9.0 . # 創(chuàng)建 rocketmq-console 鏡像 docker build -f console-Dockerfile -t rocketmq-console:1.0.0 .# 運(yùn)行 rocketmq-nameserver 容器 docker run -d -p 9876:9876 --name rmqnamesrv --restart=always rocketmq-namesrv:4.9.0# 運(yùn)行 rocketmq-broker 容器 docker run -d -p 10911:10911 -p 10909:10909 --name rmqbroker --restart=always -m 2048m \-e "NAMESRV_ADDR=172.28.190.101:9876" \-e "JAVA_OPT=-XX:MetaspaceSize=256m" \-v /opt/rocketmq/logs:/opt/logs \-v /opt/rocketmq/store:/opt/store \--link rmqnamesrv:172.28.190.101 rocketmq-broker:4.9.0# 運(yùn)行 rocketmq-console 容器 docker run -d -p 8888:8080 --name rmqconsole --restart=always \-m 512m \-e NAMESRV_ADDR='172.28.190.101:9876' \--link rmqnamesrv:172.28.190.101 rocketmq-console:1.0.0

(2)startup.cmd 腳本如下:

docker build -f namesrv-Dockerfile -t rocketmq-namesrv:4.9.0 .docker build -f broker-Dockerfile --build-arg "BROKER_IP1=172.28.190.101" --build-arg "BROKER_IP2=172.28.190.101" -t rocketmq-broker:4.9.0 .docker build -f console-Dockerfile -t rocketmq-console:1.0.0 .docker run -d -p 9876:9876 --name rmqnamesrv rocketmq-namesrv:4.9.0docker run -d -p 10911:10911 -p 10909:10909 --name rmqbroker --link rmqnamesrv:172.28.190.101 -e "NAMESRV_ADDR=172.28.190.101:9876" -e "JAVA_OPT=-XX:MetaspaceSize=256m" rocketmq-broker:4.9.0docker run -d -p 8888:8080 --name rmqconsole --link rmqnamesrv:172.28.190.101 -e "NAMESRV_ADDR=172.28.190.101:9876" rocketmq-console:1.0.0

?

總結(jié)

以上是生活随笔為你收集整理的RocketMQ-docker镜像的制作与部署的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。