使用docker搭建RocketMQ(非集群搭建官方镜像)

这篇具有很好参考价值的文章主要介绍了使用docker搭建RocketMQ(非集群搭建官方镜像)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前在使用 RocketMQ 官方的包在搭建的时候,发现好多问题,什么修改内存大小,然后启动 broker 报错,类似 service not available now, maybe disk full 等等… 最后决定还是重新用 docker 搭建下,感觉这样子玩坏了,可以直接把容器干掉,重新启动一个新的容器,毕竟是在学习阶段,这样子快好多。

废话不多说,现在开始搭建。

具体搭建流程

前提说明,由于之前使用非 docker 搭建的时候会出现各种内存不足的情况(因为那个虚拟机上面还搭建了其他好多东西),所以这次我是新创建了一个虚拟机,专门用来搭建 RocketMQ。
rocketmq 官方镜像,RocketMQ,docker,docker,java-rocketmq,rocketmq

第一步:下载官方镜像

可以去官网看下最新的镜像 apache/rocketmq Tags | Docker Hub, 我这里使用的是最新的。

docker pull apache/rocketmq

rocketmq 官方镜像,RocketMQ,docker,docker,java-rocketmq,rocketmq

第二步:部署 NameServer

创建挂载文件夹

# 日志目录
mkdir /apps/rocketmq/nameserver/logs -p
# 保存路劲
mkdir /apps/rocketmq/nameserver/store -p

设置权限

# 777 文件所属者、文件所属组和其他人有读取 & 写入 & 执行全部权限。rwxrwxrwx
chmod 777 -R /apps/rocketmq/nameserver/*

启动 namesrv 容器

docker run -d \
--privileged=true \
--name rmqnamesrv \
-p 9876:9876 \
-v /apps/rocketmq/nameserver/logs:/home/rocketmq/logs \
-v /apps/rocketmq/nameserver/store:/root/store \
-e "MAX_HEAP_SIZE=256M" \
-e "HEAP_NEWSIZE=128M" \
-e "MAX_POSSIBLE_HEAP=100000000" \
apache/rocketmq sh mqnamesrv

第三步:部署 broker

创建挂载文件夹

# 创建需要的挂载目录
mkdir /apps/rocketmq/broker/logs -p \
mkdir /apps/rocketmq/broker/data -p \
mkdir /apps/rocketmq/broker/store -p \
mkdir /apps/rocketmq/broker/conf -p

设置权限

# 777 文件所属者、文件所属组和其他人有读取 & 写入 & 执行全部权限。rwxrwxrwx
chmod 777 -R /apps/rocketmq/broker/*

创建 broker.conf

vi /apps/rocketmq/broker/conf/broker.conf

添加以下配置信息到 broker.conf,这里不对参数做过多的说明,在下面Broker配置详解中有对Broker常用参数做详细介绍:
下面需要修改对应的 brokerIP1 地址!!!

# 集群名称
brokerClusterName=DefaultCluster
# 节点名称
brokerName=broker-a
# broker id节点ID, 0 表示 master, 其他的正整数表示 slave,不能小于0 
brokerId=0
# Broker服务地址    String    内部使用填内网ip,如果是需要给外部使用填公网ip
brokerIP1=192.168.148.129
# Broker角色
brokerRole=ASYNC_MASTER
# 刷盘方式
flushDiskType=ASYNC_FLUSH
# 在每天的什么时间删除已经超过文件保留时间的 commit log,默认值04
deleteWhen=04
# 以小时计算的文件保留时间 默认值72小时
fileReservedTime=72
# 是否允许Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
# 是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95

启动 broker

docker run -d \
--name rmqbroker \
--link rmqnamesrv:namesrv \
-p 10911:10911 -p 10909:10909 \
--privileged=true \
-v /apps/rocketmq/broker/logs:/root/logs \
-v /apps/rocketmq/broker/store:/root/store \
-v /apps/rocketmq/broker/conf/broker.conf:/home/rocketmq/broker.conf \
-e "MAX_POSSIBLE_HEAP=200000000" \
-e "MAX_HEAP_SIZE=512M" \
-e "HEAP_NEWSIZE=256M" \
-e "NAMESRV_ADDR=namesrv:9876" \
apache/rocketmq \
sh mqbroker -c /home/rocketmq/broker.conf

最后一行参数说明

  • sh mqbroker -c /home/rocketmq/broker.conf 启动 broker 服务 使用自定义配置文件。

到此,RocketMQ 就算搭建完了,下面我们来打个搭建一个监控看看。

第四步:搭建监控

下载镜像

docker pull apacherocketmq/rocketmq-dashboard:latest

启动容器

这里地址是我们上面对应的 nameserver 所在机器的 IP

docker run -p 8087:8080 --name rocketmq-console -d \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.148.129:9876" \
-t apacherocketmq/rocketmq-dashboard

最后搞完的截图
rocketmq 官方镜像,RocketMQ,docker,docker,java-rocketmq,rocketmq文章来源地址https://www.toymoban.com/news/detail-647277.html

到了这里,关于使用docker搭建RocketMQ(非集群搭建官方镜像)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker实战:docker compose 搭建Rocketmq

    进入/home/docker目录,新建docker-compose-rocketmq.yml文件,内容如下: 浏览器访问:http://192.168.17.173:8087/#/,效果图如下,至此,docker compose 搭建Rocketmq完成

    2024年02月09日
    浏览(25)
  • 使用 Docker 安装 RocketMQ 使用 docker 安装 rocketmq

    Docker常用命令大全 RocketMQ 是一个分布式的消息中间件,由 NameServer 和Broker两个角色组成,是一种典型的基于发布/订阅模式的消息通信解决方案。 NameServer 是 RocketMQ 的命名服务,可以理解为类似于 DNS 的服务,它主要负责记录 Topic 的路由信息和 Broker 的地址信息。每个 Rocket

    2024年02月13日
    浏览(26)
  • Storm学习之使用官方Docker镜像快速搭建Storm运行环境

    Apache Storm 官方也出了Docker 镜像 https://hub.docker.com/_/storm/ 本文我们就基于官方镜像搭建一个 Apache Storm 2.4 版本的运行环境,供大家后续学习。 有问题可以参考issue 解决, 我的安装过程一路都很顺畅。所以基本上没有看下面是我的详细操作和截图 。 可以说网上的乱七八糟的教

    2024年02月14日
    浏览(38)
  • 使用 KubeSphere 部署高可用 RocketMQ 集群

    作者:老Z,云原生爱好者,目前专注于云原生运维,KubeSphere Ambassador。 Spring Cloud Alibaba 全家桶之 RocketMQ 是一款典型的分布式架构下的消息中间件产品,使用异步通信方式和发布订阅的消息传输模型。 很多基于 Spring Cloud 开发的项目都喜欢采用 RocketMQ 作为消息中间件。 Rock

    2023年04月15日
    浏览(35)
  • MAC M1上docker rocketmq简单环境搭建和代码

    工作了这么多年,rocketmq还没有用过,由于现在的工作中涉及到了,周六吃完午饭就开始搞,结果到现在3点钟才把环境弄好,测试代码搞起。 整个流程分成两步 安装简单的rocket环境 起springboot项目测试 参考文章: https://blog.csdn.net/baidu_33256174/article/details/129599300 1. 制作rocket

    2024年02月15日
    浏览(29)
  • 使用docker运行RocketMQ

    Namesrv模块主要负责服务的寻址和注册,如果该模块不能够在节点中被正确定位。 整个RocketMQ的node都将无法正常工作。 因此,将RocketMQ的Namesrv模块启动并部署在Docker容器中,通过使用–net=host参数使得容器内和宿主机在同一个网络中,可以实现在宿主机的网络环境中对Namesrv模

    2024年02月16日
    浏览(33)
  • arm版mac使用docker部署rocketMQ

    最近在做一些关于rocketMQ社区工作。由于需要测试多个版本的兼容性,公司开发环境只有一个版本集群,于是想使用docker部署测试。官方并没有提供arm版本的镜像,docker hub上下载了几个都有问题。 索性rockeMQ社区提供多个边缘组件,其中有单独的项目用于编译镜像。于是自己

    2024年02月09日
    浏览(33)
  • 【RocketMQ】RocketMQ 5.1.0版本Proxy集群模式部署实践

    为了支持长远的云原生发展,RocketMQ引入了一个全新的模块:Proxy,官方对RocketMQ客户端提供了独立的开源项目:https://github.com/apache/rocketmq-clients,如果要使用这个新的客户端,必须要使用Proxy作为endpoint。 Proxy有两种搭建方式: LOCAL:本地模式,顾名思义,通过追加参数,在

    2024年02月01日
    浏览(34)
  • RocketMQ集群配置

    RocketMQ默认的端口号如下: Namesrv:9876 Broker:10911 请注意,这些是默认的端口,你可以在RocketMQ的配置文件中修改这些端口。同时,如果你运行了多个broker实例或namesrv实例,那么每个实例需要使用不同的端口。 两个Namesrv实例,还有2对 Broker实例主和备,该怎么配置? 在这种

    2024年02月12日
    浏览(21)
  • RocketMQ集群部署

    两台服务器,每台一个nameserver构成集群,broker集群双主双从。 主机 容器名称 IP 与宿主机的端口映射 ODL控制器会同过vip通道10909去连接mq。 主从通过10912端口同步 这两个地址是通过-2 +1 在配置文件端口10911基础上计算得出 两个宿主机上都有docker,并且创建了网桥docker-br0。

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包