- RocketMQ简介
MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。主要功能是异步解耦和流量削峰。
单机安装与启动RocketMQ
准备工作
- 软硬件需求
|系统要求是64位的,JDK要求是1.8及其以上版本的。 - 下载RocketMQ安装包
|版本选择:https://archive.apache.org/dist/rocketmq/4.9.0/rocketmq-all-4.9.0-bin-release.zip - 将下载的安装包上传到Linux上(也可以直接在Linux里用wget命令下载)
- 由于是zip文件所以需要有一个解压zip的工具
yum install -y unzip
- 解压下载的压缩包
unzip rocketmq-all-4.9.0-bin-release.zip
修改初始内存
- 修改runserver.sh文件
#使用vim命令打开bin/runserver.sh文件。现将这些值修改为如下:
AVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
choose_gc_options
- 修改runbroker.sh
使用vim命令打开bin/runbroker.sh文件。现将这些值修改为如下:
JAVA_OPT="${JAVA_OPT} -server -Xms256M -Xmx256M -Xmn128M"
启动
- 启动start namesrv
### start namesrv
$ nohup sh bin/mqnamesrv &
### verify namesrv
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
- 启动 Broker
### start broker
$ nohup sh bin/mqbroker -n localhost:9876 &
### verify broker
$ tail -f ~/logs/rocketmqlogs/broker_default.log
The broker[broker-a,192.169.1.2:10911] boot success...
- 查看进程
[root@localhost rocketmq-all-4.8.0-bin-release]# jps
1860 BrokerStartup
1832 NamesrvStartup
2447 Jps
发送接收消息测试
$ export NAMESRV_ADDR=localhost:9876
# 发送消息
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
SendResult [sendStatus=SEND_OK, msgId= ...
#接收消息
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
ConsumeMessageThread_%d Receive New Messages: [MessageExt...
关闭
- 可以使用jps搜索进程,然后使用kill -9 [进程号]把进程杀死
- 第二种方法
$ sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK
$ sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK
控制台的安装与启动(可视化页面)
RocketMQ有一个可视化的dashboard,通过该控制台可以直观的查看到很多数据。
下载地址
官方地址:https://github.com/apache/rocketmq-dashboard
修改配置
将下载的压缩包解压出来,进入文件修改其src/main/resources中的application.properties配置文件.
- 原来的端口号为8080,修改为一个不常用的,如7000
- 指定RocketMQ的name server地址
添加依赖
- 在解压目录rocketmq-console的pom.xml中添加如下JAXB依赖。
(JAXB*,Java Architechture for Xml Binding,用于XML绑定的Java技术,是一个业界标准,是一项可以根据XML Schema生成Java类的技术。)
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
打成jar包
- 在rocketmq-console目录下运行maven的打包命令。
mvn clean package -Dmaven.test.skip=true
- 也可以在idea里打jar包
启动
java -jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar
测试访问
http://localhost:7000/
- 在这里可以搜索接收的消息,能够收到代表成功了