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

样例代码

涉及到的项目样例代码均可以从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分钟内没有被正常消费则转移到死信队列里再进行消费。

相关推荐
苏小瀚18 分钟前
算法---位运算
java·算法
Camel卡蒙31 分钟前
数据结构——二叉搜索树Binary Search Tree(介绍、Java实现增删查改、中序遍历等)
java·开发语言·数据结构
2401_8414956431 分钟前
【数据结构】基于Floyd算法的最短路径求解
java·数据结构·c++·python·算法··floyd
珹洺1 小时前
Java-Spring入门指南(二十七)Android Studio 第一个项目搭建与手机页面模拟器运行
java·spring·android studio
程序猿DD1 小时前
Java 25 中的 6 个新特性解读
java·后端
稻草猫.1 小时前
文件 IO
java·笔记·后端·java-ee·idea
laopeng3011 小时前
基于Spring AI Deep Researcher Agent
java·人工智能·spring
子豪-中国机器人2 小时前
《C++ STL 基础入门》教案
java·开发语言
java_t_t2 小时前
集合工具类
java·集合
消失的旧时光-19432 小时前
ScheduledExecutorService
android·java·开发语言