RocketMq消息中间件(一)
一、RocketMQ的安装
1、下载地址:https://github.com/apache/rocketmq
1 | wget https://mirror.bit.edu.cn/apache/rocketmq/4.7.0/rocketmq-all-4.7.0-bin-release.zip |
2、解压
1 | unzip rocketmq-all-4.7.0-bin-release.zip |
3、启动namesrv
1 | cd rocketmq-all-4.7.0-bin-release/bin |
4、启动broker
1 | cd rocketmq-all-4.7.0-bin-release/bin |
常见错误:启动broker失败 Cannot allocate memory
是由于默认内存分配的太大了,超出了本机内存,直接OOM了。
修改bin/目录下的如下两个脚本
1 | runbroker.sh |
在这两个脚本里都搜索-server -Xms
,将其内存分配小点
二、RocketMQ控制台的安装
控制台目前获取方式有如下两种:
- 第三方网站去下载现成的,比如csdn等。
- 官方源码包自己编译而成,官方没有现成的。
我们这里当然采取官方方式。
github https://github.com/apache/rocketmq-externals
文档 https://github.com/apache/rocketmq-externals/blob/master/rocketmq-console/doc/1_0_0/UserGuide_CN.md
2、下载源码
https://codeload.github.com/apache/rocketmq-externals/zip/master
3、修改配置(可选)
修改rocketmq-console\src\main\resources\application.properties
文件的server.port
就欧了。默认8080。
4、编译打包
进入rocketmq-console
,然后用maven进行编译打包
1 | mvn clean package -DskipTests |
打包完会在target下生成我们spring boot的jar程序,直接java -jar
启动完事。
5、启动控制台
将编译打包好的springboot程序扔到服务器上,执行如下命令进行启动
1 | java -jar rocketmq-console-ng-1.0.1.jar --rocketmq.config.namesrvAddr=127.0.0.1:9876 |
如果想后台启动就nohup &
三、测试
rocketmq给我们提供了测试工具和测试类,可以在安装完很方便的进行测试。
1、准备工作
rocketmq给我们提供的默认测试工具在bin目录下,叫tools.sh
。我们测试前需要配置这个脚本,为他指定namesrv地址才可以,否则测试发送/消费消息的时候会出现如下错误 connect to null failed:
1 | 22:49:02.470 [main] DEBUG i.n.u.i.l.InternalLoggerFactory - Using SLF4J as the default logging framework |
配置如下:
1 | vim tools.sh |
2、发送消息
1 | ./tools.sh org.apache.rocketmq.example.quickstart.Producer |
成功的话会看到哗哗哗的日志,因为这个类会发送1000条消息到TopicTest这个Topic下。
3、消费消息
1 | ./tools.sh org.apache.rocketmq.example.quickstart.Consumer |
成功的话会看到哗哗哗的日志,因为这个类会消费TopicTest下的全部消息。刚发送的1000条都会被消费掉。