贯穿设计模式-装饰者模式

样例代码

涉及到的项目样例代码均可以从https://github.com/WeiXiao-Hyy/Design-Patterns.git获取

需求

旨在不改变一个对象逻辑的前提下,为这个对象添加其他额外的职责

  1. 在业务投放的同时,需要给用户发放红包或者积分,在不改动的投放逻辑的前提下,增加一条异步的链路 → 装饰者模式
  2. 新增加的异步链路对支付主链路来说是弱依赖的,在业务高峰期可以将其功能下掉或30分钟之后再进行同步。
  3. 功能正常/下掉/30分钟之后再同步 → Apollo配置选项提供feature开关
  4. 30分钟同步 → 引入MQ死信队列来解决

UML图

Decorator实现了Component接口,又是和Component是组合关系

MQ死信队列解决延时任务方案

原理:NormalMQ Queue中没有配置消费者,发送消息设置了30分钟的最大消费时间,如果30分钟内没有被正常消费则转移到死信队列里再进行消费。

相关推荐
bandaoyu3 分钟前
【CUDA】store/load普通访存 vs 非临时(Non-Temporal)访存
java·开发语言·redis
AI人工智能+电脑小能手4 分钟前
【大白话说Java面试题 第53题】【JVM篇】第13题:JVM采用什么算法判断一个对象是否需要被回收?
java·jvm·算法·面试
逍遥德5 分钟前
常见的任务调度框架介绍
java·spring boot·中间件
jiayong236 分钟前
Memory 写入、检索与纠错机制:让 Agent 记住,也让它忘对
java·服务器·网络·hermes
小赵不会秃头8 分钟前
数据结构Day 06:线性结构、库操作及 Makefile 完整学习笔记
java·linux·数据结构·算法·面试
xqqxqxxq9 分钟前
Maven 完整配置与使用技术笔记
java·笔记·maven
砍材农夫10 分钟前
物联网 基于netty理解粘包/拆包
java·物联网·struts
Counter-Strike大牛11 分钟前
Nacos源码修改tomcat版本方法
java·tomcat
念越15 分钟前
HTTPS 安全内核:对称与非对称加密的博弈,数字证书一战定局
java·网络·网络协议·安全·https
Anastasiozzzz16 分钟前
深入研究Java Agent生态:SpringAI 与 SpringAIAlibaba核心能力、架构演进与全场景对比研究
java·开发语言·架构