rocketmq简介

介绍

  rocketmq是一个纯java,分布式,队列模型的开源消息中间件,前身是MetaQ,是阿里参考Kafka特点研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具有高性能、高可靠、高实时、分布式特点。
rocketmq

功能

  官方表示能做的有很多:也是特点吧:

  1. 发布订阅消息队列
  2. 财务级交易消息
  3. 各种跨语言客户端,java,C++,python,go
  4. 可插拔传输协议,TCP,SSL,AIO
  5. 内置的消息跟踪功能,支持开放式跟踪
  6. 多功能的大数据和流生态系统集成
  7. 按时间或偏移量追溯消息
  8. 可靠的FIFO和严格的有序消息传递在同一队列中
  9. 搞笑的推拉消费模型
  10. 单个队列中的百万级消息累积容量
  11. 多种消息传递协议
  12. 灵活的分布式横向扩展部署架构
  13. 快如闪电的批量消息交换系统
  14. 各种消息过滤机制
  15. 用于隔离测试和云隔离群集的Dcoker映像
  16. 功能丰富的管理仪表板,用于配置,指标和监视
  17. 认证与授权

核心组成

  1. rocketmq-broker:接受生产者发来的消息并存储(通过调用rocketmq-store),消费者从这里取得消息。
  2. rocketmq-client:提供发送、接受消息的客户端API。
  3. rocketmq-namesrv:nameserver,类似于Zookeeper,这里保存着消息的TopicName,队列等运行时的元信息。
  4. rocketmq-common:通用的一些类,方法,数据结构等。
  5. rocketmq-remoting:基于Netty4的client/server+fastjson序列化+自定义二进制协议。
  6. rocketmq-store:消息、索引存储等。
  7. rocketmq-filtersrv:消息过滤器Server,需要注意的是,要实现这种过滤,需要上传代码到MQ!(一般而言,我们利用Tag足以满足大部分的过滤需求,如果更灵活更复杂的过滤需求,可以考虑filtersrv组件)。
  8. rocketmq-tools:命令行工具。

安装

 这里再windows环境下进行安装。

下载

  在官网下载需要版本的rocketmq的包,需要下载bin包,source包是源码。
  下载之后解压到指定的文佳夹。
release版下载

环境变量

  解压完成后,需要将解压的文件夹配置进系统的环境变量。
  这里的变量值为rocketmq解压后的目录。
  rocketmq的启动需要java的环境,请在此之前配置好jdk环境,4.2版本的rocketmq需要1.8的jdk,版本需要对应。

1
ROCKETMQ_HOME=C:\Program1\rocketmq-all-4.2.0-bin-release

启动

  rocketmq启动需要同时启动mqnamesrv和mqbroker。

1
2
3
4
5
6
7
8
9
# 进入安装文件夹中的bin目录,这里存放了启动命令
cd C:\Program1\rocketmq-all-4.2.0-bin-release\bin

# windows需要进入cmd命令窗口,powershell不可以的哦
# 启动mqnamesrv
start mqnamesrv.cmd

# 启动broker
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true

namesrv启动成功

broker启动成功,乌漆嘛黑一大片

启动Rocket-Console

下载

  从官方github下载控制台,rocketmq-externals

1
2
cd /你安装的文件夹
git clone https://github.com/apache/rocketmq-externals.git

配置

  下载后可以看到有很多模块,这里需要的是rocketmq-console模块,需要对其进行配置。
  配置需要修改自己的应用端口和rocketmq的地址端口。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
server.contextPath=
# 配置本机地址
server.port=8082

### SSL setting
#server.ssl.key-store=classpath:rmqcngkeystore.jks
#server.ssl.key-store-password=rocketmq
#server.ssl.keyStoreType=PKCS12
#server.ssl.keyAlias=rmqcngkey

#spring.application.index=true
spring.application.name=rocketmq-console
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
logging.config=classpath:logback.xml
#if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876

# 配置rocketmq地址
rocketmq.config.namesrvAddr=localhost:9876
#if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true
rocketmq.config.isVIPChannel=
#rocketmq-console's data path:dashboard/monitor
rocketmq.config.dataPath=/tmp/rocketmq-console/data
#set it false if you don't want use dashboard.default true
rocketmq.config.enableDashBoardCollect=true
#set the message track trace topic if you don't want use the default one
rocketmq.config.msgTrackTopicName=
rocketmq.config.ticketKey=ticket

#Must create userInfo file: ${rocketmq.config.dataPath}/users.properties if the login is required
rocketmq.config.loginRequired=false

启动

  配置完成后就可以进行启动了。
  需要将rocketmq—console模块打jar包后以jar包模式运行。

1
2
3
4
5
6
7
8
9
# 这里是进入你的该模块的目录
cd /rocketmq-console

# 编译打包
mvn clean package -Dmaven.test.skip=true

# 启动运行
cd target
java -jar rocketmq-console-ng-1.0.1.jar

  启动成功就可以进入控制台查看消息了。

rocketmq控制台