rocketmq4.9.4 docker安装

news2024/12/28 19:03:35

rocketmq4.9.4

给对应的路径赋权 chmod -R 777 文件名 不然启动可能报错后者看不到容器日志

systemctl status firewalld 查看防火墙状态

https://www.jianshu.com/p/0c1c3c679ef8

Docker部署RocketMQ(4.9.4)官方镜像和控制台windows、mac、linux全平台通用

https://blog.51cto.com/u_15526925/5909533
docker pull apacherocketmq/rocketmq-dashboard:latest   --就是控制台
docker pull apache/rocketmq:4.9.4 --包括rocketmq和broker 所以一共两个镜像

在你想要的地方创建文件夹,在该文件夹下打开Terminal,以下命令会构造该相对路径。

mkdir -p /docker/rocketmq 好像可以不用

这个应该就满足了
cd /docker/rocketmq/broker/conf
在上述创建的文件夹下创建broker.conf,内容如下,修改brokerIP1即可。
# mq集群名称
brokerClusterName = DefaultCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-master
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
#设置broker节点所在服务器的ip地址(公网IP)
#liux、mac系统使用ifconfig,win系统用ipconfig查主机ip
brokerIP1 = 192.168.200.131
namesrvAddr=192.168.200.131:9876
# mq集群名称
brokerClusterName = DefaultCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-master
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
#设置broker节点所在服务器的ip地址(公网IP)
#liux、mac系统使用ifconfig,win系统用ipconfig查主机ip
#brokerIP1 = 192.168.200.131
brokerIP1 = 192.168.200.131
#nameServer地址,分号分割
namesrvAddr = 192.168.200.131:9876
##Broker 对外服务的监听端口,
listenPort = 10911
##是否允许Broker自动创建Topic
autoCreateTopicEnable = true
##是否允许 Broker 自动创建订阅组
autoCreateSubscriptionGroup = true
##linux开启epoll
useEpollNativeSelector = true

手动起

开通端口

--防火墙是dead的话就不需要了 systemctl status firewalld 查看防火墙状态
firewall-cmd --zone=public --add-port=9876/tcp --permanent
firewall-cmd --zone=public --add-port=10911/tcp --permanent
firewall-cmd --zone=public --add-port=19876/tcp --permanent
firewall-cmd --zone=public --add-port=8765/tcp --permanent
firewall-cmd --zone=public --add-port=10912/tcp --permanent
firewall-cmd --zone=public --add-port=10909/tcp --permanent
firewall-cmd --reload
#curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.3/docker-#compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
## 加上许可权限
#chmod +x /usr/local/bin/docker-compose
  -------------------------

-- 给所有文件夹赋予权限,否则可能启动失败
docker run -d --restart=always -v /docker/rocketmq/namesrv/logs:/home/rocketmq/logs \
  --name mqnamesrv \
  -e"JAVA_OPT_EXT=-server -Xms512m -Xmx512m -Xmn512m" \
  -p 9876:9876 \
  apache/rocketmq:4.9.4 \
  sh mqnamesrv
  
docker run -d --restart=always -v /docker/rocketmq/broker/logs:/home/rocketmq/logs -v /docker/rocketmq/broker/store:/home/rocketmq/store \
  -v /docker/rocketmq/broker/conf:/home/rocketmq/conf \
  --name rmqbroker \
  --link mqnamesrv:namesrv \
  -e"JAVA_OPT_EXT=-server -Xms512m -Xmx512m -Xmn512m" \
  -e "NAMESRV_ADDR=namesrv:9876" \
  -p 10911:10911 -p 10912:10912 -p 10909:10909 \
  apache/rocketmq:4.9.4 \
  sh mqbroker -c /home/rocketmq/rocketmq-4.9.4/conf/broker.conf

#-n应该是不用的
docker run -d --restart=always -v /docker/rocketmq/broker/logs:/home/rocketmq/logs -v /docker/rocketmq/broker/store:/home/rocketmq/store \
  -v /docker/rocketmq/broker/conf:/home/rocketmq/conf \
  --name rmqbroker \
  --link mqnamesrv:namesrv \
  -e"JAVA_OPT_EXT=-server -Xms512m -Xmx512m -Xmn512m"doc \
  -e "NAMESRV_ADDR=namesrv:9876" \
  -p 10911:10911 -p 10912:10912 -p 10909:10909 \
  apache/rocketmq:4.9.4 \
  sh mqbroker -n 192.168.200.131:9876 -c /home/rocketmq/rocketmq-4.9.4/conf/broker.conf


快速启动 RocketMQ-Dashboard 8765可以随便改
docker pull apacherocketmq/rocketmq-dashboard:latest
docker run -d --restart=always --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.200.131:9876" -p 8765:8080 -t apacherocketmq/rocketmq-dashboard:latest

-d表示容器后台运行,-v path1:path2,path1表示宿主机的路径,path2表示容器的路径,-e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m"表示设置容器内的环境变量。-p表示宿主机和容器的端口映射。前一个表示宿主机的端口,后一个表示容器的端口。

-c /home/rocketmq/rocketmq-4.9.4/conf/broker.conf是容器内的文件。

/home/rocketmq/rocketmq-4.9.4/conf/broker.conf

问题

/home/rocketmq/rocketmq-4.9.4/conf/broker.conf

本地broker.conf 的公网ip没生效,只能是进入容器改内网的ip

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xWDFS5pl-1683534414314)(C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/image-20230507201643787.png)]

docker run最后的sh什么意思

必须要有,不然会报错

在这里插入图片描述

这个问题就是挂载路径错了,可能拷贝多了一些字母

springboot整合mq

<!-- https://mvnrepository.com/artifact/org.apache.rocketmq/rocketmq-spring-boot-starter -->
<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>
查看代码笔记49.下载依赖手动到maven官网下载依赖到本地仓库

application.yml

rocketmq:
  name-server: 192.168.75.128:9876
  producer:
    #配置生产组,名字随意,保证发送消息高可用性 生产组有多个生产者,就算dan了一个,还有另一个,高可用
    group: tanhua_producer
     #发送消息超时时间, 默认是3秒钟,建议同学配置超时时间为5秒
    send-message-timeout: 5000
@RunWith(SpringRunner.class)
@SpringBootTest
public class AppTest {

    //Rocketmq的核心类
    @Autowired
    private RocketMQTemplate mqTemplate ;

    //发送一个普通的消息,入门案例
    @Test
    public void test01(){
        //参数一: 消息主题  参数二: 消息内容
        mqTemplate.convertAndSend("topic","hello 大家好!");
    }
    
    /*rocketMQTemplate.asyncSend("delay_register_topic", "helloWorld!", new 				 SendCallback() {
            @Override
            public void onSuccess(SendResult sendResult) {
                System.out.println("\"返回成功map\" = " + "返回成功");
            }

            @Override
            public void onException(Throwable throwable) {
                System.out.println("\"返回失败map\" = " + JSON.toJSONString(throwable));
            }
        });*/

}

消费者

application

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

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

相关文章

20230508在Ubuntu22.04下使用python3批量转换DOCX文档为TXT

20230508在Ubuntu22.04下使用python3批量转换DOCX文档为TXT 2023/5/8 16:27 在WIN10下请参考本文&#xff0c;在Ubuntu22.04下需要不通的插件&#xff01; https://blog.csdn.net/weixin_46255747/article/details/129961988 python实现批量docx转txt docx文档放到input目录中。…

Origin如何绘制二维图形?

文章目录 0.引言1.函数绘图2.线图3.符号图4.点线符号图5.柱状/条形/饼图6.多面板/多轴图7.面积图8.专业图9.主题绘图 0.引言 因科研等多场景需要绘制专业的图表&#xff0c;笔者对Origin进行了学习&#xff0c;本文通过《Origin 2022科学绘图与数据》及其配套素材结合网上相关资…

stable diffusion模型讲解

AI模型最新展现出的图像生成能力远远超出人们的预期&#xff0c;直接根据文字描述就能创造出具有惊人视觉效果的图像&#xff0c;其背后的运行机制显得十分神秘与神奇&#xff0c;但确实影响了人类创造艺术的方式。 AI模型最新展现出的图像生成能力远远超出人们的预期&#xf…

PyCharm使用 Anaconda安装TensorFlow

1.安装python全家桶Anaconda 1.1 官网 https://www.anaconda.com/ 进入官网后如下图所示&#xff0c;点击Download即可开始下载&#xff08;若无法下载&#xff0c;请转至清华源下载&#xff09; 1.2 清华 https://repo.anaconda.com/archive/ 2.Anaconda安装 点击Next -…

libssh2交叉编译和测试

目录 官方地址&#xff1a;https://www.libssh2.org/ 1.源码下载 2.交叉编译 3.测试代码 官方地址&#xff1a;https://www.libssh2.org/ 正常来说&#xff0c;看官网说明和例子都能正常编译和使用&#xff0c;想偷个懒的就参考以下步骤。 1.源码下载 我当前看到的版本是li…

【二分查找】求解单调方程的解 C++实现

目录 1 问题2 想法3 二分查找4 实现4-1 伪代码说明4-2 C11 1 问题 有函数 f ( x ) a x ( a > 1 ) f(x)a^x(a>1) f(x)ax(a>1) ,单调递增&#xff0c;现在给一个正整数 N N N&#xff0c;求使得 f ( x ) N f(x)N f(x)N的正整数解 x x x。    2 想法 x l o g a N xl…

Spring Boot集成ShardingSphere分片利器 AutoTable (二)—— 自动分片算法示例 | Spring Cloud 46

一、前言 在前面我们通过以下章节对ShardingSphere的AutoTable 有了基础的了解&#xff1a; Spring Boot集成ShardingSphere分片利器 AutoTable &#xff08;一&#xff09;—— 简单体验 | Spring Cloud 45 书接上回&#xff0c;本章进行对AutoTable 支持的自动分片算法进行…

【JAVAEE】使用wait()方法和notify()方法解决线程不安全中的有序性问题

目录 1.wait()方法 2.notify()方法 3.notifyAll()方法 4.wait()和sleep()方法的区别 由于线程之间是抢占式执行的&#xff0c;因此线程之间执行的先后顺序难以预知。但是在实际开发中有时候我们希望合理的协调多个线程之间的执行先后顺序。 完成这个协调工作&#xff0c;主…

QML之HTML5画布移植(Porting from HTML5 Canvas)

移植一个HTML5画布图像到QML画布非常简单。在成百上千的例子中&#xff0c;我们选择了一个来移植。 螺旋图形&#xff08;Spiro Graph&#xff09; 我们使用一个来自Mozila项目的螺旋图形例子来作为我们的基础示例。原始的HTML5代码被作为画布教程发布。 下面是我们需要修改…

OpenGL(十)——基础光照

目录 一、前言 二、环境光照 三、漫反射光照 3.1 法向量 3.2顶点着色器 3.3 VAO属性解释 3.4 片段着色器 四、镜面光照 4.1 片段着色器 一、前言 现实世界光照十分复杂&#xff0c;冯氏光照模型是对现实世界光照的抽象&#xff0c;主要由3部分组成&#xff0c;环境amb…

【JAVAEE】使用synchronized关键字和volatile关键字解决线程安全问题中的原子性,内存可见性和有序性问题

目录 1.synchronized关键字---监视器锁monitor lock 1.1synchronized的特性 互斥 刷新内存 可重入 1.3synchronized使用注意事项 2.volatile关键字 2.1volatile保证内存可见性问题 MESI缓存一致性协议 内存屏障 2.2volatile解决有序性问题 3.总结synchronized和vola…

ELK -- kibana 用nginx代理后无法访问

背景&#xff1a; 本地搭建好elk后&#xff0c;一切正常&#xff0c;后面改成用nginx代理kibana的5601端口&#xff0c;发现代理后无法正常访问&#xff08;未代理的地址可正常访问&#xff09;&#xff0c;花了很多时间去查问题&#xff0c;报错基本都是http://ip:port/spaces…

Leetcode刷题之复制带随机指针的链表

生命不是安排&#xff0c;而是追求&#xff0c;人生的意义也许永远没有答案&#xff0c;但也要尽情感受这种没有答案的人生。 --弗吉尼亚. 伍尔芙 目录 前言&#xff1a; &#x1f338;一.复制带随机指针的链表 &#x1f305;1.复制结点链接到原本链表每一个结点的…

24个强大的HTML属性,每个资深Web工程师都应该掌握!

HTML 属性非常多&#xff0c;除了基本的一些属性外&#xff0c;还有很多很有用的功能性特别强大的属性&#xff1b; 本文将介绍24个强大的HTML属性&#xff0c;这些属性可以让你的网站更加动态和交互&#xff0c;让用户感到更加舒适和愉悦。 让我们一起来探索这24个强大的HTML…

进程优先级+环境变量++地址空间+虚拟地址空间

索引 一.进程优先级二.环境变量1.通过代码如何获取环境1.通过第三个命令行参数获得2.根据第三方变量environ获取3.通过系统调用获取环境变量 2.验证环境变量可以被子进程继承下去 三.验证地址空间1.验证程序地址空间2.证明地址空间不是物理地址 四.虚拟地址空间虚拟地址空间存在…

BI财务智能分析,让企业管理更上一层楼

智能财务建设既可以看作是财务管理工作在经济社会数字化转型的全面开启&#xff0c;也可以看作是财务职能在以数字化技术为支撑&#xff0c;形成对内提升单位管理水平和风险管控能力、对外服务财政管理和宏观经济治理的会计职能拓展&#xff0c;究其本质则是在财务数字化转型升…

简单介绍之隔离级别与分布式事务

一&#xff0c;分布式系统与环境问题 概念 系统可以笼统分为集中式系统和分布式系统。 集中式系统就是由一台或多台主计算机组成中心节点&#xff0c;系统所有功能均由其集中处理。 分布式系统是硬件和软件组件分布不同的网络计算机上&#xff0c;彼此之间仅仅通过消息传递进…

植被参数光学遥感反演方法(Python)及遥感与生态模型数据同化算法技术应用

传统的地面实测方法能够得到比较准确的植被参数&#xff08;如叶面积指数、覆盖度、生物量、叶绿素、干物质、叶片含水量、FPAR等&#xff09;&#xff0c;但其获取信息有限&#xff0c;难以满足大范围提取植被参数的需求&#xff0c;尤其在异质地表区域。遥感技术的发展为植被…

C++学习day--07 字符串

1、黑客攻击系统-用户输入的优化 第 1 节 项目需求 1. 用户登录时&#xff0c;用户可能输入很长的用户名。 2. 使用 char 类型和 int 类型&#xff0c;表示用户名和密码&#xff0c;不安全。 第 2 节 项目实现 #include <iostream> #include <Windows.h> …

MacBook重置与推荐软件配置

Mac OS 12.6.5 前言重置初始化配置说明 GitJava 8 & Maven & MysqlJava 8mavenMySQL配置 MotrixDBeaver添加aliyun的maven至DBeaver添加MySQL VS CodeSteamTyporaiStas Menus 前言 用了一年的机械革命游戏本,机器加外设20斤的重量背过几次出门后就再也不想带出门了,运行…