如果一个公司有很多技术团队,每个技术团队都会使用RocketMQ集群中的部分Topic,那么此时可能就会有一个问题了,如果订单团队使用的Topic,被商品团队不小心写入了错误的脏数据,那怎么办呢?
此时就需要在RocketMQ中引入权限功能,也就是说规定好订单团队的用户只能使用“OrderTopic”,然后商品团队的用户只能使用"ProductTopic",大家相互之间不能混乱的使用别人的Topic。
要在RocketMQ中实现权限控制也不难,首先我们需要在broker端放一个额外的ACL权限控制配置文件,里面需要规定好权限,包括什么用户对哪些Topic有什么操作权限,这样的话,各个Broker才知道你每个用户的权限。
首先在每个Broker的配置文件里需要设置aclEnable=true这个配置,开启权限控制。
其次,在每个Broker部署的机器的${ROCKETMQ_HOME}/store/config目录下,可以放一个plain_acl.yml的配置文件,这个里面就可以进行权限配置,类似下面这样子:
# 这个参数就是全局性的白名单
# 这里定义的ip地址,都是可以访问Topic的
globalWhiteRemoteAddresses:
- 13.21.33.*
-</