0


【Linux】Linux环境下安装RocketMQ(图文解说详细版)

文章目录

一、简介

消息队列中间件是分布式系统中的重要组件,主要解决应用耦合、流量削峰等问题,目前主流的 MQ 主要是:RocketMQ、kafka、RabbitMQ等。

RocketMQ 相较于其它 MQ 的优势:

  • 支持事务型消息(消息发送和 DB 操作保持两方的最终一致性,RabbitMQ 和 Kafka 不支持)
  • 支持结合 RocketMQ 的多个系统之间数据最终一致性(多方事务,二方事务是前提)
  • 支持 18 个级别的延迟消息(Kafka 不支持)
  • 支持指定次数和时间间隔的失败消息重发(Kafka 不支持,RabbitMQ 需要手动确认)
  • 支持 Consumer 端 Tag 过滤,减少不必要的网络传输(即过滤由MQ完成,而不是由消费者完成。RabbitMQ 和 Kafka 不支持)
  • 支持重复消费(RabbitMQ 不支持,Kafka 支持)

RocketMQ主要有四大核心组成部分:NameServer、Broker、Producer以及Consumer四部分

在这里插入图片描述

二、MQ 下载

官网下载:下载链接

进入是这样子的,这里是 rocketMq 最新版本的下载链接
在这里插入图片描述
在这里插入图片描述

如果你想下载旧版本的 rocketMq 的话,只需要改网址上的的版本就行,比如说把 4.9.3 改成 4.4.0
在这里插入图片描述

三、JAVA 环境配置

rocketmq 需要 Linux 上安装JDK,版本 1.8 以上,如果你 Linux 上已经配置了 Java 环境可跳过。

Linux 上配置 JAVA 环境可参见博客:Linux安装Java环境(OpenJDK)

在这里插入图片描述

四、MQ 安装

将下载好的安装包上传至服务器
在这里插入图片描述

rz 命令直接上传安装包 (这里我提前在 linux 上创建了一个文件夹 mkdir /soft/rocketmq 来存放管理的软件)
在这里插入图片描述

上传至 Linux 之后再解压
命令:

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

在这里插入图片描述

它的目录结构:

  • benchmark:这里面就是一些可以直接运行,进行测试的 sh 文件
  • bean:该目录是比较常用的,里面是一些可执行文件
  • conf:这里面就是一些配置文件
  • lib:就是 mq 所依赖的第三方 jar 包

五、启动 MQ

  1. 启动 NameServer 进入 bin 目录 cd bin/ 后台启动 nohup sh mqnamesrv & 或者 nohup ./mqnamesrv &在这里插入图片描述

可以查看日志,看 mq 是否启动成功

tail -f ~/logs/rocketmqlogs/namesrv.log

在这里插入图片描述

或者通过端口号查看

netstat -an | grep 9876

在这里插入图片描述

  1. 启动 Broker 在启动之前先修改两个配置
vim runserver.sh

在这里插入图片描述

mq 默认需要的内存是比较大的,根据自己 Linux 的内存大小去设置,我这里就改成 256 256 128 了

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

vim runbroker.sh
在这里插入图片描述

这里也修改成 256 256 128

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

启动 broker

nohup ./mqbroker -n localhost:9876 &

查看日志检测是否启动成功

tail -f ~/logs/rocketmqlogs/broker.log

在这里插入图片描述

又看到日志打印这个就说明启动成功了,

注意:不要把它给关了

六、测试

开了两个窗口,都在 mq 的 bin 目录下,一个用于发送消息,一个用于接收消息
在这里插入图片描述

  1. 发送消息
# 声明一个 namesrv 的地址
export NAMESRV_ADDR=localhost:9876
# 发送消息./tools.sh org.apache.rocketmq.example.quickstart.Producer

PS:如果报错了,可能出现的原因:

  • 防火墙没关

可以关闭掉防火墙

# 关闭防火墙
systemctl stop firewalld.service 
# 查看防火墙的状态
firewall-cmd --state 
# 禁止firewall开机启动
systemctl disable firewalld.service

或者让防火墙开放 MQ 相关的端口

# 开放name server默认端口
firewall-cmd --remove-port=9876/tcp --permanent
# 开放master默认端口
firewall-cmd --remove-port=10911/tcp --permanent
# 开放slave默认端口 (当前集群模式可不开启)
firewall-cmd --remove-port=11011/tcp --permanent 
# 重启防火墙
firewall-cmd --reload
  • 查下 broker 关掉了

把 nameServer 和 Broker 重新启动,这里我就说 broker 关掉引起的

  1. 接收消息
# 声明一个 namesrv 的地址
export NAMESRV_ADDR=localhost:9876
# 发送消息./tools.sh org.apache.rocketmq.example.quickstart.Consumer

在这里插入图片描述

七、运行

#新建目录用来存放rocketmq-console的文件
mkdir /usr/local/rocketmq-console

cp target/rocketmq-console-ng-2.0.0.jar /usr/local/rocketmq-console/

#运行jar包
cd /usr/local/rocketmq-console/
java -jar rocketmq-console-ng-2.0.0.jar

运行成功在浏览器输入 http://127.0.0.1:8080 即可看到运行界面,账号密码: admin/admin
在这里插入图片描述

  • 配置账号密码 我们开启了登录验证的功能,但是没有设置账户密码,这里默认的账户密码为 admin/admin。我们修改下这个密码。 在 rocketmq-console的数据目录下新建账户文件 users.properties 。
vim /usr/local/rocketmq-console/data/users.properties
  • 设置账号密码
# 该文件支持热修改,即添加和修改用户时,不需要重新启动console# 格式, 每行定义一个用户, username=password[,N]  #N是可选项,可以为0 (普通用户); 1 (管理员)  #定义管理员 
admin=123456,1

#定义普通用户#user1=user1#user2=user2

然后我们杀进程,重启这个jar包即可。
在这里插入图片描述

八、关闭 MQ

进入

bin

目录下
关闭

NameServer
sh mqshutdown namesrv

关闭 Broker

sh mqshutdown broker

本文转载自: https://blog.csdn.net/u011397981/article/details/130573642
版权归原作者 逆流°只是风景-bjhxcc 所有, 如有侵权,请联系我们删除。

“【Linux】Linux环境下安装RocketMQ(图文解说详细版)”的评论:

还没有评论