软硬件需求

下载RocketMQ安装包
将下载的安装包上传到Linux并解压。 
配置nameserver启动空间大小,修改runserver.sh
如果你的电脑内存大于8G的话,可以跳过不用配置,如果不希望占用太大的内存,可以配置。 打开mq下面的runserver.sh
使用vim命令打开bin/runserver.sh文件。现将这些值修改为如下: 
配置参数:
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
配置broker启动空间大小,修改runbroker.sh
如果你的电脑内存大于8G的话,可以跳过不用配置,如果不希望占用太大的内存,可以配置。 打开mq下面的runbroker.sh
使用vim命令打开bin/runbroker.sh文件。现将这些值修改为如下: 
将图中的参数改成
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"
相关参数介绍:
- -Xmx4g 初始堆大小 4g
- -Xms4g 最大堆大小 4g
- -Xmn512m 年轻代大小(1.4 or lator)整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。
- 持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8
启动顺序:先启动nameserver,再启动broker
启动NameServer
进入rocketMq目录执行下面命令启动nameserver
- # nohup用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
- # &:让命令在后台执行,终端退出后命令仍旧执行
-
- nohup sh bin/mqnamesrv &
-
- tail -f ~/logs/rocketmqlogs/namesrv.log
启动broker
进入rocketMq目录执行下面命令启动broker
- # nohup用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
- # &:让命令在后台执行,终端退出后命令仍旧执行。
-
- nohup sh bin/mqbroker -n localhost:9876 &
-
- tail -f ~/logs/rocketmqlogs/broker.log
发送消息
- export NAMESRV_ADDR=localhost:9876
-
- sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
接收消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
关闭顺序:先关闭broker,再关闭nameserver
无论是关闭name server还是broker,都是使用bin/mqshutdown命令。
- [root@mqOS rocketmq]# sh bin/mqshutdown broker
- The mqbroker(1740) is running...
- Send shutdown request to mqbroker(1740) OK
-
- [root@mqOS rocketmq]# sh bin/mqshutdown namesrv
- The mqnamesrv(1692) is running...
- Send shutdown request to mqnamesrv(1692) OK
- [2]+ 退出 143 nohup sh bin/mqbroker -n localhost:9876
RocketMQ有一个可视化的dashboard,通过该控制台可以直观的查看到很多数据。
下载地址:https://github.com/apache/rocketmq-externals/releases
修改其src/main/resources中的application.properties配置文件。
在解压目录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>
在rocketmq-console目录下运行maven的打包命令。