- 地址:https://bugstack.cn/md/project/lottery/introduce/Lottery抽奖系统.html
- 介绍:Lottery 抽奖系统,是营销活动平台中的一个重要微服务,用于满足C端人群拉新、促活、留存的系统。系统根据微服务的界限上下文,运用抽象、分治和DDD知识,拆解服务边界、凝练领域服务功能。以围绕抽奖服务,解耦功能流程,建设领域服务,包括:规则引擎、抽奖策略、活动玩法、奖品发放等。来满足业务产品快速迭代上线的诉求,降低研发持续投入成本,提高交付效率。
- 架构:DDD 领域驱动设计、充血模型、设计模式
- 技术:
JDK 1.8、SpringBoot、Mybatis、Dubbo、MQ、Redis、Mysql、ELK、分库分表、Otter、vue、微信公众号、Docker
- 难度:⭐️⭐️⭐️⭐️
1. 服务系统

整体系统架构设计包含了6个工程:
- Lottery:分布式部署的抽奖服务系统,提供抽奖业务领域功能,以分布式部署的方式提供 RPC 服务。
- Lottery-API:网关API服务,提供;H5 页面抽奖、公众号开发回复消息抽奖。
- Lottery-Front:C端用户系统,vue H5 lucky-canvas 大转盘抽奖界面,讲解 vue 工程创建、引入模块、开发接口、跨域访问和功能实现
- Lottery-ERP:B端运营系统,满足运营人员对于活动的查询、配置、修改、审核等操作。
- DB-Router:分库分表路由组件,开发一个基于 HashMap 核心设计原理,使用哈希散列+扰动函数的方式,把数据散列到多个库表中的组件,并验证使用。
- Lottery-Test:测试验证系统,用于测试验证RPC服务、系统功能调用的测试系统。
2. 系统架构

其他所需环境如下(mysql\kafka\zk\redis\xxl-job):

3. 系统流程