1. 基本概念
-
名字服务(Name Server)
名称服务充当路由消息的提供者。生产者或消费者能够通过名字服务查找各主题相应的Broker IP列表。多个Namesrv实例组成集群,但相互独立,没有信息交换。 -
代理服务器(Broker Server)
消息中转角色,负责存储消息、转发消息。代理服务器在RocketMQ系统中负责接收从生产者发送来的消息并存储、同时为消费者的拉取请求作准备。代理服务器也存储消息相关的元数据,包括消费者组、消费进度偏移和主题和队列消息等。 -
消息生产者(Producer)
负责生产消息,一般由业务系统负责生产消息。一个消息生产者会把业务应用系统里产生的消息发送到broker服务器。RocketMQ提供多种发送方式,同步发送、异步发送、顺序发送、单向发送。同步和异步方式均需要Broker返回确认信息,单向发送不需要。 -
消息消费者(Consumer)
负责消费消息,一般是后台系统负责异步消费。一个消息消费者会从Broker服务器拉取消息、并将其提供给应用程序。从用户应用的角度而言提供了两种消费形式:拉取式消费、推动式消费。 -
主题(Topic)
表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。 -
消息(Message)
消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题。RocketMQ中每个消息拥有唯一的Message ID,且可以携带具有业务标识的Key。系统提供了通过Message ID和Key查询消息的功能。 -
标签(Tag)
为消息设置的标志,用于同一主题下区分不同类型的消息。来自同一业务单元的消息,可以根据不同业务目的在同一主题下设置不同标签。标签能够有效地保持代码的清晰度和连贯性,并优化RocketMQ提供的查询系统。消费者可以根据Tag实现对不同子主题的不同消费逻辑,实现更好的扩展性。
2. 安装RocketMQ
2.1 下载
版本:4.8.0
源码下载地址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.8.0/rocketmq-all-4.8.0-source-release.zip
Bin下载地址(推荐):https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.8.0/rocketmq-all-4.8.0-bin-release.zip
下载成功后,上传到 /opt 目录,并解压
unzip rocketmq-all-4.8.0-bin-release.zip
mv rocketmq-all-4.8.0-bin-release /usr/local/rocketmq-4.8.0
cd /usr/local/rocketmq-4.8.0/bin
2.2 修改JVM配置
RocketMQ 的使用需要分别启动 Name Server 和 Broker,这两个服务默认配置了4G 和 8G 的堆空间,大家根据实际情况更改即可。我这边是虚拟机,所以全部改成1G
- 修改 bin/runserver.sh
- 修改 bin/runbroker.sh
2.3 常用命令
启动 Name Server
nohup sh mqnamesrv &
启动 Broker
nohup sh mqbroker -n localhost:9876 &
根据配置文件启动 Broker
sh mqbroker -n "localhost:9876" -c /usr/local/rocketmq-4.8.0/conf/broker.conf &
关闭 Name Server
sh mqshutdown namesrv
关闭 broker
sh mqshutdown broker
查看所有消费组group
sh mqadmin consumerProgress -n localhost:9876
查看指定消费组下的所有topic数据堆积情况
sh mqadmin consumerProgress -n localhost:9876 -g default_consumer
查看所有topic
sh mqadmin topicList -n localhost:9876
查看指定topic信息详情统计
sh mqadmin topicstatus -n localhost:9876 -t TopicTest
新增topic
sh mqadmin updateTopic -b localhost:10911 -n localhost:9876 -t test1 [-r readQueueNums] [-w writeQueueNums]
删除topic
sh mqadmin deleteTopic -n localhost:9876 -c DefaultCluster -t test1
查看集群信息
sh mqadmin clusterList -n localhost:9876
3. 安装RocketMQ-Console
RocketMQ-Console 是官方提供的可视化管理工具,可以更方便进行运维、查询操作
下载地址:https://github.com/apache/rocketmq-externals/archive/rocketmq-console-1.0.0.zip
下载后解压,然后通过IDEA打开项目,修改 application.properties 红框的位置:
运行MAVEN命令打包:
mvn clean package -DskipTests
执行完毕后,target 目录下会生成 rocketmq-console-ng-1.0.0.jar,拷贝到服务器上(我这里是放到 /opt/jar)
执行命令运行:
nohup java -jar rocketmq-console-ng-1.0.0.jar &
打开浏览器,输入地址:http://192.168.25.131:8080/ ,完美运行