今天的博客主题
MQ消息中间件 --》RocketMQ --》RocketMQ入门(五)
本文主要对RocketMQ服务安装搭建部署详细介绍及控制台安装部署
目录
下载
官网下载地址:https://rocketmq.apache.org/dowloading/releases/
在这个页面可以好好的看下,有下载指南什么的。
一般下载都不下载最新版,找一个稳定比较新的版本下载。
我们就下载一个4.5.0版本的来进行学习。4.5.0版本是19年3月发版的 算是比较新的了 也比较稳定。最新版本的是4.5.1
源码包下载下来3M左右,二进制文件下载下来有13M左右的样子。
这两个下载下来都可以来启动MQ的服务。只不过源码的比较麻烦,需要你的机器是64位的,JDK1.8,Maven3.2,git,和4G的内存
如果想通过源码自行参照官方文档:https://rocketmq.apache.org/docs/quick-start/
我就不贴到这里了。
二进制文件就是已经打好包,然后一些服务器脚本命令来执行就OK了。对于二进制下载下来的ZIP包解压之后还是有比较了解下里面的目录,这样对以后的MQ调优上有一定的帮助的。这就是解压缩好的一个目录
安装部署
RocketMQ安部署很简单,开箱即用,你所需要关注的就是那些配置文件。
就是下载好之后,解压ZIP包,使用脚本命令启动就已经安装部署好了。
至于需要部署什么模式的就看需求选择了。
2m-2s-async
2m-2s-sync
2m-noslave
dledger
启动/停止服务
启停服务的时候要注意一下,是有一个顺序的。
先启动Name Server,在启动Broker。
先启后停,后启先停。
进入bin目录下
启动Name Server命令:nohup sh mqnamesrv &
这时候直接 tailf nohup.out就是记录的一些启动日志
在日志文件出现这么一句话:The Name Server boot success. serializeType=JSON 说明NameServer启动成功了。
启动Broker命令:nohup sh mqbroker -n localhost:9876 &
加载自定义配置文件启动命令:nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf &
在日志文件出现这么一句话:The broker[localhost.localdomain, 10.10.16.20:10911] boot success. serializeType=JSON and name server is localhost:9876
说明Broker也启动成功了。
注意:有同学使用机器的内存比较小,在启动的时候会出现内存分配不足的异常问题
找到bin目录下的两个文件runserver.sh和runbroker.sh编译一下
将这段话修改下:JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
-Xms4g -Xmx4g -Xmn2g 就这三个参数调小一点也可以,这个配置是官方建议的,一般在学习的时候用不了这么大。根据自己机器情况调吧。内存单位也要改比如 -Xms512m -Xmx512m -Xmn256m
在看下通过命令停止服务,进入到bin目录下
停止Broker命令:sh mqshutdown broker
停止NameServer命令:sh mqshutdown namesrv
到这里一个单节点主服务就安装部署完成了。
MQ控制台安装部署
下载源码地址:https://github.com/apache/rocketmq-externals
把rocketmq-console项目源码clone到本地,需要改一些配置。
使用maven命令将这个项目编译打包,打成一个jar包就行。
把打好的jar包,传到服务器,直接用命令启动jar包就行了。nohup java -jar jar包名 & 也可以指定日志输出文件名
启动完之后浏览器直接访问,ip:port就ok了。
控制台这一块不是很复杂,就不一一介绍,况且还能切换为中文。。。
RocketMQ包模块
rocketmq-common:通用的枚举、基类方法、或者数据结构,包名有admin、consumer、filter、hook、message
rocketmq-remoting:使用netty的客户端、服务端,使用fastjson序列化,自定义二进制协议
rocketmq-srvutil:只有一个ServerUtil类,只提供Server程序依赖,尽可能减少客户端依赖
rocketmq-store:消息存储,索引,consumerLog,commitLog等
rocketmq-client:客户端,消息发送和接收,包含consumer和producer。
rocketmq-filtersrv:消息过滤器
rocketmq-broker:服务端,接受消息,存储消息,consumer拉取消息
rocketmq-tools:命令行工具
rocketmq-namesrv:类似服务注册中心,broker在这里注册,consumer和producer在这里找到broker地址