RocketMQ 生产实战:常见问题剖析与故障排查

RocketMQ05-实践问题 文章目录一、使用RocketMQ如何保证消息不丢失?1、哪些环节会有丢消息的可能?2、RocketMQ消息零丢失方案1》 生产者使用事务消息机制保证消息零丢失2》RocketMQ配置同步刷盘+Dledger主从架构保证MQ自身不会丢消息3》消费者端不要使用异步消费机制4》RocketMQ特有的问题,NameServer挂了如何保证消息不丢失?二、使用RocketMQ如何保证消息顺序1、为什么要保证消息有序?2、如何保证消息有序?三、使用RocketMQ如何快速处理积压消息?1、如何确定RocketMQ有大量 阅读详情

摘要:RocketMQ 作为一款高性能、高吞吐量的分布式消息中间件,在微服务架构中扮演着“削峰填谷”和“解耦”的核心角色。然而,在复杂的生产环境中,消息丢失、消息积压、重复消费等问题时有发生。本文将结合源码与实战经验,深入拆解这些痛点,提供可落地的解决方案。


一、 全局视野:生产问题全景图

在深入具体技术细节前,我们先通过一张思维导图建立 RocketMQ 生产问题的分类体系。

RocketMQ 生产问题

消息可靠性

消息丢失

生产者发送失败

Broker 刷盘/同步丢失

消费者提交 Offset 错误

消息重复

网络抖动导致 ACK 丢失

Rebalance 重平衡

系统可用性

Broker OOM

NameServer 挂掉

集群脑裂

性能瓶颈

Lag

PageCache 锁竞争

JVM GC 停顿

一致性问题

顺序消息乱序

事务消息状态不一致


二、 核心痛点一:消息丢失 (Message Loss)

消息丢失是业务无法容忍的致命问题。RocketMQ 在 Producer、Broker、Consumer 三个环节都可能出现漏洞。

1. 生产者端 (Producer)

问题现象:业务日志显示发送成功,但 Broker 端查不到消息。

原因分析:

  • 使用了 Oneway 发送模式(只管发,不等待响应)。
  • 异步发送时,未正确处理回调中的异常。

✅ 解决方案:使用同步发送或异步发送带回调,并结合重试机制。

// 生产级代码示例:可靠的异步发送
producer.setRetryTimesWhenSendAsyncFailed(3); // 失败重试次数

producer.send(msg, new SendCallback() {
    @Override
    public void onSuccess(SendResult sendResult) {
        // 业务逻辑:记录发送成功日志
        log.info("Send success: {}", sendResult.getMsgId());
    }

    @Override
    public void onException(Throwable e) {
        // 关键:异常处理
        log.error("Send failed, topic: {}", msg.getTopic(), e);
        // 兜底策略:写入本地数据库/文件,由后台线程定时重试(最终一致性)
        saveToLocalDeadLetter(msg);
    }
});

2. Broker 端

问题现象:Broker 宕机,重启后由于刷盘机制导致部分内存消息丢失。

✅ 解决方案:权衡性能与可靠性,调整 Broker 配置。

  • flushDiskType: 默认为 ASYNC_FLUSH(异步刷盘)。金融级业务建议修改为 SYNC_FLUSH(同步刷盘)。
  • brokerRole: 默认为 ASYNC_MASTER。建议修改为 SYNC_MASTER(同步复制),保证主从数据一致。

3. 消费者端 (Consumer)

问题现象:消费者拉取了消息,业务逻辑未执行完就宕机,但 Offset 已经提交。

原因分析:过早返回 CONSUME_SUCCESS 或代码中使用了自动提交 Offset(RocketMQ 默认是手动逻辑确认)。

✅ 解决方案:确保业务逻辑幂等且执行成功后再返回状态。

Consumer Broker Producer Consumer Broker Producer opt [业务执行失败] 1. 发送消息 2. 返回 ACK (刷盘成功) 3. 拉取消息 4. 执行业务逻辑 (DB操作等) 返回 RECONSUME_LATER 5. 返回 CONSUME_SUCCESS 6. 更新 Offset

三、 核心痛点二:消息积压 (Message Accumulation)

当生产速度远大于消费速度,或者消费者出现 Bug 卡死时,会发生积压。

1. 紧急处理流程

如果线上已经积压了百万条消息,简单的重启或增加消费者可能无效(受限于 Queue 的数量)。

是

否

是

否 (Consumer数量 = Queue数量)

发现消息严重积压

消费者是否有 Bug?

修复 Bug 并发布

Queue数量是否足够?

增加 Consumer 实例扩容

启动临时消费者集群

只拉取消息不处理

转发到临时 Topic (10倍 Queue)

启动更多消费者消费临时 Topic

2. 扩容实战代码(临时转发策略)

当 Queue 只有 4 个,但你需要 20 个消费者来加快速度时,可以使用“搬运工”模式:

// 搬运工消费者:只负责将消息转发到 partitions 更多的临时 Topic
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
    try {
        List<Message> newMsgs = msgs.stream()
            .map(m -> new Message("TEMP_TOPIC_EXPANDED", m.getBody())) // 发送到临时 Topic
            .collect(Collectors.toList());
        
        // 批量快速转发,不进行耗时业务逻辑
        tempProducer.send(newMsgs); 
        return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
    } catch (Exception e) {
        return ConsumeConcurrentlyStatus.RECONSUME_LATER;
    }
}

3. 常见积压原因自查

  • 本地锁竞争:消费者内部线程池是否被数据库锁或死锁卡住?
  • 消费耗时:是否有外部 API 调用超时未设置上限?
  • 并发度设置:consumeThreadMin 和 consumeThreadMax 是否设置得过小?

四、 核心痛点三:消息重复与幂等 (Idempotency)

RocketMQ 承诺的是 At Least Once(至少一次),不保证 Exactly Once。

产生原因:

  1. 网络抖动:Broker 收到消息并落盘,但回传 ACK 给 Producer 时失败,Producer 重试导致重复。
  2. Rebalance:消费者扩缩容或 Broker 重启,导致队列重新分配,部分已消费但未提交 Offset 的消息被重新消费。

✅ 解决方案:业务层必须实现幂等性。

幂等性通用设计模式

Broker Business Logic Redis/DB Consumer Broker Business Logic Redis/DB Consumer opt [业务执行成功] alt [Key 已存在 (返回 0)] [Key 不存在 (返回 1)] 解析 Message Key (唯一ID) SETNX key "processing" 认为是重复消息 return CONSUME_SUCCESS 执行核心业务 Update status "success" return CONSUME_SUCCESS

Java 伪代码示例:

// 利用数据库主键冲突实现幂等
try {
    orderService.createOrder(orderMsg); // orderId 是主键
} catch (DuplicateKeyException e) {
    log.warn("Order already exists, ignore. ID: {}", orderMsg.getId());
    return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}

五、 性能优化与隐患排查

1. 启动脚本优化 (runbroker.sh)

RocketMQ 默认的 JVM 配置可能并不适合大内存机器,容易导致 Full GC 导致 Broker 暂停响应。

建议调整:

  • 使用 G1 收集器:对于大堆(Heap > 8GB),G1 表现更稳。
  • Xms 与 Xmx 相等:防止内存抖动。
# 修改 runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms16g -Xmx16g -XX:+UseG1GC -XX:MaxGCPauseMillis=200"

2. PageCache 与 Busy 问题

现象:日志出现 PAGECACHELOCK_TIMEOUT 或 OsPageCacheBusy。

原因:
Broker 严重依赖 OS 的 PageCache。如果同一台机器上有其他高 IO 进程(如 ElasticSearch, Hadoop),或者 Broker 内存不足导致频繁 Swap,会锁死 PageCache。

排查命令:

# 查看内存交换情况,si/so 必须为 0
vmstat 1 
# 查看磁盘 IO 利用率
iostat -x 1

3. 顺序消费的陷阱

问题:顺序消费(Orderly)性能极差。

原因:
RocketMQ 的顺序消费是队列级锁。一个队列同一时刻只能被一个线程消费。如果某个消息处理卡死,整个队列都会堵塞。

策略:

  • 尽量减少顺序消息的使用场景。
  • 如果必须使用,确保 Partition Key(如 OrderId)散列均匀,避免数据倾斜导致某个 Queue 成为热点。

六、 故障排查工具箱

当线上报警响起时,请按以下步骤操作:

  1. Dashboard 查看:RocketMQ Dashboard 是第一现场,查看 Consumer Lag(堆积量)和 TPS。
  2. Broker 日志:
    • store.log: 查看刷盘、存储情况。
    • broker.log: 查看核心运行错误。
  3. 命令行工具 (mqadmin):
# 查看消费者状态,包含堆积量、Consumer连接情况
sh mqadmin consumerProgress -n 127.0.0.1:9876 -g MyConsumerGroup

# 查看集群状态
sh mqadmin clusterList -n 127.0.0.1:9876

# 查询特定消息轨迹
sh mqadmin queryMsgById -n 127.0.0.1:9876 -i <MsgId>

总结

RocketMQ 的稳定性治理是一个系统工程。

  • 防丢失:靠的是同步刷盘、同步复制和优雅的异常处理。
  • 防重复:靠的是业务层的幂等设计。
  • 防积压:靠的是合理的队列规划、快速的消费逻辑以及紧急情况下的扩容方案。
RocketMQ消息丢失排查与可靠性优化实战 消息队列作为分布式系统解耦的核心组件,其可靠性直接影响业务连续性。RocketMQ通过生产者确认机制、Broker持久化策略和消费者ACK机制构建了完整的消息保障体系。本文基于电商订单系统真实案例,深入分析消息丢失的典型场景:包括生产者发送超时、Broker异步刷盘丢失、消费者异常处理等问题。通过SendResult解析、消息轨迹追踪、磁盘IO性能诊断等排查手段,最终定位到配置不当导致的系统性风险。文章给出全链路监控方案和配置黄金法则,特别强调SYNC_FLUSH刷盘模式、合理重试机制、统一日志规范等工程实 阅读详情

相关推荐

RocketMQ自动创建Topic机制深度解析:原理、风险与生产环境最佳实践

在分布式消息中间件中,Topic作为消息的逻辑分类单元,其管理是系统稳定性的基石。RocketMQ通过引入自动创建Topic机制,旨在解决开发与运维的协同效率问题。其核心原理基于生产者、NameServer和Broker的协同:当生产者发送消息时,若目标Topic不存在,会通过查询NameServer获取特殊的默认Topic(如TBW102)路由,进而向Broker发起配置请求与消息发送,从而触发Broker在本地创建Topic元数据并上报路由。这一机制的技术价值在于提升了开发敏捷性,降低了因运维延迟导致的

weixin_33924312的博客 542

RocketMQ生产环境常见问题分析与总结

完整分析过后,整个RocketMQ消息零丢失的方案其实挺简单生产者使用事务消息机制。Broker配置同步刷盘+Dledger主从架构消费者不要使用异步消费。整个MQ挂了之后准备降级方案​ 那这套方案是不是就很完美呢?其实很明显,这整套的消息零丢失方案,在各个环节都大量的降低了系统的处理性能以及吞吐量。在很多场景下,这套方案带来的性能损失的代价可能远远大于部分消息丢失的代价。所以,我们在设计RocketMQ使用方案时,要根据实际的业务情况来考虑。

qq_27740127的博客 788

RocketMQ消息轨迹实战:从配置到查询全流程详解(附常见问题排查)

本文详细解析了RocketMQ消息轨迹功能的实战应用,提供了从Broker端配置、客户端集成到控制台查询的全流程指南。文章重点阐述了如何通过配置消息轨迹来追踪消息发送与消费的全链路,并针对控制台查询不到轨迹、数据延迟等常见问题提供了深度排查与优化策略,帮助开发者构建可观测的消息系统。

weixin_29210727的博客 214

五.RocketMQ理论及常见问题处理方案

RocketMq理论及常见问题处理方案

醉卧雕龙舫,的博客 1527

RocketMQ面试核心考点与实战解析

分布式消息中间件是构建高并发系统的关键组件,通过解耦生产者和消费者实现异步通信。RocketMQ作为阿里开源的标杆产品,其核心设计采用CommitLog顺序写+ConsumeQueue逻辑队列的混合存储架构,支持同步/异步/单向三种发送模式,在保证消息可靠性的同时实现10万级QPS。事务消息通过两阶段提交机制解决分布式一致性问题,配合主从同步和消息重试机制,可满足金融级业务场景需求。典型应用包括电商订单削峰、日志采集和秒杀系统,其中顺序消息和消息堆积处理是面试高频考点。掌握RocketMQ的存储机制、HA设

weixin_34121304的博客 349

RocketMQ在Windows环境下的完整部署与实战指南

RocketMQ 是一款分布式消息中间件,具备高吞吐、低延迟、高可用特性。其核心由NameServerBrokerProducer和Consumer四大组件构成。NameServer 作为轻量级路由中心,负责管理 Broker 的注册信息和 Topic 路由;Broker 主导消息存储与转发,支持主从同步保障数据可靠性;Producer 发布消息至指定 Topic,Consumer 订阅并消费消息,支持集群和广播两种模式。

weixin_42575505的博客 1124

RocketMQ常见生产问题分析

RocketMQ常见生产问题分析

qq_45003354的博客 1193

GLDAS数据高效处理指南:基于Matlab的NC4转GeoTIFF实战解析

本文提供了一份基于Matlab的GLDAS数据处理实战指南,详细解析了如何将NetCDF4格式的GLDAS数据高效、准确地批量转换为GIS友好的GeoTIFF格式。文章核心内容包括数据理解、环境搭建、核心代码逐步拆解、效率提升技巧以及常见避坑方案,旨在帮助全球生态、水文与气候领域的研究者打通数据预处理的关键环节,提升科研工作效率。

weixin_29094775的博客 310

Rocketmq学习之路(一)从生产上的问题引出MQ

但是上面说的一些操作,其实藏匿着很多危机,比如告诉物流拿货,第三方物流系统接口挂掉了,那岂不是你下不了订单?用户岂不是财货两空?海量数据是通过分布式存储的方式来进行存储的,每台机器上的rocketmq进程一般称之为broker,每个broker会收到不同的消息,然后会把消息存储在本地的磁盘文件中。这样的话,假设你有1亿条消息,然后有10台机器部署了RocketMQ的Broker,理论上不就可以让每台机器存储1000万条消息了吗?5.支持一些基本功能么(延时消息,事务消息,消息堆积,消息回溯,死信队列)?

Chen_leilei的博客 478

薛定谔 | 先导化合物优化与相互作用可视化

当获得针对某个靶点的先导分子后,想要在此基础上进行化学结构修饰。为了提升化学改造的成功率可以采用本教程方法进行结构虚拟改造/优化。每用薛定谔处理一个新任务,第一步必须创建新的project以方便日后管理。选项卡中修改工作路径(可以方便地找到输出文件)

药研猿的博客 2144

Zemax光机热集成分析:从FEA数据导入到光学性能评估实战

在精密光学系统设计中,环境温度变化和机械应力是导致像质恶化的关键因素,这涉及到光、机、热多物理场的耦合分析。其核心原理在于,通过有限元分析(FEA)软件(如ANSYS)模拟热与力学载荷下的结构变形和温度分布,并将这些物理场数据精准映射到光学设计软件(如Zemax)中,以评估其对调制传递函数(MTF)、点列图等核心光学指标的影响。这项技术的工程价值在于,它使设计从静态的理想模型跃升至动态的工程现实,能够在设计阶段就预测并补偿环境扰动,从而显著提升光学系统在航空航天、车载镜头、高功率激光等严苛工况下的可靠性与稳

weixin_30565327的博客 356

RocketMQ - 一文搞懂生产者与消费者工作流程

RocketMQ生产者与消费者工作流程详解 摘要:本文深入解析Apache RocketMQ的核心组件工作流程。生产者启动时注册到NameServer,支持同步、异步和单向三种发送模式,通过轮询或自定义策略选择消息队列,并具备自动重试机制。消费者采用Pull+长轮询模型,支持集群和广播两种消费模式,通过Rebalance机制实现负载均衡。文章还介绍了批量发送、顺序消费、幂等性处理等实战技巧,并提供了Java代码示例。RocketMQ凭借高吞吐、低延迟、高可用等特性,成为处理分布式消息场景的优选方案。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

Ubuntu 24.04 部署 EMQX 5.8 开源版MQTT服务器:从零搭建到实战应用

本文详细指导如何在Ubuntu 24.04系统上部署EMQX 5.8开源版MQTT服务器。内容涵盖从环境准备、安装Erlang、下载安装包到启动服务的完整步骤,并提供了验证服务、配置网络防火墙以及通过WebSocket工具进行基础消息收发的实战方法,帮助用户快速搭建稳定、免费的物联网消息中间件。

weixin_29209825的博客 293

RocketMQ消息丢失排查与解决方案实战

消息中间件是现代分布式系统的核心组件,其稳定性直接影响业务可靠性。RocketMQ作为主流消息队列,通过生产者- Broker-消费者的全链路机制确保消息可靠传输。在实际生产环境中,消息丢失往往发生在客户端处理环节,特别是生产者未正确处理SendResult或消费者位点管理不当。理解消息生命周期、刷盘策略、主从同步等核心原理,结合监控指标如sendFailedCount、putMessageFailedTimes等,可以快速定位问题。本文基于电商大促等典型场景,详细分析7种高频故障模式,并提供从代码规范到集

weixin_34326429的博客 404

微信小程序云开发订单微信支付与小票和标签打印的完整高效流程

本片文章全文12000字,细致讲述从申请账户到小程序注册到打印机的选型最后到实现微信小程序云开发订单支付更新与小票,标签打印完整的高效流程。客户A在我们的点餐平台上点了一杯咖啡,所以客户要在选好后付款,在付款完成后商家的小票打印机和标签打印机打印出本订单的相关信息。

weixin_52312427的博客 3649

802.1AS-2011_Gptp协议栈

GPTP(广义时钟同步协议,或IEEE 802.1AS)的基本功能是确保局域网中所有的时钟都同步,并提供时间信息。这种协议用于在局域网中进行同步和时间对齐,其目的是确保网络中各设备的时间一致性。

weixin_49041703的博客 2542

RocketMQ - 源码解读:核心模块(生产者/消费者/Broker)工作原理

本文深入解析了RocketMQ核心模块的工作原理,包括生产者(Producer)、消费者(Consumer)和Broker三大组件。从源码层面详细剖析了Producer的初始化流程、消息发送机制,Consumer的消息拉取处理过程,以及Broker的消息存储架构。通过分析DefaultMQProducer、DefaultMQPushConsumer等核心类实现,揭示了RocketMQ高性能、高可用的设计原理,包括消息路由、负载均衡、存储优化等关键技术点,为开发者深入理解和使用RocketMQ提供了有价值的参

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

EMC诊断技术及电磁兼容理论设计

本文深入探讨了EMC诊断技术,重点在于滤波篇,详细讲解了EMI滤波器的设计、选型、测试及应用注意事项。内容涵盖噪声限值法规、滤波器的法规依据、插入损耗测试以及滤波电容的高频特性。同时,还阐述了噪声源的近场与远场特性,如何快速定位和抑制噪声。通过实例分析,提供了滤波器件和辐射噪声抑制器件的选型策略。

让你爱上电路设计 2162

JVM 性能调优与故障排查全景图:从工具选型到云闪付千万级生产实战

JVM诊断工具全景指南 本文系统梳理了JVM监控与诊断工具生态,按照"进程定位→状态监控→内存/线程导出→离线/实时分析"的故障排查流程,将工具划分为三大阵营: 1. CLI命令行工具(生产环境首选) 基础四件套:jps查进程、jstat看GC、jmap导堆转储、jstack抓线程 万能命令jcmd:集成线程堆栈打印和堆转储功能,性能开销更优 2. 图形化分析工具 JConsole/VisualVM:基础监控与初级分析 JMC+JFR:生产级低损耗(<1%)持续监控套件 MAT:大堆转储文件分析神器,精准定

qq_23277595的博客 1663

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

别再只盯着Kafka了!从一次线上故障聊聊RocketMQ的NameServer与Broker高可用实战

本文通过一次线上故障案例,深入剖析了RocketMQ高可用架构的设计精髓,重点解析了NameServer无状态集群与Broker主从同步机制。文章分享了生产环境中验证过的配置优化方案,包括心跳间隔调整、同步策略优化等,帮助开发者提升RocketMQ在分布式系统中的稳定性和可靠性。

weixin_30915275的博客 420

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

RocketMQ生产者超时问题终极解决:从RemotingTooMuchRequestException到sendDefaultImpl调优实战

本文深度剖析了RocketMQ生产者发送消息时抛出RemotingTooMuchRequestException: sendDefaultImpl call timeout异常的根源。文章指出,这不仅是简单的网络超时,更涉及客户端sendDefaultImpl方法的全链路耗时分析。通过对比不同环节的耗时因素,提供了从参数调优、Broker配置到部署架构的多层次实战解决方案,旨在帮助开发者从根本上解决生产环境中的消息发送超时问题,提升系统稳定性。

docker7nomad的博客 774

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

RocketMQ - 消息投递机制:重试策略与超时控制

本文深入探讨了RocketMQ消息投递机制中的重试策略与超时控制,涵盖生产者发送重试(同步/异步/单向)、消费者失败重试(顺序/并发)、重试间隔算法与退避策略等核心内容。文章通过真实案例和代码示例,分析了消息投递面临的典型失败场景,并提供了生产级最佳实践建议,包括如何配置重试次数、处理死信队列以及保障业务幂等性。全文约15000字,包含流程图和官方文档参考,旨在帮助开发者构建高可靠的消息投递体系。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

RocketMQ事务消息:从Spring Boot实战到底层原理深度解析

事务设计原则单个事务消息体 < 1MB本地事务执行时间 < 10秒事务日志保留至少7天推荐工具链RocketMQ Dashboard:实时监控事务状态Arthas:在线诊断事务问题Prometheus+Grafana:构建监控大盘演进方向事务消息+Saga模式:处理长事务场景事务消息+CDC:实现分布式数据同步Serverless事务方案:基于事件驱动架构。

danny-IT技术博客 1168

保姆级排查:RocketMQ Console里生产组‘隐身’的三种常见原因与解决

本文深入解析RocketMQ Console中生产组‘隐身’的三大常见原因及解决方案,包括基础环境检查、生产者生命周期管理陷阱及网络隔离问题。通过详细命令集和排查流程,帮助运维人员快速定位并修复问题,确保消息中间件稳定运行。特别针对rocketmq-console的使用场景提供了实用技巧。

weixin_42525637的博客 105

Kafka、RocketMQ、RabbitMQ生产选型实战指南

消息中间件是分布式系统的核心通信枢纽,其本质是解耦生产与消费、保障可靠传递与有序处理。理解其底层数据流路径(写入/存储/拉取/确认)和运行时模型(Pull vs Push、分区 vs 队列、日志 vs 索引),才能穿透‘高吞吐’‘低延迟’等营销话术,匹配真实业务需求。Kafka适合海量日志与流式场景,依赖顺序分片与零拷贝;RocketMQ强化事务与路由能力,适配强业务语义的金融订单;RabbitMQ基于AMQP协议提供确定性投递,支撑ERP、工单等需人工干预的关键链路。本文结合电商大促、物联网上报、T+0同

weixin_29800471的博客 250
上一篇: RocketMQ高可用架构与高级特性
下一篇: 从代码层面封死「越权访问」漏洞
TracyCoder123
博客等级 码龄8年 1万+粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TracyCoder123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值