docker 安装 rocketMq 就是这么简单?

RocketMq快速入门(详解) rocketmq安装以及代码实例全套 阅读详情

废话不多说,上才艺

1.先把源码拉下来并执行构建脚本

# 创建存储目录
mkdir -p /home/service
# 拉取源码
git clone https://github.com/apache/rocketmq-docker.git
# 进入脚本目录
cd /home/service/rocketmq-docker/image-build
# 执行构建
sh build-image.sh 4.7.1 alpine

注意:发现在构建的时候一直开在下载alpine,下载的版本是v3.9,如果发现自己卡在那,请参考第二步,换成你自己的版本

2. 替换下载源为阿里的站点,编辑 Dockerfile-alpine 文件(不替换忒慢。。。)

# 找到 RUN apk add --no-cache bash gettext nmap-ncat openssl busybox-extras,在上面添加以下2行替换命令
RUN echo -e https://mirrors.aliyun.com/alpine/v3.9/main/ > /etc/apk/repositories
RUN echo -e https://mirrors.aliyun.com/alpine/v3.9/community/ >> /etc/apk/repositories

3. 继续执行构建

# 4.7.1 是我当时的最新版本了,可以根据上面那个 RocketMQ Version 查看新的版本
sh build-image.sh 4.7.1 alpine

注意:然后我又发现卡在下载rocketmq-all-x-bin-release.zip

4.没错。。继续换站点

最终Dockerfile-alpine文件内容,仅供参考

FROM openjdk:8-alpine

RUN echo -e https://mirrors.aliyun.com/alpine/v3.9/main/ > /etc/apk/repositories
RUN echo -e https://mirrors.aliyun.com/alpine/v3.9/community/ >> /etc/apk/repositories
RUN apk add --no-cache bash gettext nmap-ncat openssl busybox-extras

ARG user=rocketmq
ARG group=rocketmq
ARG uid=3000
ARG gid=3000

# RocketMQ is run with user `rocketmq`, uid = 3000
# If you bind mount a volume from the host or a data container,
# ensure you use the same uid
RUN addgroup --gid ${gid} ${group} \
    && adduser --uid ${uid} -G ${group} ${user} -s /bin/bash -D

ARG version

# Rocketmq version
ENV ROCKETMQ_VERSION ${version}

# Rocketmq home
ENV ROCKETMQ_HOME  /home/rocketmq/rocketmq-${ROCKETMQ_VERSION}

WORKDIR  ${ROCKETMQ_HOME}

# Install
RUN set -eux; \
    apk add --virtual .build-deps curl gnupg unzip; \
    curl -L https://mirrors.bfsu.edu.cn/apache/rocketmq/${ROCKETMQ_VERSION}/rocketmq-all-${ROCKETMQ_VERSION}-bin-release.zip -o rocketmq.zip; \
    curl -L https://archive.apache.org/dist/rocketmq/${ROCKETMQ_VERSION}/rocketmq-all-${ROCKETMQ_VERSION}-bin-release.zip.asc -o rocketmq.zip.asc; \
    #https://www.apache.org/dist/rocketmq/KEYS
        curl -L https://www.apache.org/dist/rocketmq/KEYS -o KEYS; \
        \
        gpg --import KEYS; \
    gpg --batch --verify rocketmq.zip.asc rocketmq.zip; \
    unzip rocketmq.zip; \
        mv rocketmq-all*/* . ; \
        rmdir rocketmq-all* ; \
        rm rocketmq.zip rocketmq.zip.asc KEYS; \
        apk del .build-deps ; \
    rm -rf /var/cache/apk/* ; \
    rm -rf /tmp/*

# Copy customized scripts
COPY scripts/ ${ROCKETMQ_HOME}/bin/

RUN chown -R ${uid}:${gid} ${ROCKETMQ_HOME}

# Expose namesrv port
EXPOSE 9876

# Override customized scripts for namesrv
RUN mv ${ROCKETMQ_HOME}/bin/runserver-customize.sh ${ROCKETMQ_HOME}/bin/runserver.sh \
 && chmod a+x ${ROCKETMQ_HOME}/bin/runserver.sh \
 && chmod a+x ${ROCKETMQ_HOME}/bin/mqnamesrv

# Expose broker ports
EXPOSE 10909 10911 10912

# Override customized scripts for broker
RUN mv ${ROCKETMQ_HOME}/bin/runbroker-customize.sh ${ROCKETMQ_HOME}/bin/runbroker.sh \
 && chmod a+x ${ROCKETMQ_HOME}/bin/runbroker.sh \
 && chmod a+x ${ROCKETMQ_HOME}/bin/mqbroker

# Export Java options
RUN export JAVA_OPT=" -Duser.home=/opt"

# Add ${JAVA_HOME}/lib/ext as java.ext.dirs
RUN sed -i 's/${JAVA_HOME}\/jre\/lib\/ext/${JAVA_HOME}\/jre\/lib\/ext:${JAVA_HOME}\/lib\/ext/' ${ROCKETMQ_HOME}/bin/tools.sh

USER ${user}

WORKDIR ${ROCKETMQ_HOME}/bin

5. 再次构建

sh build-image.sh 4.7.1 alpine

6. 成功构建,就能看到镜像了

docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
apacherocketmq/rocketmq   4.7.1-alpine        acfbfb0c8d66        3 minutes ago       145MB

7. 运行镜像

cd /home/service/rocketmq-docker/
sh stage.sh 4.7.1

# 然后就会生成运行文件与目录
# Stage version = 4.7.1
# mkdir /home/service/rocketmq-docker/stages/4.7.1
# staged templates into folder /home/service/rocketmq-docker/stages/4.7.1

cd /home/service/rocketmq-docker/stages/4.7.1/templates

# 启动
./play-docker.sh alpine

启动成功:

8. 使用指定的broker.conf启动(这步可以跳过)

docker rm -f rmqbroker

mkdir -p /home/config/docker/rocketmq/broker/logs
mkdir -p /home/config/docker/rocketmq/broker/store
mkdir -p /home/config/docker/rocketmq/broker/conf

touch /home/config/docker/rocketmq/broker/conf/broker.conf

# 所属集群名字(同一主从下:Master和slave名称要一致)
brokerClusterName = DefaultCluster
# broker名字,注意此处不同的配置文件填写的不一样  例如:在a.properties 文件中写 broker-a  在b.properties 文件中写 broker-b
brokerName = broker-a
# 0 表示 Master,>0 表示 Slave
brokerId = 0
# 检测可用的磁盘空间大小,当磁盘被占用超过90%,消息写入会直接报错                    
diskMaxUsedSpaceRatio=90
# commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
# ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
deleteWhen = 04
fileReservedTime = 48
# Broker 的角色: ASYNC_MASTER 异步复制Master ; SYNC_MASTER 同步双写Master; SLAVE
brokerRole = ASYNC_MASTER
# 刷盘方式 ASYNC_FLUSH 异步刷盘; SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH
#set `brokerIP1` if you want to set physical IP as broker IP.
brokerIP1=192.168.0.30 #change you own physical IP Address
#是否开启自动注册topic
autoCreateTopicEnable=false
#是否开启自动注册group
autoCreateSubscriptionGroup=true
#是否开启过滤查询
enablePropertyFilter=true


#再次执行

docker run --restart=always -d -p 10911-10912:10911-10912 -p 10909:10909 --name rmqbroker \
-v /home/config/docker/rocketmq/broker/logs:/root/logs \
-v /home/config/docker/rocketmq/broker/store:/root/store \
-v /home/config/docker/rocketmq/broker/conf/broker.conf:/home/rocketmq/rocketmq-4.7.1/conf/broker.conf \
--link rmqnamesrv:namesrv \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "JAVA_OPT=${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m" \
apacherocketmq/rocketmq:4.7.1-alpine sh mqbroker -c ../conf/broker.conf

9.测试是否可用

#设置 rmqnamesrv 和 rmqbroker 自动启动
docker update --restart=always rmqnamesrv
docker update --restart=always rmqbroker

# 关闭防火墙,不然会链接不上
systemctl stop firewalld

# 关闭防火墙后,记得重启一下docker
systemctl restart docker.service

# 执行开机禁用防火墙自启命令(可不使用,但机子要是重启的话,还需要执行上面的关闭stop) 
systemctl disable firewalld.service

docker exec -it rmqbroker ./mqadmin clusterList -n 192.168.0.30:9876

#Cluster Name     #Broker Name            #BID  #Addr                  #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE

10. 搭建图形化界面控制台

docker run --restart=always -d --name rmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.0.30:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8088:8080 styletang/rocketmq-console-ng

打开链接:http://192.168.0.30:8088/#/    就会出现控制台相关信息

你学废了吗?

 

rocketmq-4.9.3的部署使用 rocketmq 详细介绍可参考官方文档 或 往期rocketmq博文,本篇博文简单介绍了一下目前最新稳定版本的部署使用。 单Master模式 安装jdk 1.8+ oracle 官网 国内下载 #下载jdk wget https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_openj9_8u292b10_openj9-0.26.0.tar.gz #解压jdk mkdir -p /us 阅读详情

相关推荐

Docker安装RocketMQ

Docker安装RocketMQ nameserve,broker安装。Linux安装rocetmq,安装rocketmq可视化界面rocketmq-console

qq_43600166的博客 1万+

Docker安装RocketMQ详细教程

Docker安装RocketMQ详细教程

咸鱼想睡觉 2万+

Docker 安装 RocketMQ及简单使用

Docker 安装 RocketMQ及简单使用 检索镜像 ocker search rocketmq 显示以下信息: NAME DESCRIPTION STARS OFFICIAL AUTOMATED rocketmqinc/rocketmq Image repository for Apache

gmHappy 2711

Docker apk--No such file or directory问题解决

先描述下问题: docker build -f build-Dockerfile -t ai2:v1 . 执行dockerfile时,会报找不到文件或者文件夹的错误,在网上看了很多资源,总结下来大概是CDN资源挂掉的问题 解决办法: RUN echo -e "http://nl.alpinelinux.org/alpine/v3.5/main\nhttp://nl.alpinelinux.org/alpine/v3.5/community" > /etc/apk/repositorie.

Attitude_do_it的博客 1909

J204B接口数据链路的建立

介绍J204B数据链路层的建立方式

QUACK_G的博客 6546

grafana使用方法

1、点击仪表盘2、新建仪表盘3、选择数据源4、选择查询的条件5、美化。

2403_87359664的博客 323

docker安装rocketMQ

docker pull java:8 或者 docker pull openjdk:8。

xingchenyv的博客 1102

八股文(Unity篇)

在Unity中,协程是通过迭代器实现的,即将协程函数的返回值类型定义为IEnumerator,然后使用yield语句暂停协程的执行,并在需要恢复执行时通过MoveNext()方法继续执行。Unity中的协程是一种能够在主函数中暂停和恢复执行的功能,它使用了C#的迭代器。Resources方式:Resources方式:使用Resources.Load方法加载Resources文件夹下的资源,这种方式的好处是简单易用,无需手动打包资源,但是会导致应用包变得较大,加载速度较慢,不适合较大的资源文件。

m0_50816320的博客 1万+

Rocketmq详解02-mq安装

1.创建namesrv服务 拉取镜像 docker pull rocketmqinc/rocketmq:4.4.0 创建namesrv数据存储路径 mkdir -p /docker/rocketmq/data/namesrv/logs /docker/rocketmq/data/namesrv/store 构建namesrv容器 docker run -d \ --restart=always \ --name rmqnamesrv \ -p 9876:9876 \ -v /docker/rock

a2868221132的博客 2399

告别ArcGIS小红叉:从‘无法验证登录信息’到成功连接在线资源的完整排错记录

本文详细记录了从Windows便签的网络错误到ArcGIS连接问题的完整排错过程。通过分析代理服务器、DNS配置和系统网络设置,解决了ArcGIS无法验证登录信息的问题,提供了实用的网络优化方案和技术排错思路。

weixin_26800111的博客 389

【AN7581】AN7581 SDK编译环境搭建操作说明

安装编译需要的工具包。

wgl307293845的博客 338

docker安装RocketMQ

docker和rocketmq介绍以及安装步骤

Ciao's blog 1838

使用 MATLAB/Simulink + Simscape Electrical,构建一个含储能的微电网系统,实现储能系统与并网逆变器的协同控制

摘要:本文基于Simulink平台,详细介绍了微电网中储能系统与并网逆变器的协同控制建模与仿真方法。主要内容包括:1)构建包含光伏、风电、锂电池和双向DC-DC变换器的微电网系统;2)设计并网逆变器的PQ/Vf双模式控制策略;3)实现储能系统与逆变器的协同控制逻辑,包括SOC保护和功率分配;4)通过多种工况仿真验证系统性能。结果表明,该系统能有效维持微电网稳定运行,支持并网/离网无缝切换。文章还探讨了优化方向和应用扩展,为新能源微电网控制提供了实用参考。

xiaoheshang_123的博客 100

docker安装rocketmq_docker 安装 rocketMq 就是这么简单?

废话不多说,上才艺rocketMq Github : https://github.com/apache/rocketmq-dockerrocketMq Version:https://archive.apache.org/dist/rocketmq/springboot 集成 RocketMq:https://blog.youkuaiyun.com/itjavaee/article/details/1083...

weixin_39993322的博客 423

【Word提效 No.010】使用AI一键复制格式刷应用格式

本文介绍利用AI工具WorkBuddy实现Word文档格式批量复制的自动化解决方案。通过简单指令即可将指定段落的格式一键应用到多个目标段落,解决传统格式刷操作繁琐、易出错的问题。方案包含三步操作:准备文档、输入指令模板、验收效果,并提供多种场景的现成指令示例。该工具支持字体、段落等格式属性的批量复制,且不会覆盖原文件,适用于论文、手册等文档的格式统一需求。

u011186532的专栏 77

Debian Buster 软件源失效问题

摘要:基于Debian Buster的ARM64设备因系统版本结束支持(EOL)导致apt update报错404。解决方案包括:1)改用Debian官方存档源(需禁用安全检查);2)升级至受支持的Debian 11/12版本(推荐);3)临时使用第三方镜像源(不推荐)。操作步骤涉及修改sources.list、处理NTP同步问题及清理残留配置。建议优先采用版本升级方案以获得持续安全更新,避免使用过时系统带来的安全隐患。文中提供了完整命令示例和操作记录供参考。

yy_xzz的博客 2178

docker build 慢_docker 安装 rocketMq 就是这么简单?

废话不多说,上才艺rocketMq Github : https://github.com/apache/rocketmq-dockerrocketMq Version:https://archive.apache.org/dist/rocketmq/springboot 集成 RocketMq:https://blog.youkuaiyun.com/itjavaee/article/details/1083...

weixin_39713317的博客 345

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

RocketMQ的windos/linux/docker超详细安装及简单入门!

MQ介绍,RocketMQ简介、安装、入门

Poldroc的博客 2033

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

简单几步完成docker安装rocketmq, 快速搭建本地开发环境

简单几步快速完成RocketMQ在开发环境的部署

X0x1024的博客 900

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

基于docker安装RocketMQ

docker-compose.yml version: '3.5' services: rmqnamesrv: image: foxiswho/rocketmq:server container_name: rmqnamesrv restart: always ports: - 9876:9876 volumes: - ./dat...

qq_33282573的博客 743

docker安装rocketMQ并测试

docker安装rocketMQ,需要至少启动两个容器组件,①是name-server,类似于微服务的注册中心,②是broker,负责存储和转发消息。另外,也可以安装console控制台,便于可视化管理mq,但这个组件不是必须的。可以提前pull对应的image,可以直接执行,如果发现没有拉取镜像的话,是可以自动触发拉去镜像的,下同。 -e “MAX_POSSIBLE_HEAP=100000000” 设置容器的最大堆内存为100000000 sh mqnamesrv 启动mqnamesrv服务 mqbr

Rosen's 1447

springcloud + rocketMQ+ docker安装

安装:RocketMQ docker pull rocketmqinc/rocketmq 创建挂载数据卷: mkdir -p /home/mq/rocketMQ/data/namesrv/logs mkdir -p /home/mq/rocketMQ/data/namesrv/store 运行 docker run -d -p 9876:9876 -v /home/mq/data/namesrv/logs:/root/logs -v /home/mq/data/namesrv/store:/root

weixin_42458556的博客 162

docker安装 RocketMQ 的记录-window

【代码】docker安装 RocketMQ 的记录-window。

qq_44768571的博客 1045

RocketMq相关基本概念与安装

RocketMq相关基本概念 RocketMq: 一个低延迟、高可靠、可伸缩、易于使用的分布式消息中间件(消息队列),由Producer(负责生产消息)、Broker(Broker 负责存储消息)、Consumer( 负责消费消息) 。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的 Broker。Message Queue 用于存储消息的物理地址,每个Topic中的消息地址存储于多个 Message Queue 中。

莫邪 364

CentOS7安装RocketMQ

JDK jdk使用1.8 1)解压 jdk tar -zxvf jdk-8u171-linux-x64.tar.gz 2)配置环境变量 >vim /etc/profile export JAVA_HOME=/opt/jdk1.8.0_171 export PATH=$PATH:${JAVA_HOME}/bin 3)重新加载配置 >source /etc/profile 4)查看版本 >java -version 可能出现错误的解决办法 如果安装完毕 jdk 后 java -versio

weixin_45195665的博客 429

Spring Cloud Alibaba(六)——Kafka、Rocketmq、SpringCloudStream

【代码】Spring Cloud Alibaba(六)——Kafka、Rocketmq、SpringCloudStream。

hwp_ing的博客 556
上一篇: docker 安装 MongoDB 就是这么简单?
下一篇: Springboot2.X 集成 RocketMQ
97牛肉面
博客等级 码龄9年 54粉丝 75原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值