使用docker-compose部署RocketMQ5.0

news/2025/3/21 14:08:21/

简介:

使用docker-compose部署rocketmq5.0。文中会介绍docker-compose版本以及需要注意的项

第一步:进入hub.docker.com搜索rocketmq

我们选择第一个,因为第一个是7个月前更新的,(我看有很多博客使用的依旧是最下面的那种版本,但是现在的一些配置已经都不一样了,导致很多东西不能用)

第二步:下载docker-compose并赋予权限

https://get.daocloud.io/#install-compose
# get.daocloud.io是国内链接,因此可以高速安装
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.12.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
提示:v2.12.2是版本号,可以自己更换
chmod +x /usr/local/bin/docker-compose #授权,如果没有赋予权限,下一步是查不到的
docker-compose version # docker-compose -v 都可以查看版本

执行刚刚复制的命令下载rocketmq最新版

docker pull apache/rocketmq:latest

第三步:进入服务器建立需要映射的文件夹和文件

提示:推荐在/usr/local中建立,因为linux中每个文件夹都有其用意,我们应该遵守规则。

1、建立文件夹

mkdir rocketmq
mkdir rocketmq/logs
mkdir rocketmq/data
mkdir rocketmq/conf

不小心建错使用下面命令删除

rm -rf 文件夹名称 

2、在conf文件夹下建立broker.conf文件

vim broker.conf

broker.conf的内容可以从这里复制:

https://github.com/apache/rocketmq/blob/master/distribution/conf/broker.conf
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH

说明:我们之所以要建立broker.conf文件,是因为我们需要通过这个文件把RocketMQ管理起来,尽管我们可以暂时什么都不做

3、在rocketmq文件夹中建立docker-compose.yml文件

vim docker-compose.yml
version: '3.8'services:rmqnamesrv:image: apache/rocketmq:latestcontainer_name: rmqnamesrvports:- 9876:9876volumes:- /usr/local/rocketmq/logs:/home/rocketmq/logsenvironment:JAVA_OPT_EXT: "-Duser.home=/home/rocketmq -Xms256M -Xmx256M -Xmn128m"command: ["sh","mqnamesrv"]broker:image: apache/rocketmq:latestcontainer_name: rmqbrokerports:- 10909:10909- 10911:10911volumes:- /usr/local/rocketmq/logs:/root/logs- /usr/local/rocketmq/store:/root/store- /usr/local/rocketmq/conf/broker.conf:/home/rocketmq/broker.conflinks:- rmqnamesrv:namesrv#restart: alwaysdepends_on:- 'rmqnamesrv'environment:NAMESRV_ADDR: namesrv:9876JAVA_OPT_EXT: "-Duser.home=/home/rocketmq -Xms256M -Xmx256M -Xmn128m"command: ["sh","mqbroker","-c","/home/rocketmq/broker.conf","autoCreateTopicEnable=true"]rmqdashboard:image: apacherocketmq/rocketmq-dashboard:latestcontainer_name: rocketmq-dashboardports:- 8082:8080environment:JAVA_OPTS: "-Drocketmq.namesrv.addr=namesrv:9876"
注意:volumes参数的映射规则是," : "冒号前面是宿主机的文件夹和文件路径,冒号后面是容器内的路径。在配置broker的volumes时,容器内的路径一定要用root开头,否则会导致broker启动的时候一直退出,查看日志也没有任何信息,只能在docker-compose up的时候看见:rmqbroker exited with code 253
说明:
apacherocketmq/rocketmq-dashboard:latest

这个镜像是控制台的镜像,在docker-compose中配置好之后,启动时会自动下载(其实所有镜像配置完成后在启动时都会校验,没有则自动下载)

启动
docker-compose up -d # “ -d ” 指后台运行,想看启动时的日志可以不用加

成功

结尾

附加几个docker-compose常用的命令,如果配置有问题,方便删除重新构建

验证编写的docker-compose.yml 是否正确
    docker-compose build或者docker-compose config -g
停止docker-compose运行的镜像
docker-compose stop
停止并删除docker-compose运行的镜像
docker-compose down
删除docker-compose发布的容器
docker-compose rm

文章来源:https://blog.csdn.net/cm777/article/details/129088291
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/news/25811.html

相关文章

[C++]服务器与客户端建立连接与检测断开的demo

该程序在IP127.0.0.1以及端口5000环境下测试 有一段时间没有在Windows下用C进行网络编程了,这段日子都在做QT的网络编程和OpenCV的图像识别。 今天重新写个Windows下C的,基于TCP的双端连接建立与断开检测的demo,巩固下自己Windows下的网络编程…

举个栗子~Tableau 技巧(251):统一多个工作表的坐标轴范围

在工作汇报场景,有一个很常见、很多数据粉反馈的需求:同一看板上的两个图表,因为轴范围不一致(如下图),很难直观比较。有什么办法可以统一它们的坐标轴范围呢? 类似需求,不论两个还是…

Hudi系列19:Hudi写入模式

一. Changelog 模式 如果希望 Hoodie 保留消息的所有变更(I/-U/U/D), 之后接上 Flink 引擎的有状态计算实现全链路近实时数仓(增量计算), Hoodie 的 MOR 表通过行存 原生支持 保留消息的所有变更(format 层面的集成), 通过流读MOR 表可以消费到所有的变…

【Unity资源下载】POLYGON Dungeon Realms - Low Poly 3D Art by Synty

$149.99 Synty Studios 一个史诗般的低多边形资产包,包括人物、道具、武器和环境资产,用于创建一个以奇幻为主题的多边形风格游戏。 模块化的部分很容易在各种组合中拼凑起来。 包包含超过1,118个详细预制件。 主要特点 ◼ ◼ 完全模块化的地下城!包…

【Ctfshow_Web】信息收集和爆破

0x00 信息收集 web1 直接查看源码 web2 查看不了源码,抓包即可看到(JS拦截了F12) web3 抓包,发送repeater,在响应包中有Flag字段 web4 题目提示后台地址在robots,访问/robots.txt看到Disallow: /fl…

Springboot 我随手封装了一个万能的导出excel工具,传什么都能导出

前言 如题,这个小玩意,就是不限制你查的是哪张表,用的是什么类。 我直接一把梭,嘎嘎给你一顿导出。 我知道,这是很多人都想过的, 至少我就收到很多人问过我这个类似的问题。 我也跟他们说了,但…

备战蓝桥杯【二维前缀和】

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…

Linux驱动学习笔记

驱动学习笔记 1、字符设备驱动 Linux 驱动有两种运行方式 第一种就是将驱动编译进 Linux 内核中,这样当 Linux 内核启 动的时候就会自动运行驱动程序。 第二种就是将驱动编译成模块(Linux 下模块扩展名为.ko),在 Linux 内核启动以后使用“insmod”命…