云服务器安装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属性必须一样,否则会导致消费失败。

相关推荐
KeyPan2 分钟前
【Ubuntu与Linux操作系统:十二、LAMP平台与PHP开发环境】
android·java·linux·运维·服务器·ubuntu
NightReader12 分钟前
Ubuntu 24.04蓝牙失效之复活
linux·运维·ubuntu
迃幵chen1 小时前
高可用虚拟IP-keepalived
linux·服务器·tcp/ip
苹果醋32 小时前
MySQL Binlog 同步工具go-mysql-transfer Lua模块使用说明
java·运维·spring boot·mysql·nginx
学Linux的语莫2 小时前
k8s之pod生命周期
linux·运维·docker·容器·kubernetes
petunsecn2 小时前
Jenkins触发器--在其他项目执行后构建
运维·jenkins
启明真纳3 小时前
k8s物料清单工具——KubeClarity
linux·运维·云原生·容器·kubernetes·云计算
wanhengidc3 小时前
国内大带宽服务器的应用场景
运维·服务器