Centos7部署rocketmq分片集群

Centos7部署rocketmq分片集群

一、环境准备

官网:https://rocketmq.apache.org/

#rocketmq依赖环境:
1、JDK1.8+
2、Maven 3.2X
3、Git
PS:rocketmq默认jdk的位置为/usr/local/jdk,若位置不在此处,需要手动修改配置文件

二、部署rocketmq

2.1、下载rocketmq

wget https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.9.0/rocketmq-all-4.9.0-bin-release.zip
#更新下载链接 2021.20.14
wget https://archive.apache.org/dist/rocketmq/4.9.0/rocketmq-all-4.9.0-bin-release.zip

2.2、解压包

unzip rocketmq-all-4.9.0-bin-release.zip

2.3、根据实际,修改jvm参数

#修改runserver.sh、runbroker.sh
1、修改runserver.sh
vim rocketmq/bin/runserver.sh
... ...
#可以在此处修改jdk位置
export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=$(dirname $0)/..
export CLASSPATH=.:${BASE_DIR}/conf:${CLASSPATH}
... ...
#在此处修改内存堆栈大小
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
... ...
2、修改runbroker.sh
vim rocketmq/bin/runbroker.sh
... ...
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g"
... ...

三、修改配置文件,配置集群

本次实验配置3m-3s集群

3.1、broker.properties文件设置

# 集群名,不同broker节点集群名是一样的
brokerClusterName=1data
# broker名字,不同broker节点brokerName是唯一的
brokerName=broker-a
# 0表示Master,大于0表示 Slave
brokerId=0
#nameServer地址,多个用英文分号分割
namesrvAddr=10.10.101.110:9876;10.10.101.111:9876;10.10.101.112:9876
# 删除文件时间点,默认凌晨 4点
deleteWhen=04
# 文件保留时间,默认 48 小时
fileReservedTime=48
# 当前节点角色,ASYNC_MASTER=异步复制Master模式,SYNC_MASTER=同步双写Master模式,复制节点设置为SLAVE
brokerRole=ASYNC_MASTER
# 刷盘模式,ASYNC_FLUSH=异步刷盘,SYNC_FLUSH=同步刷盘
flushDiskType=ASYNC_FLUSH
# 数据存储路径(同一节点上master与slave需在不同目录)
storePathRootDir=/data/server-data/rocketmq/store
# commitLog 存储路径(同一节点上master与slave需在不同目录)
storePathCommitLog=/data/server-data/rocketmq/store/commitlog
# 消费队列存储路径存储路径(同一节点上master与slave需在不同目录)
storePathConsumeQueue=/data/server-data/rocketmq/store/consumequeue
# 消息索引存储路径(同一节点上master与slave需在不同目录)
storePathIndex=/data/server-data/rocketmq/store/index
# checkpoint 文件存储路径(同一节点上master与slave需在不同目录)
storeCheckpoint=/data/server-data/rocketmq/store/checkpoint
# abort 文件存储路径(同一节点上master与slave需在不同目录)
abortFile=/data/server-data/rocketmq/store/abort
# 是否允许 Broker 自动创建Topic,建议关闭
autoCreateTopicEnable=false
# 是否允许 Broker 自动创建订阅组,建议关闭
autoCreateSubscriptionGroup=false
# 设置brokerIP,如果不设置当服务器有很多网卡,默认会读取第一个网卡的IP地址(如安装docker后),会导致客户端无法连接
brokerIP1=10.10.101.110
# broker对外服务的监听端口,默认10911(同一节点启动多个服务,需要修改默认端口)
listenPort=10911

3.2、namesrv.properties文件设置

# RocketMQ 主目录
rocketmqHome=/usr/local/rocketmq
# kv 配置文件路径,包含顺序消息主题的配置信息
kvConfigPath=/root/namesrv/kvConfig.json
# 环境
productEnvName=center
# 是否开启集群测试
clusterTest=false
# 是否支持顺序消息
orderMessageEnable=false
# 服务端监听端口
listenPort=9876
# Netty 业务线程池线程个数
serverWorkerThreads=8
# Netty public 任务线程池线程个数,Netty 网络设计,根据业务类型会创建不同的线程池,比如处理发送消息、消息消费、心跳检测等。如果该业务类型(RequestCode)未注册线程池,则由 public 线程池执行
serverCallbackExecutorThreads=0
# IO 线程池线程个数,主要是 NameServer、Broker 端解析请求、返回响应的线程个数,这类线程池主要是处理网络请求的,解析请求包,然后转发到各个业务线程池完成具体的业务操作,然后将结果再返回调用方
serverSelectorThreads=3
# send oneway 消息请求并发度
serverOnewaySemaphoreValue=256
# 异步消息发送最大并发度
serverAsyncSemaphoreValue=64
# 网络连接最大空闲时间,单位秒,如果连接空闲时间超过该参数设置的值,连接将被关闭
serverChannelMaxIdleTimeSeconds=120
# 网络 socket 发送缓存区大小,单位 B,即默认为 64KB
serverSocketSndBufSize=65535
# 网络 socket 接收缓存区大小,单位 B,即默认为 64KB
serverSocketRcvBufSize=65535
# ByteBuffer 是否开启缓存,建议开启
serverPooledByteBufAllocatorEnable=true
# 是否启用 Epoll IO 模型
useEpollNativeSelector=true

四、启动集群

nohup /data/server-side/rocketmq/bin/mqnamesrv -c /data/server-side/rocketmq/conf/namesrv.properties &
nohup /data/server-side/rocketmq/bin/mqbroker -c /data/server-side/rocketmq/conf/broker.properties &

五、安装控制台

5.1、下载源码

cd rocketmq
git clone https://github.com/apache/rocketmq-externals
#更新下载链接 2021.10.14
wget https://github.com/apache/rocketmq-externals/archive/refs/tags/rocketmq-console-1.0.0.tar.gz

5.2、修改配置文件

vim rocketmq/rocketmq-externals/rocketmq-console/src/main/resources/application.properties
# 服务端口号
server.port=8081
# NameServer服务地址,多台服务器用英文分号分割
rocketmq.config.namesrvAddr=10.0.27.132:9876;10.0.27.133:9876;10.0.27.134:9876
# mq数据路径,可以自己修改
rocketmq.config.dataPath=/home/rocketmq/rocketmq-console/data

5.3、编译

cd rocketmq/rocketmq-externals/rocketmq-console
mvn clean package -Dmaven.test.skip=true

5,4、运行

java -jar target/rocketmq-console-ng-2.0.0.jar

5.7、打开浏览器访问

http://[服务器IP]:[端口号]

本文作者:大胡萝卜没有须

本文链接:https://www.cnblogs.com/c-moon/p/16789832.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   大胡萝卜没有须  阅读(263)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 此生不换 青鸟飞鱼
此生不换 - 青鸟飞鱼
00:00 / 00:00
An audio error has occurred.