Docker compose部署RocketMQ(单机版)

news2024/11/16 20:31:17

 整个工具的代码都在Gitee或者Github地址内

gitee:solomon-parent: 这个项目主要是总结了工作上遇到的问题以及学习一些框架用于整合例如:rabbitMq、reids、Mqtt、S3协议的文件服务器、mongodb

github:GitHub - ZeroNing/solomon-parent: 这个项目主要是总结了工作上遇到的问题以及学习一些框架用于整合例如:rabbitMq、reids、Mqtt、S3协议的文件服务器、mongodb

1.新增data文件夹

2.新增logs文件夹

然后在里面新建两个文件夹broker跟nameserver

3.新增conf文件夹

4.在conf文件夹新增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.

#用于集群中的 Broker 识别和管理,多个 Broker 可以属于同一个集群。
brokerClusterName = DefaultCluster
#在一个集群中标识 Broker,不同的 Broker 必须有不同的 brokerName。
brokerName = broker-a
#用于标识 Broker 的角色,0 通常表示主节点(Master),大于 0 的值用于备用节点(Slave)。
brokerId = 0
#设定在每天的凌晨 4 点(04 表示 4 AM)执行过期文件删除操作。
deleteWhen = 04
#指定消息存储文件的保留时间,超过这个时间的文件将被删除以释放存储空间。
fileReservedTime = 48
#ASYNC_MASTER 表示这个 Broker 是异步主节点,在异步复制模式下工作;它会在不等待从节点(Slave)确认的情况下继续处理新消息。
brokerRole = ASYNC_MASTER
#ASYNC_FLUSH 表示异步刷盘,即消息被写入内存后返回 ack,稍后再写入磁盘。这种方式提升性能,但可能在机器故障时丢失数据。
flushDiskType = ASYNC_FLUSH

5.新增docker compose文件

version: '3'  # Docker Compose 文件格式版本

services:
  rmqnamesrv:
    image: apache/rocketmq:latest  # 使用 RocketMQ 最新版本的镜像
    container_name: rmqnamesrv     # 指定容器的名称为 rmqnamesrv
    ports:
      - 9876:9876  # 将主机的 9876 端口映射到容器内的 9876 端口,供外部访问 NameServer
    restart: always  # 如果容器崩溃或重新启动 Docker 服务,则自动重启容器
    privileged: true  # 以特权模式运行容器,通常用于需要访问宿主机设备的场景
    volumes:
      - ./logs/nameserver:/home/rocketmq/logs  # 将主机上的日志目录挂载到容器内
      - /etc/localtime:/etc/localtime  # 将宿主机的时间设置挂载到容器,以同步时间
    environment:
      - MAX_HEAP_SIZE=256M  # 设置 Java 虚拟机最大堆内存为 256MB
      - HEAP_NEWSIZE=128M   # 设置 Java 的新生代内存大小为 128MB
    command: ["sh","mqnamesrv"]  # 启动容器时执行的命令,用于启动 NameServer

  broker:
    image: apache/rocketmq:latest  # 使用 RocketMQ 最新版本的镜像
    container_name: rmqbroker      # 指定容器的名称为 rmqbroker
    ports:
      - 10909:10909  # 将主机的 10909 端口映射到容器内的 10909 端口,供外部访问
      - 10911:10911  # 将主机的 10911 端口映射到容器内的 10911 端口,供外部访问
    restart: always  # 如果容器崩溃或重新启动 Docker 服务,则自动重启容器
    privileged: true  # 以特权模式运行容器
    volumes:
      - ./logs/broker:/root/logs  # 将主机上的日志目录挂载到容器内
      - ./data:/root/store  # 将主机上的数据目录挂载到容器内
      - ./conf/broker.conf:/home/rocketmq/broker.conf  # 挂载自定义的 Broker 配置文件
      - /etc/localtime:/etc/localtime  # 将宿主机的时间设置挂载到容器,以同步时间
    depends_on:
      - 'rmqnamesrv'  # 确保在启动 broker 之前,NameServer 已经启动
    environment:
      - NAMESRV_ADDR=rmqnamesrv:9876  # 设置 NameServer 的地址,以便 Broker 能够连接到 NameServer
      - MAX_HEAP_SIZE=512M  # 设置 Java 虚拟机最大堆内存为 512MB
      - HEAP_NEWSIZE=256M   # 设置 Java 的新生代内存大小为 256MB
    command: ["sh","mqbroker","-c","/home/rocketmq/broker.conf"]  # 启动 Broker 时使用自定义配置文件

  rmqdashboard:
    image: apacherocketmq/rocketmq-dashboard:latest  # 使用 RocketMQ Dashboard 最新版本的镜像
    container_name: rocketmq-dashboard  # 指定容器的名称为 rocketmq-dashboard
    ports:
      - 8080:8080  # 将主机的 8080 端口映射到容器内的 8080 端口,供外部访问 Dashboard
    restart: always  # 如果容器崩溃或重新启动 Docker 服务,则自动重启容器
    privileged: true  # 以特权模式运行容器
    depends_on:
      - 'rmqnamesrv'  # 确保在启动 Dashboard 之前,NameServer 已经启动
    environment:
      - JAVA_OPTS= -Xmx256M -Xms256M -Xmn128M -Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false
      # 设置 Java 虚拟机参数,指定 NameServer 地址,并禁用 VIP 通道

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySql 日期周处理方式

MySql 日期周处理方式 最近在做数仓相关工作,最近遇到 几个问题, 1、计算指定日期是一年中的第几周,周一为周的第一天 2、计算周的开始时间,结束时间 3、计算周对应的年 比如 2023-01-01 WEEKOFYEAR(2023-01-01) 是2022年的52周&…

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56 1. STM32F407 BootLoader 中的 Flash 擦除功能详解 在嵌入式系统中,BootLoader 的设计是非常关键的部分,它负责引导主程序的启动、升级以及安全管理。而在 STM32F407 等 MCU 上实现 BootLoader&…

【Homework】【5】Learning resources for DQ Robotics in MATLAB

Lesson 5 代码-TwoDofPlanarRobot.m 表示一个 2 自由度平面机器人。该类包含构造函数、计算正向运动学模型的函数、计算平移雅可比矩阵的函数,以及在二维空间中绘制机器人的函数。 classdef TwoDofPlanarRobot%TwoDofPlanarRobot - 表示一个 2 自由度平面机器人类…

Uniapp 引入 Android aar 包 和 Android 离线打包

需求: 原生安卓 apk 要求嵌入到 uniapp 中,并通过 uniapp 前端调起 app 的相关组件。 下面手把手教你,从 apk 到 aar,以及打包冲突到如何运行,期间我所遇到的问题都会 一 一 进行说明,相关版本以我文章内为…

你可以通过以下步骤找到并打开 **Visual Studio 开发者命令提示符**:

你可以通过以下步骤找到并打开 Visual Studio 开发者命令提示符: 1. 通过开始菜单查找 打开 开始菜单(点击屏幕左下角的 Windows 图标)。在搜索框中输入 Developer Command Prompt。你应该看到以下几种选项(具体取决于你的 Visu…

北京大学c++程序设计听课笔记101

基本概念 程序运行期间,每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址(也称“入口地址”)。我们可以将函数的入口地址赋给一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以调用这个…

(时序论文阅读)TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting

来源论文iclr2024 论文地址:https://arxiv.org/abs/2405.14616 源码地址: https://github.com/kwuking/TimeMixer 背景 数据是有连续性,周期性,趋势性的。我们这篇文章主要围绕的是用MLP结构来预测数据的周期性具体为&#xff…

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件 Excel导出系列目录:★★★★尤其注意:引入依赖创建导出模板类逻辑处理controllerservice 导出效果总结 Excel导出系列目录: 【Springboot 使用EasyExcel导出Excel文件】 【Springb…

【论文分享】基于街景图像识别和深度学习的针对不同移动能力老年人的街道步行可达性研究——以南京成贤街社区为例

全球老龄化趋势加剧, 许多城市中老年人数量不断增加,而现有街道和社区基础设施往往未能满足其步行安全和便利需求。本次我们给大家带来一篇SCI论文的全文翻译,该论文通过探讨不同步行能力的老年人对城市步行环境的需求,提供了关于如何改善城市…

LM2 : A Simple Society of Language Models Solves Complex Reasoning

文章目录 题目摘要简介相关工作方法论实验结果结论局限性 题目 LM2:简单的语言模型社会解决复杂推理问题 论文地址:https://aclanthology.org/2024.emnlp-main.920/ 项目地址: https://github.com/LCS2-IIITD/Language_Model_Multiplex 摘要…

【因果分析方法】MATLAB计算Liang-Kleeman信息流

【因果分析方法】MATLAB计算Liang-Kleeman信息流 1 Liang-Kleeman信息流2 MATLAB代码2.1 函数代码2.2 案例参考Liang-Kleeman 信息流(Liang-Kleeman Information Flow)是由 Liang 和 Kleeman 提出的基于信息论的因果分析方法。该方法用于量化变量之间的因果关系,通过计算信息…

[含文档+PPT+源码等]精品基于springboot实现的原生Andriod手机使用管理软件

软件开发环境及开发工具: 数据库管理工具:phpstudy/Navicat或者phpstudy/sqlyog 开发工具:Android Studio 后台管理系统涉及技术: 后台使用框架:Springboot 前端使用技术:Vue,HTML5,CSS3、JavaScript等…

(三十三)队列(queue)

文章目录 1. 队列(queue)1.1 定义1.2 函数1.3 习题1.3.1 例题(周末舞会) 2. 双向队列(deque)2.1 定义2.2 函数2.3 题目2.3.1 例题(打BOSS) 1. 队列(queue) 队…

常用数据类型

1.数值类型 分为整型和浮点型 double(3,1);长度是3,小数点后是1,比如99.5,10.0,20.8 这里的float和double与java中的类似,都是IEEE 754标准的浮点数,精度会丢失,存在一定误差&#…

Vue3 -- 集成sass【项目集成5】

集成sass&#xff1a; 看过博主的 配置styleLint工具应该已经安装过 sass sass-loader 了&#xff0c;所以我们只需要加上我们的 lang"scss"即可。 <style scoped lang"scss"></style>给项目添加全局样式文件&#xff1a; 在src文件夹下创建…

【云原生系列--Longhorn的部署】

Longhorn部署手册 1.部署longhorn longhorn架构图&#xff1a; 1.1部署环境要求 kubernetes版本要大于v1.21 每个节点都必须装open-iscsi &#xff0c;Longhorn依赖于 iscsiadm主机为 Kubernetes 提供持久卷。 apt-get install -y open-iscsiRWX 支持要求每个节点都安装 N…

Springboot集成ElasticSearch实现minio文件内容全文检索

一、docker安装Elasticsearch &#xff08;1&#xff09;springboot和Elasticsearch的版本对应关系如下&#xff0c;请看版本对应&#xff1a; 注意安装对应版本&#xff0c;否则可能会出现一些未知的错误。 &#xff08;2&#xff09;拉取镜像 docker pull elasticsearch:7…

Diff 算法的误判

起源&#xff1a; 设想一下&#xff0c;假如你桌面上的文件都没有文件名&#xff0c;取而代之的是&#xff0c;你使用通过文件的位置顺序即index来区分它们———第一个文件&#xff0c;第二个文件&#xff0c;以此类推。也许这种方式可行&#xff0c;可是一旦你删除了其中的一…

D69【 python 接口自动化学习】- python 基础之数据库

day69 Python 执行 SQL 语句 学习日期&#xff1a;20241115 学习目标&#xff1a; MySQL 数据库&#xfe63;- Python连接redis 学习笔记&#xff1a; redis数据库的用途 使用Python访问redis数据库 使用Python对redis数据库进行读写操作 总结 1. redis是一款高性能的键…

飞书文档只读限制复制

飞书文档只读限制复制 场景描述解决方式插件安装测试 场景描述 当使用飞书时&#xff0c;可能会存在无对方文档编辑/管理权限&#xff0c;对方只给自己开放只读权限的时候&#xff0c;此时如果文档较重要&#xff0c;需要本地保存一份&#xff0c;但是又无法复制文档或直接屏蔽…