Ubuntu环境中RocketMQ安装教程

news2024/12/27 7:33:08

参考教程

https://blog.csdn.net/weixin_56219549/article/details/126143231

1、安装JDK,并配置环境变量(略)

2、下载RocketMQ安装包

RocketMQ下载地址,选择二进制包下载
在这里插入图片描述

unzip rocketmq-all-5.0.0-ALPHA-bin-release.zip 使用FTP工具上传到目标服务器,或者使用命令行下载

wget https://dist.apache.org/repos/dist/release/rocketmq/5.3.1/rocketmq-all-5.3.1-bin-release.zip

然后解压,unzip rocketmq-all-5.3.1-bin-release.zip

3、配置环境变量

# 配置rocketmq环境变量
sudo vim /etc/profile

##加入下面内容,注意修改正确路径
export rocketmq=/home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/
export PATH=$PATH:$rocketmq/bin

在这里插入图片描述

4、调整合适的JVM内存大小

#进入到bin目录
cd rocketmq-all-5.3.1-bin-release/bin

vim runbroker.sh

在这里插入图片描述

vim runserver.sh

在这里插入图片描述
修改 /home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/conf/broker.conf

# 集群名称
brokerClusterName = DefaultCluster

# 节点名称
brokerName = dev-broker-a

# broker id节点ID, 0 表示 master, 其他的正整数表示 slave,不能小于0
brokerId = 0

# 在每天的什么时间删除已经超过文件保留时间的 commit log,默认值04
deleteWhen = 04

# 以小时计算的文件保留时间 默认值72小时
fileReservedTime = 72

# Broker角色
brokerRole = ASYNC_MASTER

# 刷盘方式
flushDiskType = ASYNC_FLUSH

# Broker服务地址
brokerIP1=192.168.6.222

#nameServer地址,分号分割
namesrvAddr= 192.168.6.222:9876

#是否允许Broker自动创建Topic
autoCreateTopicEnable = true
#是否允许 Broker 自动创建订阅组
autoCreateSubscriptionGroup = true

5、启动RocketMQ

5.1、启动mqnameserver(&表示后台启动,不能少)

进入到/rocketmq-all-5.3.1-bin-release/bin目录,执行下面命令

nohup sh mqnamesrv &

查看是否成功

tail -1000f nohup.out

或者jps查看

jps

5.2、启动broker

进入到/rocketmq-all-5.3.1-bin-release/bin目录,执行下面命令

nohup sh mqbroker -n localhost:9876 &

自动创建topic:启动broker时加上自动创建topic的参数,如下,其中autoCreateTopicEnable=true表示自动创建topic

nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true > ../broker.log &

6、安装控制台dashboard(略)

在这里插入图片描述

(推荐)使用systemd管理nameserver和broker

前面分享了如何在机器上搭建rocketmq,其中nameserver和broker都是以nohup的方式启动。在实际运维过程中,这种启动存在一个比较麻烦的问题:比如机器宕机后,重新启动机器,broker和namserver服务无法自动随开机拉起,还需要我们登陆到每台机器上去操作启动服务。又没有比较好的方式管理启动脚本和停止脚本呢?

我们可以编写unit file,将nameserver和broker作为一个systemd下面的一个unit,从而被systemd管理起来。然后就可以通过systemctl start/restart/stop xxx来启停nameserver和broker了,再通过systemctl enable xxx,可以设置nameserver和broker开启自行启动。

[!NOTE]

开始之前,需要先停止上面方式部署的MQ

1)nameserver

启动:cd /home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/bin && nohup ./mqnamesrv -c namesrv.properties &

停止:cd /home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/bin && sh mqshutdown namesrv

  1. broker

启动:cd /home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/bin && nohup sh mqbroker -c rmq-broker.conf &

停止:cd /home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/bin && sh mqshutdown broker

6.1、编写脚本
1)nameserver的unit file编写: /usr/lib/systemd/system/rmqnamesrv.service
[Unit]
Description=RocketMQ NameServer
After=network.target

[Service]
Type=simple
WorkingDirectory=/home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/bin
ExecStart=/home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/bin/mqnamesrv
ExecStop=/home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/bin/mqshutdown namesrv
Restart=on-failure
Environment="JAVA_HOME=/home/ec2-user/software/jdk/jdk-17.0.12"
Environment="PATH=/home/ec2-user/software/jdk/jdk-17.0.12/bin:/usr/bin:/bin"

[Install]
WantedBy=multi-user.target

2)broker的unit file编写: /usr/lib/systemd/system/rmqbroker.service
[Unit]
Description=RocketMQ Broker
After=network.target

[Service]
Type=simple
WorkingDirectory=/home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/bin
ExecStart=/home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/bin/mqbroker -c /home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/conf/broker.conf
ExecStop=/home/ec2-user/k8s/rocketmq/rocketmq-all-5.3.1-bin-release/bin/mqshutdown broker
Restart=on-failure
Environment="JAVA_HOME=/home/ec2-user/software/jdk/jdk-17.0.12"
Environment="PATH=/home/ec2-user/software/jdk/jdk-17.0.12/bin:/usr/bin:/bin"

[Install]
WantedBy=multi-user.target

6.2、执行命令
#启动
sudo systemctl start rmqnamesrv
#查看状态
sudo systemctl status rmqnamesrv
#停止
sudo systemctl stop rmqnamesrv
#重启
sudo systemctl restart rmqnamesrv
#设置随开机自动启动
sudo systemctl enable rmqnamesrv


看到下图代表成功
在这里插入图片描述

#启动
sudo systemctl start rmqbroker
#查看状态
sudo systemctl status rmqbroker
#停止
sudo systemctl stop rmqbroker
#重启
sudo systemctl restart rmqbroker
#设置随开机自动启动
sudo systemctl enable rmqbroker


看到下图代表成功
在这里插入图片描述

namesrv和broker设置开机自启动
sudo systemctl enable rmqnamesrv
sudo systemctl enable rmqbroker

看到下图代表成功
在这里插入图片描述

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

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

相关文章

【SSM】mybatis的增删改查

目录 代理Dao方式的增删改查 1. 创建项目 $$1. 在sql.xml里增加日志代码以及user的mapper资源。 $$ 2. 在usermapper里引入接口。 $$3. 在测试类中引入以下代码,并修改其中名字。 $$ 4. 实例对象User.java里属性要与表中列严格对应。 2. 查询 1>. 查询所有 …

【C++习题】23.二分查找算法_寻找旋转排序数组中的最小值

文章目录 题目链接:题目描述:解法C 算法代码:图解 题目链接: 153. 寻找旋转排序数组中的最小值 题目描述: 解法 暴力解法:O(n) 从前往后找数组中的最小值。 二分算法:O(logn) 先找二段性 因为这…

Linux笔记---进程:进程终止

1. 进程终止概念与分类 进程终止是指一个正在运行的进程结束其执行的操作。以下是一些常见的导致进程终止的情况: 一、正常终止 完成任务当进程完成了它被设计要执行的任务后,就会正常终止。收到特定信号在操作系统中,进程可能会收到来自操作…

立创庐山派 K230 RTSP 推流

立创庐山派使用的是K230芯片,按照教程刷了canmv固件,下载canmv ide,使用嘉楠社区的rtsp和wlan例程,修改成连接wifi以及RTSP推流例程 # Description: This example demonstrates how to stream video and audio to the network us…

Oracle数据恢复—Oracle数据库sysaux文件损坏的数据恢复案例

Oracle数据库故障&分析: 一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求…

【kafka04】消息队列与微服务之Kafka 图形工具

Kafka 在 ZooKeeper 里面的存储结构 topic 结构 /brokers/topics/[topic] partition结构 /brokers/topics/[topic]/partitions/[partitionId]/state broker信息 /brokers/ids/[o...N] 控制器 /controller 存储center controller中央控制器所在kafka broker的信息 消费者 /c…

微众银行前端面试题及参考答案

使用的协议是 HTTP 还是 HTTPS,为什么没用 HTTPS? 在前端开发中,有些网站使用 HTTP 协议,有些使用 HTTPS 协议。 使用 HTTP 协议的情况可能是因为网站对安全性的要求不是极高,或者处于开发的早期阶段,还没有…

第144场双周赛:移除石头游戏、两个字符串得切换距离、零数组变换 Ⅲ、最多可收集的水果数目

Q1、[简单] 移除石头游戏 1、题目描述 Alice 和 Bob 在玩一个游戏,他们俩轮流从一堆石头中移除石头,Alice 先进行操作。 Alice 在第一次操作中移除 恰好 10 个石头。接下来的每次操作中,每位玩家移除的石头数 恰好 为另一位玩家上一次操作…

UR开始打中国牌,重磅发布国产化协作机器人UR7e 和 UR12e

近日,优傲(UR)机器人公司立足中国市场需求,重磅推出UR7e和UR12e 两款本地化协作机器人。它们延续优傲(UR)一以贯之的高品质与性能特质,着重优化负载自重比,且在价格层面具竞争力&…

应急响应靶机——Windows挖矿事件

载入虚拟机,开启虚拟机: (账户密码:administrator/zgsf123) 发现登录进去就弹出终端界面,自动运行powshell命令,看来存在计划任务,自动下载了一些文件,之后就主动结束退…

基于深度学习和卷积神经网络的乳腺癌影像自动化诊断系统(PyQt5界面+数据集+训练代码)

乳腺癌是全球女性中最常见的恶性肿瘤之一,早期准确诊断对于提高生存率具有至关重要的意义。传统的乳腺癌诊断方法依赖于放射科医生的经验,然而,由于影像分析的复杂性和人类判断的局限性,准确率和一致性仍存在挑战。近年来&#xf…

深入浅出机器学习中的梯度下降算法

大家好,在机器学习中,梯度下降算法(Gradient Descent)是一个重要的概念。它是一种优化算法,用于最小化目标函数,通常是损失函数。梯度下降可以帮助找到一个模型最优的参数,使得模型的预测更加准…

PotPlayer 最新版本支持使用 Whisper 自动识别语音生成字幕

PotPlayer 最新版本支持使用 Whisper 自动识别语音生成字幕 设置使用下载地址 设置 使用 下载地址 https://www.videohelp.com/software/PotPlayer

【0x0001】HCI_Set_Event_Mask详解

目录 一、命令概述 二、命令格式 三、命令参数说明 四、返回参数说明 五、命令执行流程 5.1. 主机准备阶段 5.2. 命令发送阶段 5.3. 控制器接收与处理阶段 5.4. 事件过滤与反馈阶段 5.5. 主机处理(主机端) 5.6. 示例代码 六、命令应用场景 …

可解释机器学习 | Python实现LGBM-SHAP可解释机器学习

机器学习 | Python实现GBDT梯度提升树模型设计 目录 机器学习 | Python实现GBDT梯度提升树模型设计基本介绍模型使用参考资料基本介绍 LightGBM(Light Gradient Boosting Machine)是一种基于决策树的梯度提升框架,是一种高效的机器学习模型。SHAP(SHapley Additive exPlan…

【Rust在WASM中实现pdf文件的生成】

Rust在WASM中实现pdf文件的生成 概念和依赖问题描述分步实现最后 概念和依赖 . WASM WebAssembly(简称WASM)是一个虚拟指令集体系架构(virtual ISA),旨在为C/C等语言编写的程序提供一种高效的二进制格式,使…

Java开发每日一课:Java开发岗位要求

找过工作的朋友应该知道,现在招聘Java开发工程师的公司特别多。那么Java开发这个岗位具体是做什么的?又有什么招聘要求呢? 我毕业的时候也面试过很多公司,当时对Java开发这个岗位的要求不甚了解,因为懂Java语法知识就能…

Spring Boot日志总结

文章目录 1.我们的日志2.日志的作用3.使用日志对象打印日志4.日志框架介绍5.深入理解门面模式(外观模式)6.日志格式的说明7.日志级别7.1日志级别分类7.2配置文件添加日志级别 8.日志持久化9.日志文件的拆分9.1官方文档9.2IDEA演示文件分割 10.日志格式的配置11.更简单的日志输入…

2025年Java面试八股文大全

很多人会问Java面试八股文有必要背吗? 我的回答是:很有必要。你可以讨厌这模式,但你一定要去背,因为不背你就进不了大厂。 国内的互联网面试,恐怕是现存的、最接近科举考试的制度。 而且,我国的八股文确…

DPDK用户态协议栈-Tcp Posix API 1

和udp一样&#xff0c;我们需要实现和系统调用一样的接口来实现我们的tcp server。先来看看我们之前写的unix_tcp使用了哪些接口&#xff0c;这边我加上两个系统调用&#xff0c;分别是接收数据和发送数据。 #include <stdio.h> #include <arpa/inet.h> #include …