RocketMQ 学习教程——(一)安装 RocketMQ

news2025/1/12 13:30:09

文章目录

    • RocketMQ 安装
      • 下载
      • 安装
        • 上传服务器
        • 配置环境变量
        • 修改 runserver.sh
        • 修改 runbroker.sh
        • 修改 broker.conf
        • 启动
      • 安装 RocketMQ 控制台
        • 安装
        • Linux 防火墙命令
    • Docker 安装 RocketMQ
      • 拉取镜像
      • 启动 NameServer 服务
      • 启动 Broker 服务
      • 启动控制台

image-20230517093920351

RocketMQ 官网: http://rocketmq.apache.org/

RocketMQ 文档:https://rocketmq.apache.org/docs/4.x/

RocketMQ GitHub:https://github.com/apache/rocketmq

RocketMQ 安装

下载

  1. 打开下载地址:https://rocketmq.apache.org/zh/download,选择 4.9.2 版本的 Binary 下载,点击【download.zip】。

    image-20230514201900833

  2. 等待下载完成。

    image-20230514202040618

安装

以安装Linux服务器为例

上传服务器

  1. 创建目录【/root/RocketMQ】用于存放 MQ 文件:

    mkdir /root/RocketMQ
    
  2. 将下载的文件上传到服务器中:

    image-20230527204606514

  3. 安装 unzip 命令用于解压压缩包:

    yum -y install unzip
    
  4. 解压压缩包 rocketmq-all-4.9.2-bin-release.zip:

    unzip rocketmq-all-4.9.2-bin-release.zip
    

    image-20230514205022447

    • Benchmark:包含一些性能测试的脚本;
    • Bin:可执行文件目录;
    • Conf:配置文件目录;
    • Lib:第三方依赖;
    • LICENSE:授权信息;
    • NOTICE:版本公告。

配置环境变量

  1. 打开配置文件

    vim /etc/profile
    
  2. 添加环境变量

    export NAMESRV_ADDR=公网IP:9876
    
  3. 刷新配置文件

    source /etc/profile
    

修改 runserver.sh

  1. 切换到【/root/RocketMQ/rocketmq-4.9.2/bin】目录下:

    cd /root/RocketMQ/rocketmq-4.9.2/bin
    
  2. 编辑文件【runserver.sh】:

    vim runserver.sh
    
  3. 修改运行时占用内存大小,由于 Java 环境为 jdk8,所以修改关于 Java9 之前的版本的配置:

    image-20230514221627433

    修改后:

    image-20230514221334627

修改 runbroker.sh

  1. 编辑【runbroker.sh】:

    vim runbroker.sh
    
  2. 修改配置:

    image-20230514222720017

    修改后:

    image-20230514222542825

修改 broker.conf

  1. 切换【/root/RocketMQ/rocketmq-4.9.2/conf】目录:

    cd /root/RocketMQ/rocketmq-4.9.2/conf
    
  2. 编辑【broker.conf】:

    vim broker.conf
    
  3. 添加配置文件

    namesrvAddr = localhost:9876
    autoCreateTopicEnable = true
    brokerIP1 = 192.168.10.4
    
    • namesrvAddr:nameServer 地址,当 nameServer 和 broker 在一个服务器时可以写 localhost。
    • autoCreateTopicEnable:自动创建 Topic。
    • brokerIP1:公网 ip 地址。

启动

  1. 创建目录【/root/RocketMQ/rocketmq-4.9.2/logs】用于存放日志:

    mkdir /root/RocketMQ/rocketmq-4.9.2/logs
    

    image-20230514224421396

  2. 切换到【/root/RocketMQ/rocketmq-4.9.2】目录,启动 nameSrv:

    nohup sh bin/mqnamesrv > ./logs/namesrv.log &
    

    image-20230514224715065

  3. 启动 broker,-c 指定配置文件:

    nohup sh bin/mqbroker -c conf/broker.conf > ./logs/broker.log &
    

    image-20230514225050643

  4. 查看 Java 程序进程:

    jps -l
    

    image-20230514225135516

  5. 关闭进程:

    kill [pid]
    

安装 RocketMQ 控制台

安装

  1. 点击进入下载地址:https://rocketmq.apache.org/zh/download,右侧点击【RocketMQ Dashboard】,点击【download.zip】进行下载。

    image-20230514204030028

  2. 等待下载完成

    image-20230514204047194

  3. 解压并切换到根目录,打开cmd,使用maven命令进行打包

    mvn clean package -Dmaven.test.skip=true
    

    image-20230514231044836

  4. 在target 目录下会生成我们需要的jar包

    image-20230514230333890

  5. 上传服务器

    image-20230514230251936

  6. 命令运行rocketmq-dashboard-1.0.0.jar包:

    nohup java -jar rocketmq-dashboard-1.0.0.jar --server.port=8081 rocketmq.config.namesrvAddr=127.0.0.1:9876 > rocketmq-4.9.2/logs/dashboard.log &
    
  7. 浏览器访问:http://192.168.10.4:8081:

    image-20230514233505821

  8. 若访问不了,可以查看防火墙是否开启,【9876、10100-11000】端口是否未开放。

Linux 防火墙命令

  • 查看防火墙状态:

    systemctl status firewalld
    

    image-20230514233755808

  • 关闭防火墙:

    systemctl stop firewalld
    
  • 开启防火墙:

    systemctl start firewalld
    
  • 开放指定端口:

    firewall-cmd --zone=public --add-port=8081/tcp --permanent
    
  • 重启防火墙:

    firewall-cmd --reload
    

Docker 安装 RocketMQ

拉取镜像

  1. 拉取 RocketMQ 镜像:

    docker pull rocketmqinc/rocketmq
    docker pull styletang/rocketmq-console-ng
    
  2. 查看镜像:

    docker images
    

    image-20230515162517332

启动 NameServer 服务

  1. 创建 NameServer 数据存储路径:

    mkdir -p /home/rocketmq/data/namesrv/logs /home/rocketmq/data/namesrv/store
    
  2. 启动 NameServer 容器:

    docker run -d --restart=always --name rmqnamesrv -p 9876:9876 -v /home/rocketmq/data/namesrv/logs:/root/logs -v /home/rocketmq/data/namesrv/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv
    
    参数描述
    -d以守护进程的方式启动
    –restart=alwaysdocker 重启时候容器自动重启
    –name rmqnamesrv容器名字设置为 rmqnamesrv
    -p 9876:9876容器内的端口9876挂载到宿主机9876端口上
    -v /home/rocketmq/data/namesrv/logs:/root/logs日志目录挂载
    -v /home/rocketmq/data/namesrv/store:/root/store数据目录挂载
    -e “MAX_POSSIBLE_HEAP=100000000”设置容器的最大堆内存为100000000
    rocketmqinc/rocketmq使用的镜像名称
    sh mqnamesrv启动namesrv服务
  3. 查看当前运行容器:

    docker ps
    

    image-20230515162945200

启动 Broker 服务

  1. 创建 Broker 数据存储路径:

    mkdir -p /home/rocketmq/data/broker/logs /home/rocketmq/data/broker/store
    
  2. 创建 conf 配置文件目录:

    mkdir /home/rocketmq/conf
    
  3. 在配置文件目录下创建 broker.conf 配置文件:

    vim /home/rocketmq/conf/broker.conf
    

    添加以下内容:

    # 所属集群名称,如果节点较多可以配置多个
    brokerClusterName = DefaultCluster
    #broker名称,master和slave使用相同的名称,表明他们的主从关系
    brokerName = broker-a
    #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地址
    brokerIP1 = 43.143.180.242 #服务器公网ip
    #是否允许自动创建topic
    autoCreateTopicEnable=true
    
  4. 启动容器:

    docker run -d --restart=always --name rmqbroker --link rmqnamesrv:namesrv -p 10911:10911 -p 10909:10909 -v /home/rocketmq/data/broker/logs:/root/logs -v /home/rocketmq/data/broker/store:/root/store -v /home/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf --privileged=true -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
    
    参数描述
    -d以守护进程的方式启动
    –restart=alwaysdocker 重启时候容器自动重启
    –name rmqbroker容器的名字设置为 rmqbroker
    –link rmqnamesrv:namesrv需要和名为 rmqnamesrv 的容器进行连接,别名为 namesrv
    -p 10911:10911把容器的10911端口挂载到宿主机10911端口
    -p 10909:10909把容器的10909端口挂载到宿主机10909端口
    -v /home/rocketmq/data/broker/logs:/root/logs日志目录挂载
    -v /home/rocketmq/data/broker/store:/root/store数据目录挂载
    -v /home/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf配置文件挂载
    –privileged=true开启特权
    -e “NAMESRV_ADDR=namesrv:9876”指定 nameserver 的地址,这里直接使用容器名(别名)代替容器 ip
    -e “MAX_POSSIBLE_HEAP=200000000”指定 broker 服务的最大堆内存
    rocketmqinc/rocketmq使用的镜像名称
    sh mqbroker -c /opt/docker/rocketmq/broker.conf指定配置文件启动broker节点

启动控制台

  1. 启动控制台容器:

    docker run -d --name rmqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr=公网:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false -Duser.timezone='Asia/Shanghai'" -v  /etc/localtime:/etc/localtime -p 9999:8080 styletang/rocketmq-console-ng
    
  2. 查看镜像:

    image-20230515165618054

  3. 浏览器访问:http://公网ip:9999/

    image-20230515165744370

  4. Docker 安装 RocketMQ 完成。若不能正常访问,请放行服务器端口。

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

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

相关文章

​【编写UI自动化测试集】Appium+Python+Unittest+HTMLRunner​

简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以python文件模式执行脚本生成测试报告 下载与安装 下载需要自动化测试的App并安装到手机 获取AppPackage和AppActivity 方法一 有源码的…

算法11.从暴力递归到动态规划4

算法|11.从暴力递归到动态规划4 1.最长公共子序列 题意:给定两个字符串str1和str2,返回这两个字符串的最长公共子序列长度 比如 : str1 “a12b3c456d”,str2 “1ef23ghi4j56k” 最长公共子序列是“123456”,所以返回长度6 解…

【PowerShell】PowerShell 7.1 之后版本的安装

当前以下操作系统支持PowerShell 7.1 版本的安装,非Windows 系统支持的版本和要求有一定的限制。 Windows 8.1/10 (including ARM64)Windows Server 2012 R2, 2016, 2019, and Semi-Annual Channel (SAC)Ubuntu 16.04/18.04/20.04 (including ARM64)Ubuntu 19.10 (via Snap pa…

图的邻接矩阵表示

设图有n个顶点,则邻接矩阵是一个n*n的方阵;若2个顶点之间有边,则方阵对应位置的值为1,否则为0; 看几个例子; 此图的邻接矩阵是 0 1 1 1 1 0 1 0 1 1 0 1 1 0…

学习 xss+csrf 组合拳

目录 1.xss基础铺垫 1.1反射型xss 1.2存储型xss 1.3基于DOM的xss 1.4xss漏洞的危害 1.5xss漏洞的黑盒测试 1.6xss漏洞的白盒测试 2.csrf基础铺垫 2.1csrf攻击原理 2.2csrf攻击防护 3.应用案例 3.1存储型xsscsrf组合拳 3.2csrfselfxss组合拳 1.xss基础铺垫 跨站脚…

线程和进程

进程和线程的区别(超详细) 与进程不同的是同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多&#xff0…

【架构】常见技术点--服务治理

导读:收集常见架构技术点,作为项目经理了解这些知识点以及解决具体场景是很有必要的。技术要服务业务,技术跟业务具体结合才能发挥技术的价值。 目录 1. 微服务 2. 服务发现 3. 流量削峰 4. 版本兼容 5. 过载保护 6. 服务熔断 7. 服务…

微服务之流量控制

Informal Essay By English I have been thinking about a question recently, what is the end of coding? 参考书籍: “凤凰架构” 流量控制 任何一个系统的运算、存储、网络资源都不是无限的,当系统资源不足以支撑外部超过预期的突发流量时&…

数字信号处理8:利用Python进行数字信号处理基础

我前两天买了本MATLAB信号处理,但是很无语,感觉自己对MATLAB的语法很陌生,看了半天也觉得自己写不出来,所以就对着MATLAB自己去写用Python进行的数字信号处理基础,我写了两天左右,基本上把matlab书上的代码…

【数据结构】轻松掌握二叉树的基本操作及查找技巧

二叉树的基本操作 ​ 在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。由于现在大家对二 叉树结构掌握还不够深入,为了降低学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操…

【自然语言处理】不同策略的主题建模方法比较

不同策略的主题建模方法比较 本文将介绍利用 LSA、pLSA、LDA、NMF、BERTopic、Top2Vec 这六种策略进行主题建模之间的比较。 1.简介 在自然语言处理(NLP)中,主题建模一词包含了一系列的统计和深度学习技术,用于寻找文档集中的隐…

【刷题之路】LeetCode 2073. 买票需要的时间

【刷题之路】LeetCode 2073. 买票需要的时间 一、题目描述二、解题1、方法1——记录每个人需要的时间1.1、思路分析1.2、代码实现 2、方法2——队列记录下标2.1、思路分析2.2、先将队列实现一下2.3、代码实现 一、题目描述 原题连接: 2073. 买票需要的时间 题目描述…

Linux---用户组命令(groupadd、groupdel、groupmod、newgrp、getent)

1. groupadd命令 [rootlocalhost ~]# groupadd [选项] 组名 [rootlocalhost ~]# groupadd group1 --向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。 [rootlocalhost ~]# groupadd -g 101 group2 --向系统中增加了一个新组gr…

MySQL5.7递归查询与CTE递归查询

文章目录 一、8.0版本的递归1、CTE递归2、举例3、递归CTE的限制 二、5.7版本的递归1、find_in_set 函数2、concat函数3、自定义函数实现递归查询4、向上递归5、可能遇到的问题 一、8.0版本的递归 1、CTE递归 先看8.0版本的递归查询CET。语法规则: WITH RECURSIVE…

深入浅出解析Stable Diffusion完整核心基础知识 | 【算法兵器谱】

Rocky Ding 公众号:WeThinkIn 写在前面 【算法兵器谱】栏目专注分享AI行业中的前沿/经典/必备的模型&论文,并对具备划时代意义的模型&论文进行全方位系统的解析,比如Rocky之前出品的爆款文章Make YOLO Great Again系列。也欢迎大家提…

笔试强训错题总结(一)

笔试强训错题总结 文章目录 笔试强训错题总结选择题编程题连续最大和不要二最近公共祖先最大连续的bit数幸运的袋子手套 选择题 以下程序的运行结果是&#xff08;&#xff09; #include <stdio.h> int main(void) {printf("%s , %5.3s\n", "computer&q…

<Linux开发>驱动开发 -之-基于pinctrl/gpio子系统的beep驱动

&#xff1c;Linux开发&#xff1e;驱动开发 -之-基于pinctrl/gpio子系统的beep驱动 交叉编译环境搭建&#xff1a; &#xff1c;Linux开发&#xff1e; linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下&#xff1a; &#xff1c;Linux开发&#xff1e; -之-系统移植…

如何在华为OD机试中获得满分?Java实现【人民币转换】一文详解!

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Java华为OD机试真题&#xff08;2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

认识Servlet---1

hi ,大家好,今天为大家带来Servlet相关的知识,并且实现第一个程序 &#x1f389;1.什么是Servlet &#x1f389;2.使用Servlet写一个hello程序 &#x1f33b;&#x1f33b;&#x1f33b;1.创建项目 &#x1f33b;&#x1f33b;&#x1f33b;2.引入依赖 &#x1f33b;&…

GitHub基本概念

创建日期: 2018-09-22 09:50:06 Git & GitHub Git是一个版本控制软件&#xff1a; 读作[gɪt] ,拼音读作gē y te。 Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed an…