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

样例代码

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

相关推荐
Coder_Boy_几秒前
从单体并发工具类到分布式并发:思想演进与最佳实践
java·spring boot·分布式·微服务
❀͜͡傀儡师7 分钟前
SpringBoot渗透扫描Scan工具
java·spring boot·后端
hzc09876543218 小时前
Spring Integration + MQTT
java·后端·spring
前路不黑暗@9 小时前
Java项目:Java脚手架项目的公共模块的实现(二)
java·开发语言·spring boot·学习·spring cloud·maven·idea
人道领域9 小时前
Spring核心注解全解析
java·开发语言·spring boot
金牌归来发现妻女流落街头10 小时前
日志级别是摆设吗?
java·spring boot·日志
MOONICK10 小时前
C#基础入门
java·开发语言
程序员小假11 小时前
我们来说一下虚拟内存的概念、作用及实现原理
java·后端
悠哉清闲11 小时前
Future
java·开发语言·kotlin
徐同保12 小时前
python如何手动抛出异常
java·前端·python