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

字母哥的博客 2019-07-05 17:46:17 ⋅ 1232 阅读

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


版本说明

  • 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 namers
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 &

如大家有什么问题或者安装过程中有什么难点可以留言哦~~~

相关文章

「轻阅读」RocketMQ 在联想大数据中的应用简析

「轻阅读」消息中间件如何实现每秒几十万的高并发写入?







全部评论: 0

    我有话说:

    1分钟搞定Centos7/LinuxTomcat安装SSL证书

    架构(四):Centos7/LinuxTomcat安装SSL证书实践

    WeCube 2.7.0 版本发布,一站式架构管理工具

    WeCube简介 微众银行在分布式架构实践的过程,发现将银行核心系统构建于分布式架构之上,会遇到一些与传统单体应用不同的痛点(例如,服务器增多,部署难度大;调用链长,全链路跟踪困难; 系统复杂

    CentOS Linux 7.9 (2009) 发布

    CentOS 7.9 已发布,其开发团队也通过邮件列表宣布适用于 x86_64 架构CentOS Linux 7 (2009) 已正式 GA。CentOS 由 Red Hat

    WeCube 2.7.1 发布,一站式 IT 架构管理和管理工具

    WeCube简介 微众银行在分布式架构实践的过程,发现将银行核心系统构建于分布式架构之上,会遇到一些与传统单体应用不同的痛点(例如,服务器增多,部署难度大;调用链长,全链路跟踪困难; 系统复杂

    监控软件 wgcloud 更新,v3.2.7 重构告警模块

    WGCLOUD,server端基于springboot开发,agent端使用go编写。支持高并发高性能,核心模块包括:服务器集群监控,ES集群状态监控,CPU监控,内存监控,数据监控,docker监控,网络流量监控,服务心跳检测,应用进程管理,磁...

    架构实战(九):Spring Boot 集成 RocketMQ

    快速集成阿里开源消息队列 RocketMQ

    Java Web实战:发布和必备的12条Linux命令

    作为一名Java起步的从业人员,学会一些常用的Linux命令是必须的。

    DDDplus 1.0.2 发布,轻量级业务台开发框架

    ,充分考虑组织架构、技术债、学习门槛、可演进性、...

    Linux 上可以用Windows 计算器啦

    Uno Platform 方面表示,其已经成功地将 Windows 计算器(Windows Calculator)应用移植到了 Ubuntu Linux 上,名为 Uno Calculator。他们

    密码管理工具:1Password for Linux Beta发布

    1Password for Linux 首个 Beta 测试版已发布,正式版计划在明年初推出。1Password 是一款流行的密码管理软件,兼容 macOS、iOS、Windows 和

    「传世之作」Linux命令速查手册出炉!

    查看Linux系统信息 arch      #显示机器的处理器架构(1)uname -m  #显示机器的

    HashiCorp开源Boundary:安全访问动态主机服务

    HashiCorp 宣布开源 Boundary,此项目可帮助人员及从业者通过细粒度的授权安全地访问动态主机和服务,无需管理凭据或公开网络。 Boundary 旨在使用最小特权原则 (POLP

    架构实战:认识一下微服务架构

    微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。

    架构实战:一个可供中小团队参考的微服务架构技术栈

    作者近年一直在一线互联网公司(携程,拍拍贷等)开展微服务架构实践,根据我个人的一线实践经验和我平时对Spring Cloud的调研,我认为Spring Cloud技术栈的有些组件离生产级开发尚有

    Elasticsearch维宝典——监控实战

    本文从角度,对 ES 服务监控进行了系统性总结,涵盖监控工具选型、监控采集项筛选介绍,最后列举了几个借助监控发现的ES线上问题。

    精品推荐:微服务架构下静态数据通用缓存机制

    在分布式系统,特别是最近很火的微服务架构下,有没有或者能不能总结出一个业务静态数据的通用缓存处理机制或方案,这文章将结合一些实际的研发经验,尝试理清其中存在的关键问题以及探寻通用的解决之道。

    微软桌面开发团队成员称:不会将Windows迁移到Linux

    Canonical 桌面团队成员 Hayden Barnes 发表个人观点称,他认为微软不会将 Windows 迁移到 Linux。   近段时间以来,微软积极融合 Linux 的举措

    移动H5前端大性能优化方案(实战

    移动H5前端大性能优化方案(实战

    安全攻防系列一 安全基础概念

      该系列记录学习极客时间–安全攻防技能30讲相关内容 安全的本质 安全的本质就是保护数据被合法地使用。 数据:应用最核心的东西;如用户信息、订单信息等等 合法:大到法律法规、业务