前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文读懂RocketMQ消息跟踪与acl权限控制

一文读懂RocketMQ消息跟踪与acl权限控制

原创
作者头像
QGS
发布2024-04-24 21:18:56
2080
发布2024-04-24 21:18:56
举报
文章被收录于专栏:QGS星球QGS星球

RocketMQ开启消息跟踪

消息轨迹简单来说就是日志,其把消息的生产、存储、消费等所有的访问和操作日志。

RocketMQ消息轨迹的优劣:

优势:

实时监控:消息轨迹可以实时记录消息的发送、消费等关键事件,提供实时监控和追踪能力,方便运维人员进行故障排查和性能优化。

故障定位:通过消息轨迹,可以准确地定位消息在整个消息队列系统中的位置,帮助快速定位故障点,提高故障排查效率。

业务分析:消息轨迹可以提供详细的消息流转信息,帮助业务人员进行数据分析和业务监控,了解消息的处理情况和延迟情况。

劣势:

存储开销:消息轨迹需要记录大量的消息流转信息,会增加存储开销。对于大规模的消息系统,可能需要额外的存储资源来支持消息轨迹功能。

网络开销:消息轨迹需要将消息流转信息发送到监控系统或存储系统,会增加网络开销。对于高并发的消息系统,可能会对网络带宽和性能造成一定影响

1.修改配置文件broker.conf ,添加traceTopicEnable=true

2.重启broker

3.生产者开启消息轨迹

enable-msg-trace: true

@Test void sendTraceMsg() { /** * 发送同步消息 * destination 目的地-主题 * payload 消息 */ rocketMQTemplate.syncSend("traceTopicTest", "轨迹消息"); }

MQ面板消息查询

24098A55348F66E0F191D52199A60918544063947C6B8FF3FF1D0000

4.消费者开启消息轨迹

开启消息轨迹,增加开销,性能下降

@Component @RocketMQMessageListener(topic = "traceTopicTest", consumerGroup = "traceConsumerGroup-springboot", enableMsgTrace = true //开启消息轨迹,增加开销,性能下降 ) public class traceMQListener implements RocketMQListener<MessageExt> { /** * onMessage 消费者方法 * @param messages 消息内容 */ @Override public void onMessage(MessageExt messages) { //不报错就是签收信息, //报错就是重试,重试三次后还是报错,就代表消费失败,会重新入队 (根据yml配置) System.out.println("接收到消息:"+new String(messages.getBody())); } }

RocketMQ开启用户acl权限控制

RocketMQ支持通过ACL(Access Control List)权限控制来保护消息队列的安全性

vim broker.conf

aclEnable=true

配置账号密码

vim plain_acl.yml

开启管理员账号

开启用户acl权限控制需要重启mqnamesrv

生产者

yml配置用户名密码连接RocketMQ

producer: #用户名+密码 access-key: rocketmq2 secret-key: 12345678

消费者

yml配置用户名密码连接RocketMQ

consumer: #用户名+密码 access-key: rocketmq2 secret-key: 12345678

rocketmq-dashboard-1.0.0 配置key

rocketmq-dashboard-1.0.0开启用户登入

消息模型Message Model

RocketMQ 主要由 Producer、Broker、Consumer 三部分组成,其中 Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个 Topic 的消息,每个Topic 的消息也可以分片存储于不同的 Broker。Message Queue 用于存储消息的物理地址,每个 Topic 中的消息地址存储于多个 Message Queue 中。ConsumerGroup 由多个 Consumer 实例构成。

消息生产者Producer

负责生产消息,一般由业务系统负责生产消息。一个消息生产者会把业务应用系统里产生的消息发送到 broker 服务器。RocketMQ 提供多种发送方式,同步发送、异步发送、顺序发送、单向发送。同步和异步方式均需要 Broker 返回确认信息,单向发送不需要。

消息消费者Consumer

负责消费消息,一般是后台系统负责异步消费。一个消息消费者会从 Broker 服务器拉取消息、并将其提供给应用程序。从用户应用的角度而言提供了两种消费形式:拉取式消费、推动式消费。

主题Topic

表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ 进行消息订阅的基本单位。

代理服务器Broker Server

消息中转角色,负责存储消息、转发消息。代理服务器在 RocketMQ 系统中负责接收从生产者发送来的消息并存储、同时为消费者的拉取请求作准备。代理服务器也存储消息相关的元数据,包括消费者组、消费进度偏移和主题和队列消息等。

名字服务Name Server

名称服务充当路由消息的提供者。生产者或消费者能够通过名字服务查找各主题相应的Broker IP 列表。多个 Namesrv 实例组成集群,但相互独立,没有信息交互。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RocketMQ开启消息跟踪
    • 1.修改配置文件broker.conf ,添加traceTopicEnable=true
      • 2.重启broker
        • 3.生产者开启消息轨迹
          • 4.消费者开启消息轨迹
          • RocketMQ开启用户acl权限控制
            • vim broker.conf
              • 配置账号密码
                • 开启管理员账号
                  • 生产者
                    • 消费者
                      • rocketmq-dashboard-1.0.0 配置key
                        • rocketmq-dashboard-1.0.0开启用户登入
                        相关产品与服务
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档