RocketMQ的安装及注意事项

       要安装rocketmq,第一步当然是去获取安装包了,目前最新包是4.7.0版本的,方式https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.7.0/rocketmq-all-4.7.0-bin-release.zip,我这里是获取的编译完成后的安装包,当然你也可以直接获取https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.7.0/rocketmq-all-4.7.0-source-release.zip源码来自己编译生成,编译方式可以在http://rocketmq.apache.org/docs/quick-start/这个文章下面看到。

       第二步获取到压缩包后先解压,解压方式不懂的可以百度下,我们都是在Linux环境进行部署。

       第三步我们创建一个文件夹用来定义消息存储的相关东西,定义如下路径:

       1.存储路径:storePathRootDir=/data/rocketmq-data/store

       2.commitLog 存储路径:storePathCommitLog=/data/rocketmq-data/store/commitlog

       3.消费队列存储路径存储路径:storePathConsumeQueue=/data/rocketmq-data/store/consumequeue

       4.消息索引存储路径:storePathIndex=/data/rocketmq-data/store/index

       5.checkpoint 文件存储路径:storeCheckpoint=/data/rocketmq-data/store/checkpoint

       6.abort 文件存储路径:abortFile=/data/rocketmq-data/store/abort

       注意上面的1,2,3,4都是文件夹,可以通过mkdir xxx的方式创建,5和6的checkpoint 和abort 都是文件,可以通过touch xxx的方式创建,这里一定要小心,不然无法启动rocketmq服务器。

       第四步创建一个服务端broker启动的配置文件broker-b.properties如下:

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
 
#brokerClusterName=DefaultCluster
#brokerName=broker-a
#brokerId=0
#deleteWhen=04
#fileReservedTime=48
#brokerRole=ASYNC_MASTER
#flushDiskType=ASYNC_FLUSH
 
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样,主从节点配置的名称是一样的
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=1.2.3.5:9876;1.2.3.6:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
haListenPort=10912
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=18
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/rocketmq-data/store
#commitLog 存储路径
storePathCommitLog=/data/rocketmq-data/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/rocketmq-data/store/consumequeue
#消息索引存储路径
storePathIndex=/data/rocketmq-data/store/index
#checkpoint 文件存储路径
storeCheckpoint=/data/rocketmq-data/store/checkpoint
#abort 文件存储路径
abortFile=/data/rocketmq-data/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色,如果是从节点就选择SLAVE
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
#强制指定本机IP,需要根据每台机器进行修改。官方介绍可为空,系统默认自动识别,但多网卡时IP地址可能读取错误
#brokerIP1=1.2.3.5

       该文件也可以存放在/data/rocketmq-data/config的文件夹下面,完成以上的配置就大概完成了rocketmq的配置。在实际运用中你可能会遇到

the message is illegal, maybe msg body or properties length not matched. msg body length limit 128k, msg properties length limit 32k.

       它的意思就是你传的数据超过了你配置的消息限制大小,这个时候我们需要将上面配置中的 

maxMessageSize=65536

调大一些,满足你应用的需要。 

       第五步是修改broker节点的启动日志路径,找到解压出来的rocketmq的文件夹下的conf文件夹下面的logback_broker.xml配置文件,把下面的日志路径修改成自己的就可以了。

       第六步启动rocketmq,在解压出来的rocketmq文件夹下的bin文件夹下面:

       1.启动命名服务器,也即可以理解为一个中间转换站:

./mqnamesrv &

      2.启动broker节点:

./mqbroker -c /data/rocketmq-data/conf/broker-b.properties &

       启动完成后,将会看到如下界面:

       我们完成这个启动后,rocketmq还提供了一个监控的界面,下载路径是https://github.com/apache/rocketmq-externals,下载完成后我们去找到rocketmq-console文件,这个就是我们需要的监控界面,在该文件夹下面找到resource下面的application.properties配置文件,我们需要修改以下几个地方

rocketmq.config.namesrvAddr=1.2.3.5:9876
rocketmq.config.dataPath=/data/rocketmq-data

       修改完成后,我们就可以进行编译了,在rocketmq-console文件夹下面通过命令

mvn clean package -Dmaven.test.skip=true

      生成了rocketmq-console-ng-1.0.1.jar就是我们需要的启动jar了,把它部署到对应的服务器上面,通过命令

java -jar rocketmq-console-ng-1.0.1.jar &

      就可以启动了,连接界面看下1.2.3.5:8080,监控如图所示

你可能感兴趣的:(RocketMQ)