消息队列幂等消费规范实施文档_第1页
消息队列幂等消费规范实施文档_第2页
消息队列幂等消费规范实施文档_第3页
消息队列幂等消费规范实施文档_第4页
消息队列幂等消费规范实施文档_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

消息队列幂等消费规范实施文档一、总则规范(一)适用范围。本规范适用于公司所有采用消息队列进行异步通信的业务系统,重点覆盖订单处理、支付通知、用户行为记录等高频消息消费场景。1.消息队列基本定义消息队列是一种异步通信中间件,通过解耦生产者与消费者实现系统间解耦。本规范所指消息队列包括但不限于RabbitMQ、Kafka、RocketMQ等主流产品。2.幂等消费核心要求幂等消费要求消费者处理消息时,无论消息接收多少次,业务结果保持一致。禁止因重复消费导致订单超卖、积分重复增加等业务异常。3.规范实施层级本规范由技术部牵头,各业务系统开发团队负责具体落实,审计部负责监督执行。二、技术实现标准(一)接口幂等设计。各业务系统需实现消息消费接口的幂等性,采用以下两种主流方案1.Token令牌机制(1)生产者发送消息时附加唯一Token,消费者验证Token有效性(2)Token存储采用Redis等内存数据库,设置5分钟过期时间(3)验证通过后执行业务逻辑,验证失败直接丢弃消息2.数据库唯一约束(1)针对订单创建等业务,在数据库表设计时添加唯一索引(2)消费接口先执行数据库插入操作,捕获主键冲突异常(3)异常处理逻辑需记录消费日志,避免消息死循环(二)消费策略配置。消息队列消费者需配置以下策略1.消息确认机制(1)手动确认模式:消费成功后主动ack,失败需重试(2)自动确认模式:需配合幂等设计使用,避免重复消费2.重试策略配置(1)最大重试次数:单个消息最多重试3次(2)重试间隔:指数级增长,初始500ms,最大间隔10s(3)死信队列配置:重试失败消息转入死信队列三、系统架构要求(一)生产者规范。消息生产者需遵循以下要求1.消息体设计(1)消息体必须包含业务类型、唯一标识、时间戳等字段(2)业务类型采用枚举值,如"订单创建"、"支付通知"等(3)唯一标识与消费端Token机制配合使用2.错误处理(1)生产者发送失败需记录异常日志(2)严重错误需触发告警通知(3)消息重试次数超过阈值后转为死信消息(二)消费者规范。消息消费者需满足以下要求1.消息解析(1)消费接口参数必须与消息体结构严格对应(2)异常解析需捕获并记录完整堆栈信息(3)解析失败直接丢弃消息,不触发重试2.资源隔离(1)单个消费者线程处理消息量不超过100条/秒(2)高并发场景需配置线程池,拒绝策略采用队列等待(3)消费者进程内存使用率控制在70%以下四、监控与告警(一)核心监控指标。需监控以下关键指标1.消息消费指标(1)消费延迟:消息从接收至处理完成的时间(2)消费成功率:成功消费消息数/总消费消息数(3)重试次数:单个消息平均重试次数2.系统健康指标(1)消费者CPU使用率:单个进程不超过60%(2)内存占用:JVM堆内存使用率不超过70%(3)队列积压量:超过1000条触发告警(二)告警配置标准1.告警分级(1)严重告警:消息队列阻塞、消费延迟超过5秒(2)一般告警:重试次数接近阈值、消费者资源使用率超标(3)提示告警:消息积压量超过阈值2.告警通知方式(1)短信通知:仅限严重告警(2)钉钉/企业微信:覆盖一般告警(3)邮件通知:提示告警及日报统计五、运维操作规范(一)日常巡检。每日执行以下巡检任务1.消息队列状态检查(1)验证队列存活状态,异常需立即重启(2)检查消息积压情况,积压超过阈值需分析原因(3)核对队列配置参数,确保与生产环境一致2.消费者状态检查(1)验证消费者进程存活,异常需立即重启(2)检查消费者日志,发现异常需记录并分析(3)核对消费者配置,确保与生产环境一致(二)故障处理。消费异常需按以下流程处理1.初步排查(1)检查消息队列日志,确认队列状态正常(2)检查消费者日志,定位异常代码行(3)验证消息体格式,确认生产端未变更2.告警升级(1)消费延迟超过阈值需升级为严重告警(2)消息积压超过阈值需升级为严重告警(3)消费者进程异常退出需升级为严重告警3.紧急处理(1)严重告警需30分钟内响应(2)紧急故障需1小时内恢复(3)重大故障需2小时内恢复六、测试验收标准(一)单元测试。各业务系统需完成以下测试1.幂等性测试(1)模拟重复消费场景,验证业务结果一致性(2)测试数据包括订单创建、积分变更等核心业务(3)测试用例覆盖率不低于80%2.异常测试(1)模拟消息丢失场景,验证重试机制有效性(2)模拟网络中断场景,验证消费者恢复能力(3)测试数据包括正常消息、异常消息、重复消息(二)集成测试。需完成以下集成测试1.端到端测试(1)验证生产者发送消息至消费者完整流程(2)测试数据包括正常业务、边界业务、异常业务(3)测试用例覆盖率不低于90%2.性能测试(1)模拟高并发场景,验证消费者吞吐量(2)测试数据包括1000qps、5000qps、10000qps(3)测试指标包括延迟、成功率、资源占用七、附则说明(一)文档更新。本规范每季度评审一次,重大变更需发布新版本(二)培训要求。新员工入职需接受消息队列幂等设计培训(三)责任划分。技术部负责技术规范制定,业务部负责需求对接(四)违规处理。违反

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论