Skip to content

Wild-dog-is-me/lucky-draw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

基于阿里COLA架构的抽奖系统项目文档

  • 利用阿里推出的 COLA 架构将抽奖服务中的各个模块进行分层,使每层只需关注本层业务逻辑,很好的实现了业务逻辑解耦,系统代码也更加利于迭代和维护。
  • 使用 Gateway 做系统统一请求入口,并通过网关的全局过滤器实现了用户IP访问的限流处理及每次请求的认证与续约功能。
  • 使用 JWT 生成登录信息并将 token 字符串存入 Redis 实现用户登录功能。
  • 采用模板方法的设计模式,将复杂的抽奖逻辑分成一个个通用的方法,针对不同的实现逻辑生成对应的实现类,方便后续的优化及维护。
  • 采用缓存预热,对库存进行扣减提高抽奖接口吞吐量,并搭配 Redis + Lua 脚本保证扣减库存或回滚库存的原子性。
  • 使用预订单 + RocketMQ + 定时回查方案实现中奖信息 100% 发放到用户账户中。
  • 利用 AOP + Redis + 自定义注解实现分布式锁,其中实现包括上锁、解锁、续约、强制暂停业务线程等功能。

COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”。

架构意义 就是 要素结构:

  • 要素 是 组成架构的重要元素;
  • 结构 是 要素之间的关系。

应用架构意义 就在于

  • 定义一套良好的结构;
  • 治理应用复杂度,降低系统熵值;
  • 从随心所欲的混乱状态,走向井井有条的有序状态。

好的应用架构,都遵循一些共同模式,不管是六边形架构、洋葱圈架构、整洁架构、还是COLA架构,都提倡以业务为核心,解耦外部依赖,分离业务复杂度和技术复杂度等

COLA架构就是为此而生,其核心职责就是定义良好的应用结构,提供最佳应用架构的最佳实践。通过不断探索,我们发现良好的分层结构,良好的包结构定义,可以帮助我们治理混乱不堪的业务应用系统。

img

About

基于阿里COLA架构的抽奖系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published