云服务器安装RocketMQ教程

下载前准备

本文云服务器系统为centOS 7.9
RocketMQ 依赖于jdk1.8以上,因此,需要先安装jdk。如果已经安装jdk,可以跳过此步。

jdk快速安装方法:

查看可安装的jdk版本,可用如下代码
yum list |grep jdk

使用以下代码下载并安装jdk1.8,无需配置,下载完成后可直接使用。
yum install -y java-1.8.0-openjdk-devel.x86_64

RocketMQ的下载

环境要求:安装jdk1.8以上。

官网:https://rocketmq.apache.org/

下载地址:https://rocketmq.apache.org/download/

有两个下载链接,一种是source,一种是二进制文件。选二进制文件就可以了。都是zip文件,下载后发送到linux上,使用unzip命令解压。

具体安装步骤也可参考官网中文教程:https://rocketmq.apache.org/zh/docs/quickStart/01quickstart
注意:官网用的源码包,也就是Source。解压完需要编译打包,本文使用二进制文件,解压后可直接启动。

解压后就可以启动了

启动RocketMQ

启动前需要去更改配置文件,因为RocketMQ默认分配的内存过大,会导致启动失败。

首先前往bin目录

nameserver的启动文件
vim runserver.sh

一般按这个改就可以了 -xms256m -xmx256m -xmn128m

我这里改的小一点,只给了200M内存。

borker的启动文件
vim runbroker.sh

1.启动NameService

在bin目录下有mqnamesrv脚本,用该脚本启动。
nohup sh mqnamesrv &

nohup启动,sh管理员权限,&后台运行。

nohup.out可以查看日志。

2.启动Broker

在bin目录下有mqborker脚本,用该脚本启动。
注意ip地址不要使用localhost,应该用你服务器的外网ip,否则发消息时会报错
nohup sh mqbroker -n 外网ip:9876 &

关闭RocketMQ

sh mqshutdown namesrv
sh mqshutdown broker

发送消息

开两个窗口

1.添加临时环境变量

export NAMESRV_ADDR=loaclhost:9876

2.在bin目录下发送消息

sh tools.sh org.apache.rocketmq.example.quickstart.Producer

3.在bin目录下接收消息

sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

遇到的问题

阿里云已经开放9876端口,却无法从外部网络发送消息

因为没有开放10911端口,这是borker的端口号。

开放了10911端口,还是无法发送消息

borker默认配的是阿里云服务器内网地址,需要修改配置文件

前往conf目录下
vim broker.conf

最下面添加配置
brokerIP1=外网地址

发送消息时,提示无法连接到内网ip的10911接口,但测试端口号可以访问

启动broker的时候不能使用
nohup sh mqbroker -n localhost:9876 &

应该指定外网ip来启动broker
nohup sh mqbroker -n 外网ip:9876 &

RocketMQ的网页控制台无法查看消息

需要开放broker的10909端口

10909是vip通道10911是非vip通道。

Tag消息消费失败

一个Group下的所有消费者的消费逻辑必须一致,就是说,一个Group下消费的Tag属性必须一样,否则会导致消费失败。

相关推荐
zzzzzz31016 分钟前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode28 分钟前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户03284722207017 小时前
如何搭建本地yum源(上)
运维
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz4 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化