手拉手RocketMQ消息跟踪与acl权限控制
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开启用户登入
- 点赞
- 收藏
- 关注作者
评论(0)