手拉手RocketMQ消息跟踪与acl权限控制

2024-03-30 11:20

本文主要是介绍手拉手RocketMQ消息跟踪与acl权限控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境介绍

技术栈

springboot+mybatis-plus+mysql+rocketmq

软件

版本

mysql

8

IDEA

IntelliJ IDEA 2022.2.1

JDK

17

Spring Boot

3.1.7

dynamic-datasource

3.6.1

mybatis-plus

3.5.3.2

rocketmq

4.9.4

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开启用户登入

这篇关于手拉手RocketMQ消息跟踪与acl权限控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/861358

相关文章

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

使用C/C++调用libcurl调试消息的方式

《使用C/C++调用libcurl调试消息的方式》在使用C/C++调用libcurl进行HTTP请求时,有时我们需要查看请求的/应答消息的内容(包括请求头和请求体)以方便调试,libcurl提供了多种... 目录1. libcurl 调试工具简介2. 输出请求消息使用 CURLOPT_VERBOSE使用 C

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

SpringBoot 自定义消息转换器使用详解

《SpringBoot自定义消息转换器使用详解》本文详细介绍了SpringBoot消息转换器的知识,并通过案例操作演示了如何进行自定义消息转换器的定制开发和使用,感兴趣的朋友一起看看吧... 目录一、前言二、SpringBoot 内容协商介绍2.1 什么是内容协商2.2 内容协商机制深入理解2.2.1 内容

Mybatis拦截器如何实现数据权限过滤

《Mybatis拦截器如何实现数据权限过滤》本文介绍了MyBatis拦截器的使用,通过实现Interceptor接口对SQL进行处理,实现数据权限过滤功能,通过在本地线程变量中存储数据权限相关信息,并... 目录背景基础知识MyBATis 拦截器介绍代码实战总结背景现在的项目负责人去年年底离职,导致前期规

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去