RocketMQ搭建全过程
RocketMQ下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.3.0/rocketmq-all-4.3.0-bin-release.zip
环境规划:
| 名称 | IP | 配置 |
|---|---|---|
| NameServer01 | 10.2.42.81 | 2C4G |
| NameServer02 | 10.2.42.82 | 2C4G |
| Broker-a Master | 10.2.42.83 | 1C2G |
| Broker-a Slave | 10.2.42.84 | 1C2G |
| Broker-b Master | 10.2.42.85 | 1C2G |
| Broker-b Slave | 10.2.42.86 | 1C2G |
修改配置文件
下载安装包,解压到opt目录下
wget https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.3.0/rocketmq-all-4.3.0-bin-release.zip
unzip rocketmq-all-4.3.0-bin-release.zip -d /opt
mv rocketmq-all-4.3.0-bin-release rocketMQ
进入配置文件目录进行修改
cd /opt/rocketMQ/conf/2m-2s-sync
vim broker-a.properties
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=10.2.42.81:9876;10.2.42.82:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
haListenPort=10912
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/alibaba-rocketmq/store
#commitLog 存储路径
storePathCommitLog=/data/alibaba-rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/alibaba-rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/data/alibaba-rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/data/alibaba-rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/data/alibaba-rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
vim broker-a-s.properties
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=10.2.42.81:9876;10.2.42.82:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10921
haListenPort=10922
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/alibaba-rocketmq/store
#commitLog 存储路径
storePathCommitLog=/data/alibaba-rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/alibaba-rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/data/alibaba-rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/data/alibaba-rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/data/alibaba-rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
vim broker-b.properties
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=10.2.42.81:9876;10.2.42.82:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
haListenPort=10912
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/alibaba-rocketmq/store
#commitLog 存储路径
storePathCommitLog=/data/alibaba-rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/alibaba-rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/data/alibaba-rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/data/alibaba-rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/data/alibaba-rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
vim broker-b-s.properties
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=10.2.42.81:9876;10.2.42.82:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10921
haListenPort=10922
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/alibaba-rocketmq/store
#commitLog 存储路径
storePathCommitLog=/data/alibaba-rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/alibaba-rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/data/alibaba-rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/data/alibaba-rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/data/alibaba-rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
修改日志目录
cd /opt/rocketMQ/conf
sed -i 's/\${user.home}/\/data\/alibaba-rocketmq/g' logback_broker.xml
sed -i 's/\${user.home}/\/data\/alibaba-rocketmq/g' logback_filtersrv.xml
sed -i 's/\${user.home}/\/data\/alibaba-rocketmq/g' logback_namesrv.xml
sed -i 's/\${user.home}/\/data\/alibaba-rocketmq/g' logback_tools.xml
修改完毕后将整个项目重新进行打包,分发到其他主机
cd /opt
tar zcvf rocketMQ.tar.gz rocketMQ/
scp rocketMQ.tar.gz xx.xx.xx.xx:/opt
创建目录
在上面6台服务器上分别执行如下命令,创建我们所需要的日志和数据目录
mkdir /data/alibaba-rocketmq/logs/rocketmqlogs/otherdays -p
mkdir /data/alibaba-rocketmq/store/{commitlog,config,consumequeue,index} -p
touch /data/alibaba-rocketmq/store/{checkpoint,abort}
启动NameServer
进入NameServer主机10.2.42.81/82,然后解压opt目录下的rocketMQ.tar.gz,然后启动NameServer
cd /opt
tar xf rocketMQ.tar.gz
## 启动
nohup /opt/rocketMQ/bin/mqnamesrv &
查看端口和进程是否起来
[root@DCA-APP-COM-MQ-NameServer01 bin]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 :::9876 :::*
LISTEN 0 128 :::22 :::*
也可以看日志如下表示启动成功
另一台相同的操作。
启动Broker
在opt目录下解压rocketMQ.tar.gz
cd /opt
tar xf rocketMQ.tar.gz
由于我们的服务器配置是1C2G,所以我们需要修改一下启动脚本,修改为如下配置即可
vim runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"
在10.2.42.83上启动
nohup /opt/rocketMQ/bin/mqbroker -c /opt/rocketMQ/conf/2m-2s-sync/broker-a.properties &
在10.2.42.84上启动
nohup /opt/rocketMQ/bin/mqbroker -c /opt/rocketMQ/conf/2m-2s-sync/broker-a-s.properties &
在10.2.42.85上启动
nohup /opt/rocketMQ/bin/mqbroker -c /opt/rocketMQ/conf/2m-2s-sync/broker-b.properties &
在10.2.42.86上启动
nohup /opt/rocketMQ/bin/mqbroker -c /opt/rocketMQ/conf/2m-2s-sync/broker-b-s.properties &
查看端口和进程是否启动成功,以10.2.42.83为例:
[root@DCA-APP-COM-MQ-BrokerM-S01 bin]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 :::10909 :::*
LISTEN 0 128 :::10911 :::*
LISTEN 0 50 :::10912 :::*
在NameServer上查看topic
[root@DCA-APP-COM-MQ-NameServer01 bin]# sh mqadmin topicList -n "10.2.42.81:9876;10.2.42.82:9876"
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
RMQ_SYS_TRANS_HALF_TOPIC
rocketmq-cluster
AUTO_CREATE_TOPIC_KEY
broker-b
BenchmarkTest
OFFSET_MOVED_EVENT
broker-a
SELF_TEST_TOPIC
部署监控平台
下载源码包
cd /root
wget https://github.com/apache/rocketmq-externals/archive/rocketmq-console-1.0.0.tar.gz
tar xf rocketmq-console-1.0.0.tar.gz
进入配置文件目录,修改配置文件
cd /root/rocketmq-externals-rocketmq-console-1.0.0/rocketmq-console/src/main/resources
vim application.properties
server.contextPath=
server.port=8080
#spring.application.index=true
spring.application.name=rocketmq-console
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
logging.config=classpath:logback.xml
#if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876
rocketmq.config.namesrvAddr=10.2.42.81:9876;10.2.42.82:9876
#if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true
rocketmq.config.isVIPChannel=
#rocketmq-console's data path:dashboard/monitor
rocketmq.config.dataPath=/data/alibaba-rocketmq/rocketmq-console
#set it false if you don't want use dashboard.default true
rocketmq.config.enableDashBoardCollect=true
编译
mvn clean package -Dmaven.test.skip=true
编译完成后会在target目录下生成rocketmq-console-ng-1.0.0.jar,上传到指定服务器并启动,我这里上传到10.2.42.81,启动如下:
nohup java -jar rocketmq-console-ng-1.0.0.jar &
浏览器访问如下http://10.2.42.81:8080:
添加topic
可以看到添加成功
命令行操作
查看topic
sh mqadmin topicList -n "10.2.42.81:9876;10.2.42.82:9876"
添加topic
sh mqadmin updateTopic -n "10.2.42.81:9876;10.2.42.82:9876" -c rocketmq-cluster -t qft-asyncNotify
RocketMQ搭建全过程的更多相关文章
- linux环境(CentOS-6.7)下redis集群的搭建全过程
linux环境下redis集群的搭建全过程: 使用mount命令将光盘挂载到/mnt/cdrom目录下: [root@hadoop03 ~]# mount -t iso9660 -o ro /dev/ ...
- Gerrit代码审核服务器搭建全过程
Gerrit代码审核服务器搭建全过程 转载请标明出处:http://blog.csdn.net/ganshuyu/article/details/8978614 环境:Ubuntu12.xx 1.建立 ...
- RocketMQ学习笔记(16)----RocketMQ搭建双主双从(异步复制)集群
1. 修改RocketMQ默认启动端口 由于只有两台机器,部署双主双从需要四个节点,所以只能修改rocketmq的默认启动端口,从官网下载rocketmq的source文件,解压后使用idea打开,全 ...
- RocketMQ学习笔记(4)----RocketMQ搭建双Master集群
前面已经学习了RockeMQ的四种集群方式,接下来就来搭建一个双Master(2m)的集群环境. 1. 双Master服务器环境 序号 ip 用户名 密码 角色 模式 (1) 47.105.145.1 ...
- 【分布式事务】基于RocketMQ搭建生产级消息集群?
导读 目前很多互联网公司的系统都在朝着微服务化.分布式化系统的方向在演进,这带来了很多好处,也带来了一些棘手的问题,其中最棘手的莫过于数据一致性问题了.早期我们的软件功能都在一个进程中,数据的一致性可 ...
- Git服务器搭建全过程分步详解【转】
转自:http://developer.51cto.com/art/201507/483448.htm GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用, ...
- 完整版的OpenLDAP搭建全过程
总结: 先写总结,再写正文,嘿嘿嘿.这还是第一次认真的写个文档,写个总结,哈哈.大概在一个月前,第一次听说这个东西,完全没有概念,刚开始的时候看理论的知识,看了几次之后就没看了,看不 ...
- Git服务器搭建全过程
GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用,那么我们可以自己搭建一台Git服务器. 下面我们就看看,如何在Ubuntu上搭建Git服务器.我们使用V ...
- 微信小程序语音识别服务搭建全过程解析(项目开源在github)
silk v3录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) ## 重要的写在前面 重要事项一: 目前本文中提到的API已支持微信小程序录音文件格式:silk v ...
随机推荐
- Idea离线安装plugins插件 如Lombok
由于公司不允许使用外网,之前用的idea 15 安装了一次.但是idea15的提示不够友好,今天升级idea2017.3.2,同样又需要安装,那就写个教程吧. 网上其他的安装教程不通用,也是针对不同i ...
- 条件变量 condition_variable wait
wait(阻塞当前线程,直到条件变量被唤醒) #include <iostream> #include <string> #include <thread> #in ...
- <context:component-scan base-package=""> 与 <context:annotation-config 区别
<context:component-scan base-package=""> <context:annotation-config (2012-11-16 2 ...
- GeoGebra简单使用
上课过程中的一些知识和一丢丢工具使用例子 1.常用的变量输入 2.好用的函数检视工具 3.使用动态的移动,关键是右键-开启跟踪 4.输入指令(推荐用英文输入,因为有提示)
- Python-气象-大气科学-可视化绘图系列(一)——利用xarray读取netCDF文件并画图(代码+示例)
本文原创链接:https:////www.cnblogs.com/zhanling/p/12192978.html 1 import numpy as np import xarray as xr i ...
- testNG 断言
testNG提供一个Assert类,来判断输出值是否与预期值一致,Assert常用的方法有: Assert.assertEquals():此方法可以有两个参数值,也可以有3个参数值,参数的顺序是 ac ...
- java中的模运算规则
取模运算定义 如果a和d是两个自然数,d非零,可以证明存在两个唯一的整数 q 和 r,满足 a = qd + r 且0 ≤ r < d.其中,q 被称为商,r 被称为余数. 运算实例 java模 ...
- SpringCloud(三)学习笔记之Ribbon
spring Cloud Ribbon 是一个客户端的负载均衡器,它提供对大量的HTTP和TCP客户端的访问控制. 客户端负载均衡即是当浏览器向后台发出请求的时候,客户端会向 Eureka Serve ...
- Java去除ArrayList集合中重复字符串的案例
ArrayList去除集合中的字符串重复值 分析: A:创建集合对象 B:添加多个字符串元素 C:创建新集合 D:遍历旧集合,获取得到每一个元素 E:拿着个元素到新集合去找,看有没有 有:不进去 没有 ...
- 一图解析MongoDB
了解MongoDB,这一张图就够了: 版权所有,转载请注明出处.