上一篇 架构运维篇(四):Centos7/Linux中Tomcat安装SSL证书实践

这一篇讲一下在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

2、其他镜像下载

下载地址: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的默认端口,一定要先启动Name Server后启动Broker

关闭服务

sh mqshutdown namers

sh mqshutdown broker

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

搭建RocketMQ监控平台

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

第一步:下载项目

GitHub地址:https://github.com/apache/rocketmq-externals.git

如下图打包下载:

第二步:修改配置文件

打开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里面进行修改和打包操作。

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

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

[root@localhost data]# java -jar rocketmq-console-ng-1.0.1.jar

第五步:测试结果

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

总结

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 &

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

centos7 如何安装部署k8s_架构运维篇(五):Centos7/Linux中安装部署RocketMQ相关推荐

  1. Linux怎么卸载unbound,系统运维|如何在 Arch Linux 中安装 DNSCrypt 和 Unbound

    DNSCrypt 是一个用于对 DNS 客户端和 DNS 解析器之间通信进行加密和验证的协议.它可以阻止 DNS 欺骗或中间人攻击. DNSCrypt 可用于大多数的操作系统,包括 Linux,Win ...

  2. linux crontab不运行,Linux运维知识之解决Linux中crontab不执行ntpdate问题

    本文主要向大家介绍了Linux运维知识之解决Linux中crontab不执行ntpdate问题,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 解决Linux中crontab尚未 ...

  3. linux中怎么安装ded包_快速提示:如何在Linux中安装.deb和.tar文件 - push博客

    在本快速教程中,我将解释如何使用终端命令在Linux中安装程序.本教程使用LinuxMint 18(肉桂64位),但是下面提供的命令对于其他版本的Linux是通用的,比如Ubuntu.对于那些刚接触l ...

  4. linux cad 安装教程,如何在Ubuntu 18.04/16.04/Linux中安装FreeCAD 0.18

    FreeCAD,免费和开源3D参数化建模器,最近发布了0.18版,支持Python 3和Qt 5. 以下是如何在Ubuntu 16.04,Ubuntu 18.04和Ubuntu 19.04中安装它. ...

  5. 部署 SaltStack 自动化运维工具,并简易批量安装 httpd 服务

    SaltStack 介绍 SaltStack 是一个基于 Python 开发的一套架构配置管理工具,采用 C/S模式,server端就是salt的master,client端就是minion,mini ...

  6. caffe-gpu ubuntu 安装_如何在Linux中安装vnStat和vnStati监视网络流量

    VnStat是针对Linux和BSD的基于控制台的网络流量监视工具设计.它将保留所选网络接口的网络流量日志.为了生成日志,vnStat使用内核提供的信息. 换句话说,它不会嗅探网络流量,并且可以确保系 ...

  7. ubuntu 安装yum_如何在 Linux 中安装微软的 .NET Core SDK | Linux 中国

    本分步操作指南文章解释了如何在 Linux 中安装 .NET Core SDK 以及如何使用 .NET 开发出第一个应用程序.-- Sk致谢译自 | ostechnix.com 作者 | Sk译者 | ...

  8. debian linux如何安装软件,怎样在Debian Linux中安装软件?

    Debian Linux附带了超过 29000 个软件包,这些预先编译好的软件被包裹成一种良好的格式以便于在您的机器上进行安装.如果您使用的是Debian的桌面版本,则可以使用Synaptic通过点击 ...

  9. Centos7部署轻量级自动化运维工具pssh (亲测)

    下载pssh安装包 [root@localhost ~]# wget https://files.pythonhosted.org/packages/60/9a/8035af3a7d3d1617ae2 ...

最新文章

  1. 求数组当中子数组最大和
  2. Canvas做股票数据走势图实践分享(一)
  3. python编程语言能干什么-这 13个,1 行Python代码能干哪些事?
  4. 从源代码剖析Mahout推荐引擎
  5. Android 弱引用和软引用
  6. 图片去字工具_这些免费工具轻松提取图片中的文字,别再傻傻地手工去输了
  7. ArcGIS Engine 10开发环境的一些常见问题(转载)
  8. c#中的接口的定議以及接口與抽象类的區別
  9. visual studio 安装教程
  10. iOS视频播放的横屏与竖屏的处理
  11. linux打开word、excel等
  12. 分享5个国外较好的图片网站
  13. python123随机密码生成器_python实例--随机密码生成器
  14. 面试|详细分析ScheduledThreadPoolExecutor(周期性线程池)的原理
  15. 华为应用市场2021年度安全隐私报告发布:护航应用安全是场“持久战”
  16. android 自定义文件夹管理器
  17. 利用MC34063升压180V的心(辛)路(酸)历(经)程(历)
  18. 操作教程:大华摄像头通过GB28181协议注册EasyCVR平台的详细配置
  19. oracle 多表导出,oracle多表导出dmp
  20. spring文件上传拦截器及异常处理

热门文章

  1. kettle的变量空间接口VariableSpace实现与委托模式
  2. python启动远端 exe_python打包exe开机自动启动的实例(windows)
  3. 东财计算机应用基础在线作业一,东财《计算机应用基础》综合作业
  4. CentOS7如何关闭防火墙
  5. WIN 10进入休眠、睡眠、关机的命令
  6. Mybatis中#{}与${}的使用
  7. Java中Int转byte分析
  8. django框架基础
  9. 1到10所有数字相加求和
  10. 利用ISA实现网站发布协议重定向