Docker部署RocketMQ5.2.0集群

简介: 本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。

Docker部署RocketMQ 5.2.0集群

Apache RocketMQ 是一款分布式消息中间件,广泛应用于高并发和高可靠性场景中。本文将详细介绍如何使用Docker部署RocketMQ 5.2.0集群。

一、环境准备

在开始之前,确保已在系统中安装了Docker和Docker Compose。

  1. 安装Docker:

  2. 安装Docker Compose:

二、Docker部署RocketMQ

2.1 创建Docker Compose配置文件

在工作目录下创建 docker-compose.yml文件,并添加以下内容:

version: '3.8'

services:
  namesrv:
    image: apache/rocketmq:5.2.0
    container_name: rmqnamesrv
    ports:
      - "9876:9876"
    volumes:
      - ./data/logs:/home/rocketmq/logs
      - ./data/store:/home/rocketmq/store
    command: sh mqnamesrv
    healthcheck:
      test: ["CMD", "nc", "-z", "localhost", "9876"]
      interval: 30s
      timeout: 10s
      retries: 3

  broker:
    image: apache/rocketmq:5.2.0
    container_name: rmqbroker
    ports:
      - "10911:10911"
      - "10909:10909"
    volumes:
      - ./data/logs:/home/rocketmq/logs
      - ./data/store:/home/rocketmq/store
      - ./conf/broker.conf:/home/rocketmq/rocketmq-5.2.0/conf/broker.conf
    environment:
      - "JAVA_OPT_EXT=-server -Xms512m -Xmx512m -Xmn128m"
      - "JAVA_OPT=-Duser.home=/home/rocketmq"
    depends_on:
      - namesrv
    command: sh mqbroker -c /home/rocketmq/rocketmq-5.2.0/conf/broker.conf
    healthcheck:
      test: ["CMD", "nc", "-z", "localhost", "10911"]
      interval: 30s
      timeout: 10s
      retries: 3
​

2.2 创建Broker配置文件

在工作目录下创建 conf目录,并在其中创建 broker.conf文件,添加以下内容:

brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
namesrvAddr=rmqnamesrv:9876
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
​

2.3 启动RocketMQ集群

在工作目录下执行以下命令,启动RocketMQ集群:

docker-compose up -d
​

2.4 验证RocketMQ集群

使用以下命令查看容器状态,确保所有容器都正常启动:

docker-compose ps
​

输出示例:

       Name                      Command               State                         Ports
-------------------------------------------------------------------------------------------------------
rmqbroker            sh mqbroker -c /home/rocketm ...   Up      10909/tcp, 0.0.0.0:10911->10911/tcp
rmqnamesrv           sh mqnamesrv                       Up      0.0.0.0:9876->9876/tcp
​

2.5 访问RocketMQ控制台(可选)

为了方便管理和监控RocketMQ集群,可以部署RocketMQ控制台。创建一个新的 docker-compose服务:

services:
  mqadmin:
    image: pangliang/rocketmq-console-ng
    container_name: mqadmin
    ports:
      - "8080:8080"
    environment:
      JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
    depends_on:
      - namesrv
      - broker
​

docker-compose.yml文件中添加上述配置并执行:

docker-compose up -d mqadmin
​

然后可以通过浏览器访问 http://localhost:8080来访问RocketMQ控制台。

三、总结

本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
4天前
|
JSON 运维 Ubuntu
在Docker上部署Ollama+AnythingLLM完成本地LLM Agent部署
通过以上步骤,您可以成功在Docker上部署Ollama和AnythingLLM,实现本地LLM Agent的功能。在部署过程中,确保环境和配置正确,以避免不必要的问题。希望本文能够帮助您顺利完成部署,并在本地环境中高效地使用LLM模型。
113 8
|
1月前
|
人工智能 文字识别 安全
Stirling-PDF:51.4K Star!用Docker部署私有PDF工作站,支持50多种PDF操作,从此告别在线工具
Stirling-PDF 是一款基于 Docker 的本地化 PDF 编辑工具,支持 50 多种 PDF 操作,包括合并、拆分、转换、压缩等,同时提供多语言支持和企业级功能,满足个人和企业用户的多样化需求。
100 6
Stirling-PDF:51.4K Star!用Docker部署私有PDF工作站,支持50多种PDF操作,从此告别在线工具
|
27天前
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
56 19
|
18天前
|
Linux 虚拟化 Docker
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
74 1
|
10天前
|
Docker Python 容器
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
|
存储 消息中间件 RocketMQ
自己制作的RocketMQ的Docker镜像
RocketMQ的Docker镜像简要配置说明
3849 0
|
6天前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
80 30
|
5天前
|
存储 虚拟化 Docker
|
2月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
318 93
|
5天前
|
开发工具 虚拟化 git
自学软硬件第755 docker容器虚拟化技术youtube视频下载工具
docker容器虚拟化技术有什么用?怎么使用?TubeTube 项目使用youtube视频下载工具