系统架构最佳实践 -- 一般优惠券思想和方案

1.优惠券系统的核心思想

默认的优惠券系统:根据运营人员设定的条件生成对应的优惠券模板、

  • 优惠券码的要求:唯一性和有一定的识别性
    优惠券码的格式(一共18位):产品线+类型(前四位)+日期随机码(中间六位)+0到9的随机数(后八位)
  • 优惠券异步生成:因为我们一次性可能会生成几万个优惠券,所以我们在后台创建的时候,进行异步处理(可以采用消息队列来实现)

2.技术方案

  • 通过优惠券模板生成优惠券码保存到redis,方便我们进行查询和处理数据
  • 优惠券在一个实例服务生成:这样做的目的是解决优惠券码一致性的问题(我们在代码中使用Set数据结构生成),这样的做的好处是不会造成优惠券码的超发和分发优惠券配额问题

3.优惠券过期问题

优惠券具有时间属性,如果优惠券过期了,则不可使用,因此系统需要能够定期清除过期的优惠券,目前有两种方式;

  • 第一种方式是使用定时器定时扫描redis存储的优惠券数据,如果失效了,则进行清除;
  • 第二种是除了定时器以外的模块进行清除,比如客户端在请求优惠券列表的时候,我们可以先对优惠券列表进行遍历,如果过期了,这进行处理

4.优惠券结算(核销功能)

优惠券在使用的时候,我们需要判断优惠券的可用性

  • 结算的时候需要判断优惠券是否合法,判断优惠券是否过期和该用户是否是系统内部的用户
  • 通过不同的优惠券组合计算出最终的价格
  • 如果(核销优惠券)支付成功,这需要会写数据,更改优惠券状态
相关推荐
wasp5201 小时前
Vibe-Trading 深度解析(一):用 LLM 驱动的完整股票研究智能体架构总览
人工智能·架构·交易·ai coding·vibe trading
国科安芯1 小时前
抗辐射微控制器在卫星电源管理分系统中的控制架构与可靠性研究——基于AS32S601型MCU的星载能源系统智能化管理技术分析
网络·单片机·嵌入式硬件·安全·架构·系统架构·能源
微三云云仔1 小时前
GEO系统技术架构拆解:微三云双引擎产品的模块化设计逻辑
架构
智码看视界2 小时前
Tomcat架构深度拆解:Connector和Container到底怎么配合的?
java·servlet·架构·tomcat·web服务器
没落英雄2 小时前
7. 从零开始搭建一个 AI Agent —— UI 卡片渲染系统
前端·人工智能·架构
万联WANFLOW3 小时前
月之暗面发布 Kimi K3:全球首个开源 3T 级大模型,前端编程竞技场登顶第一
网络·人工智能·架构·业界资讯
杉氧3 小时前
Ktor 全栈之路 (5):JWT 认证全流程实战 —— 打造安全通信闭环
android·架构·kotlin
xcLeigh3 小时前
从搜索引擎到 AI 编程:开发者获取知识方式的范式转移
人工智能·ai·架构·ai编程·开发·范式转移
XUHUOJUN3 小时前
Azure Stack Hub 套餐、计划与订阅模型深度解析(下篇)
microsoft·架构·azure stack
微三云 - 廖会灵 (私域系统开发)3 小时前
电商系统API设计与开放平台建设:从内部调用到商业化API交付的架构演进
架构