架构运维篇(五):Centos7/Linux中安装RocketMQ

上一篇 架构运维篇(四):Centos7/Linux中Tomcat安装Https证书实践
这一篇讲一下在Centos7/Linux安装RocketMQ,MQ的具体应用场景和使用就不再啰嗦了。我在没有使用过MQ之前听其他大神提到感觉很高深和复杂,不过有道是“难者不会,会者不难”,那么想要入门MQ的先从学会安装部署开始。

RocketMQ

版本说明

  • JDK :jdk1.8.0_172(已安装)
  • MQ : rocketmq4.3

安装部署RocketMQ

第一步:下载RocketMQ安装包

  1. 官网下载
下载地址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.3.2/rocketmq-all-4.3.2-bin-release.zip
  1. 其他镜像下载
下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.3.2/rocketmq-all-4.3.2-bin-release.zip
第二步:上传至服务器

这里将下载好的rocketmq安装包放到服务器 software 目录下(可以参考架构运维篇的前几章,安装文件都会放到该目录下)

[root@localhost software]# unzip rocketmq-all-4.3.2-bin-release.zip //解压,也可以采用tar 等方式
[root@localhost software]# mv rocketmq-all-4.3.2-bin-release rocket4.3  //这里进行重命名,名字太长不好维护
[root@localhost software]# rm -f rocketmq-all-4.3.2-bin-release.zip //删除安装包,可选
第三步:修改相关配置

如果对rocketmq的配置有详细查看过就会发现,默认配置是非常耗费内存的,如果服务器资源不是很充足还是需要修改的,不然启动会报错。
1、修改runserver.sh 配置文件
到rocketmq的解压文件 /bin 目录下,进行如下操作:

[root@localhost bin]# vim runserver.sh
#JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

也不要设置太小(至少要配置512m),第一次安装时参考网上其他作者写的文章这里配置了256,启动时是会报错的,错误信息如下所示:

[root@localhost bin]# Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
Java HotSpot(TM) 64-Bit Server VM warning: MaxNewSize (524288k) is equal to or greater than the entire heap (524288k).  A new max generation size of 524224k will be used.
java.net.BindException: Address already in use
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:433)
    at sun.nio.ch.Net.bind(Net.java:425)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:127)
......

2、修改runbroker.sh 配置文件
copy一份原来的,再进行修改配置信息:

[root@localhost bin]# vim runbroker.sh
#JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"

备注:同样不可设置过低
3、修改tools.sh 配置文件
同样copy一份原来的,再进行修改配置信息:

[root@localhost bin]# vim tools.sh
#JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"
第四步:启动服务

rocketmq在启动时需要启动Name Server和Broker两个服务,按照顺序依次启动。
启动Name Server:

[root@ localhost bin]# nohup sh mqnamesrv -n localhost:9876 &
[1] 28042
[root@ localhost bin]# Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON

启动Broker:

[root@localhost bin]# nohup sh mqbroker -n localhost:9876 &
[2] 28082

备注:9876是rocketmq的默认端口

关闭服务

sh mqshutdown namesrv
sh mqshutdown broker

其实写到这里已经算是安装部署完成了,那么为了让初学者对MQ有更加直观的体验,接着搭建监控平台。

搭建RocketMQ监控平台

官方有提供基于Spring Boot的RocketMQ web界面监控项目(rocketmq-console),接下来部署上。

第一步:下载项目

GitHub地址:https://github.com/apache/rocketmq-externals.git
如下图打包下载:

GitHub下载

第二步:修改配置文件

打开rocketmq-console项目中的application.properties文件,修改如下配置:

server.port=89  #端口自己定义
rocketmq.config.namesrvAddr=127.0.0.1:9876  #IP地址可以修改
第三步:rocketmq-console项目打包

打包命令如下:

#进入rocketmq-console目录,执行命令
mvn clean package -Dmaven.test.skip=true

备注:会编译生成rocketmq-console-ng-1.0.1.jar,也可以将项目导入的idea里面进行修改和打包操作。

rocketmq-console打包

第四步:上传jar到服务器并启动项目

上传到服务器后,进入jar包所在目录执行如下命令:

[root@localhost data]# java -jar rocketmq-console-ng-1.0.1.jar
第五步:测试结果

浏览器访问:http://127.0.0.1:89 ,如下图所示部署成功:


8.pic.jpg

总结

Centos7/Linux环境搭建RocketMQ会遇到一些坑,这里给大家先列举一下:
1、jvm内存溢出
文章上面有提到过如果配置空间过小启动时会报内存错误,参考文中配置即可解决,也可以自己调试合适的空间大小。
2、No route info of this topic, TopicTest 错误
项目是用Spring Boot 搭建的,在启动是报“org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest”错误,经排查是启动broker方式不对。
官网启动方式和文中一样,但是还是报错。

#官网推荐启动命令
nohup sh bin/mqbroker -n localhost:9876 &

改为

nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true &

3、RocketMQ 设置 brokerIP1 无效,默认会找到内网 的地址,导致无法连接到broker
修改配置

在conf/broker.conf 中 加入 brokerIP1=你的公网IP

启动broker

nohup sh bin/mqbroker -n 你的公网IP:9876 -c conf/broker.conf autoCreateTopicEnable=true &

4、rocketmq-console报错RemotingConnectException: connect to xx failed
原因:端口没有开放,一般的做法是开放一段端口区域,例如:

放行端口:[10000-20000]

贡献者

更多精彩内容可以关注“IT实战联盟”公众号哦~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容

  • [if !supportLists]1 [endif]手册 [if !supportLists]1.1 [endi...
    一个小学生_f64d阅读 2,354评论 0 0
  • 前言 继我上一篇博客后分布式消息队列RocketMQ学习教程①上一篇博客最主要介绍了几种常用的MQ,所以本博客再简...
    smileNicky阅读 5,869评论 0 8
  • 在新搭建的PAAS系统中,需要引入一下MQ,经过技术选型以后,决定使用RocketMq,因为他是使用JAVA编写的...
    nhhnhh阅读 560评论 0 1
  • 下载和构建 配置环境变量在/etc/profile最后添加 使变量生效. /etc/profile 从 https...
    NickYS阅读 19,433评论 1 53
  • 王大年的同屋已经许久没有出现过。“第八十一天了,是不是九九八十一存在轮回,那你应该会回来吧?”加完班回家的王大年在...
    小熊包蟹兮阅读 409评论 0 0