RocketMQ 单机源码部署 自定义配置文件和端口以及acl权限配置解析

思路

1、我们首先配置完 namesrv和broker和acl认证的配置文件,然后直接使用-c指定配置文件来启动程序,就会非常明了,用户名密码要大于6,第一个用户我测试着不知道为什么始终有最高权限,大家尽量不要吧第一个用户给别人用。

1、下载源码

wget https://dist.apache.org/repos/dist/release/rocketmq/5.1.3/rocketmq-all-5.1.3-bin-release.zip

2、解压源码

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

3、修改配置文件

​ 1、创建conf/namesrv.conf文件

# 监听地址和端口
listenPort=1888

​ 2、修改conf/broker.conf文件

#开启用户认证
aclEnable=true
#指定认证配置文件
aclAccessResourcePath=/home/user/rocketmq-5.1.3/conf/plain_acl.yml

# 监听地址和端口
listenPort=1889

# Name Server 地址
namesrvAddr=127.0.0.1:1888

# Broker 的集群名称
brokerClusterName=DefaultCluster

# Broker 的名称
brokerName=broker-a

# Broker 的唯一标识
brokerId=0

# 消息文件的保留时间,以小时为单位
deleteWhen=04

# 消息文件的保留时间,以小时为单位
fileReservedTime=48

# Broker 的角色
brokerRole=ASYNC_MASTER

# 磁盘刷写类型
flushDiskType=ASYNC_FLUSH

#在发送消息时,自动创建服务器不存在的Topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
#删除文件时间点,默认是凌晨4点
deleteWhen=04
#文件保留时间,默认48小时
fileReservedTime=48
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/user/rocketmq-5.1.3/store
#commitLog存储路径
storePathCommitLog=/home/user/rocketmq-5.1.3/store/commitlog
#消费队列存储路径
storePathConsumeQueue=/home/user/rocketmq-5.1.3/store/consumequeue
#消息索引存储路径
storePathIndex=/home/user/rocketmq-5.1.3/store/index
#checkpoint 文件存储路径
storeCheckpoint=/home/user/rocketmq-5.1.3/store/checkpoint
#abort 文件存储路径
abortFile=/home/user/rocketmq-5.1.3/store/abort


4、配置conf/plain_acl.yml文件

accounts:
# 账户
- accessKey: useruser
# 是否是管理员---这里警告,第一个用户似乎始终有最高权限建议非管理员向后创建
  admin: true
  # 默认主题和订阅组,不用管
  defaultGroupPerm: SUB
  defaultTopicPerm: DENY
  groupPerms: null
  # 权限密码
  secretKey: useruser
  topicPerms: null
  # 白名单
  whiteRemoteAddress: null
dataVersion:
- counter: 32
  timestamp: 1691913241329
  # 全局白名单
globalWhiteRemoteAddresses: null

5、启动

#bin/mqshutdown broker # 停止运行,不建议在生产环境这么做
#bin/mqshutdown namesrv

## 启动nameserver
## nohup xxxxx & 可以让程序进入后台运行
 nohup bin/mqnamesrv -c /home/user/rocketmq-5.1.3/conf/namesrv.conf  & 
 
 ## 启动节点  -n必须显式指定注册到那个namesrv上
sleep 3  && nohup sh bin/mqbroker -n 23.95.254.26:1888 -c /home/user/rocketmq-5.1.3/conf/broker.conf &

6、检查节点和主题

 ## 检查节点数
 sh bin/mqadmin clusterList -n 127.0.0.1:1888
 ## 检查主题
 sh bin/mqadmin topicList -n 127.0.0.1:1888

如果无法查看请更改conf/tools.yml中的用户名和密码

7、可视化工具

https://rocketmq.apache.org/zh/docs/deploymentOperations/04Dashboard/#%E4%BB%8B%E7%BB%8D%E2%80%8B
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
RocketMQ NameServer 是 RocketMQ 的一个核心组件,主要负责管理 RocketMQ 集群中的各个 Broker 节点的信息,包括 Broker 的名称、IP 地址、状态等信息。在 RocketMQ 集群中,所有的 Broker 都需要向 NameServer 注册,以便 NameServer 能够掌握整个集群的状态信息。 RocketMQ NameServer 的源码位于 `rocketmq-namesrv` 模块中,其主要实现了以下功能: 1. 启动时加载配置文件,包括监听端口、存储路径、集群名称等信息; 2. 处理 Broker 节点的注册、注销请求,维护 Broker 节点的状态信息; 3. 处理 Consumer 节点的心跳请求,维护 Consumer 节点的状态信息; 4. 处理 Topic 的创建、删除请求,维护 Topic 的状态信息; 5. 提供查询 Broker 节点、Topic 等信息的接口。 RocketMQ NameServer 的核心类是 `NamesrvController`,它继承了 Netty 的 `NettyRemotingServer` 类,并实现了 `RequestProcessor` 接口,用于处理来自 Broker 和 Consumer 节点的请求。在 `NamesrvController` 中,还包含了 `RouteInfoManager`、`BrokerHousekeepingService`、`KVConfigManager` 等组件,用于维护集群状态信息和管理配置文件RocketMQ NameServer 的启动入口是 `main` 方法,它会加载配置文件并启动 `NamesrvController`。启动后,NameServer 会监听指定端口,等待来自 Broker 和 Consumer 节点的请求,并根据请求类型调用相应的处理方法进行处理。 总之,RocketMQ NameServer 的主要作用是管理整个 RocketMQ 集群的状态信息,确保集群中各个节点的状态始终保持同步。其源码实现比较复杂,需要深入理解 RocketMQ 的设计思想和架构原理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值