目录
- 一、RockerMQ简介
- 二、Linux中单节点部署
- 1、准备工作
- 2、下载和解压
- 3、修改初始内存
- 4、启动
- 5、查看进程
- 6、发送接收消息测试
- 7、关闭
- 三、控制台的安装与启动(可视化页面)
- 1、修改配置
- (1)修改端口号
- (2)指定RocketMQ的name server地址
- (3)添加依赖
- 2、打成jar包
- 3、启动
- 4、测试访问
- 四、常见问题及解决方法
- 1、rocketmq org.apache.rocketmq.remoting.exception.RemotingConnectException:connect to <10909> failed
- (1)问题原因
- (2)解决方案
一、RockerMQ简介
MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。
可以用来在分布式系统中异步提速、解耦、削峰填谷和数据收集
二、Linux中单节点部署
1、准备工作
软硬件需求
系统要求是64位的,JDK要求是1.8及其以上版本的。
下载RocketMQ安装包
版本选择:https://archive.apache.org/dist/rocketmq/4.9.0/rocketmq-all-4.9.0-bin-release.zip
2、下载和解压
将下载的安装包上传到Linux上(也可以直接在Linux里用wget命令下载)
由于是zip文件所以需要有一个解压zip的工具
yum install -y unzip
解压下载的压缩包
unzip rocketmq-all-4.9.0-bin-release.zip
3、修改初始内存
修改 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"
注意:以上初始内存大小应该小于自己Linux的内存但也不能太小,根据自己的实际情况而定
4、启动
启动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...
5、查看进程
jps
1860 BrokerStartup
1832 NamesrvStartup
2447 Jps
6、发送接收消息测试
发送消息
$ 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...
7、关闭
可以使用jps搜索进程,然后使用kill把进程杀死
kill -9 [进程号]
第二种方法
### 关闭broker
$ sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK
### 关闭namesrv
$ sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK
三、控制台的安装与启动(可视化页面)
RocketMQ有一个可视化的dashboard,通过该控制台可以直观的查看到很多数据。
下载地址
官方地址:https://github.com/apache/rocketmq-dashboard
1、修改配置
将下载的压缩包解压出来,进入文件修改其 src/main/resources 中的application.properties 配置文件.
(1)修改端口号
原来的端口号为8080,修改为一个不常用的,如7777
(2)指定RocketMQ的name server地址
(3)添加依赖
在解压目录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>
2、打成jar包
在rocketmq-console目录下运行maven的打包命令。
mvn clean package -Dmaven.test.skip=true
也可以在idea里打jar包
3、启动
java -jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar
4、测试访问
访问http://localhost:7000/
在这里可以搜索接收的消息,能够收到代表成功了。
四、常见问题及解决方法
1、rocketmq org.apache.rocketmq.remoting.exception.RemotingConnectException:connect to <10909> failed
(1)问题原因
由于跨域造成的
(2)解决方案
修改服务器中broker的配置,添加服务器IP(公网)即可
vim conf/broker.conf
在最后添加一行
brokerIP1=xx.xx.xx.xx # 你的公网IP
注意:IP两个字母要大写。这个公网IP有的人用宿主机的IP有的人用的Linux的IP,自己都试一下
杀死上面启动的进程后重启namesrv和broker
重启broker是要加入下面的选项
-c conf/broker.conf
如果以上方法还不能解决你的问题,尝试重启一下虚拟机,会有意想不到的效果