查看原文
其他

一个完整的DDD架构,分布式秒杀抽奖系统设计和落地,肝完了!

小傅哥 bugstack虫洞栈 2022-10-28

持续坚持原创输出,点击蓝字关注我吧

作者:小傅哥
博客:https://bugstack.cn

沉淀、分享、成长,让自己和他人都能有所收获!😜

目录


  • 一、用大项目,贯穿知识体系

  • 二、四层架构,领域驱动设计

    • 1. DDD 四层架构

    • 2. 分布式工程设计

    • 3. 凝练流程领域

  • 三、课程介绍,教你怎么上车

    • 1. 课程目录

    • 2. 你会学到什么

    • 3. 适宜人群

    • 4. 怎么加入

    • 5. 课代表作业

  • 四、加入项目,新年限时优惠

    • 1. 15元优惠券 - 50张

    • 2. 10元优惠券 - 200张

    • 3. 5元优惠券 - 1000张


一、用大项目,贯穿知识体系

写CRUD、堆API、改屎山⛰,熬多少个996也只是成为重复的螺丝钉。如果你希望捅破现有工作的瓶颈,拉高一下对技术的认知,那么就非常需要一个大项目来贯穿常用技术栈的知识体系。碎片化断层的背八股文,是解决不了这个事情

那怎么办?当然是要肝项目了,肝一个有互联网技术体系有分布式架构运用有DDD思想和设计模式实践的真实场景项目,才能让一个尚未接触此类项目或是长期陷入CURD的熟练工,打开视野,快速成长起来。

整整半年,小傅哥都在做这件事情,直到今天才完成整个系统的第一期设计实现和落地。在这个《分布式抽奖系统》项目中,我会带着大家以DDD架构和设计模式落地实战的方式,进行代码开发视频介绍文档说明的方式讲解和实现分布式抽奖系统,那么这里会涉及到很多DDD的设计思路和设计模式应用,以及互联网大厂开发中所应用到的技术,包括:SpringBoot、Mybatis、Dubbo、MQ、Redis、Mysql、ELK、分库分表、Otter 等。

在加入项目之前,你可以仔细阅读如下的介绍信息,方便你能更加快速的进入学习。一点点投资,为你3月-4月,拿一个更高更靠谱的Offer

二、四层架构,领域驱动设计

Lottery 抽奖系统 项目是一款互联网面向C端人群营销活动类的抽奖系统,可以提供抽奖活动玩法策略的创建、参与、记账、发奖等逻辑功能。在使用的过程中运营人员通过创建概率类奖品的抽奖玩法,对用户进行拉新、促活、留存,通常这样的系统会用在电商、外卖、出行、公众号运营等各类场景中。

1. DDD 四层架构

  • 此系统架构为 DDD 领域驱动设计的四层架构实现方式,以重视代码实现落地的方式向读者介绍和展示如何开发这样的代码。
  • 在 Domain 领域层逐步通过拆解系统流程设计,按照职责边界的领域模块进行设计和开发,最终在应用层进行逻辑功能编排。
  • 这个系统中会体现出很多的设计模式思想和最终的实现,只有把 DDD 和设计模式结合起来,才能开发出更加易于扩展和维护的代码结构。

2. 分布式工程设计

整体系统架构设计包含了6个工程:

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

3. 凝练流程领域

  • 拆解功能流程,提炼领域服务,一步步教会你把一个业务功能流程如何拆解为各个职责边界下的领域模块,在通过把开发好的领域服务在应用层进行串联,提供整个服务链路。
  • 通过这样的设计和落地思想,以及在把流程化的功能按照面向对象的思路使用设计模式进行设计,让每一步代码都变得清晰易懂,这样实现出来的代码也就更加易于维护和扩展了。
  • 所以,你在这个过程中学会的不只是代码开发,还有更多的落地思想实践在这里面体现出来。也能为你以后开发这样的一个项目或者在面试过程中,一些实际复杂场景问题的设计思路,打下不错的基础。

三、课程介绍,教你怎么上车

课程包括:小册视频代码作业,四方面结合的方式进行学习,所以也能让即使缺少编码经验的在校学生、应届生或者是CRUD熟练工,都能快速加入项目进行学习。

  • 课程分为:大厂规范领域开发运营后台应用场景系统运维,共5章34节来讲解DDD分布式系统的架构设计和实践落地。
  • 只要你能认真跟着敲下来,22年的 Offer 不会便宜!真的是研发能力有差异吗,其实不是,你差的只是一个有人带着你肝的大型系统而已!

1. 课程目录

  • 第 1 部分 大厂规范

    • 第01节:大厂码农开发基础
    • 第02节:需求怎么来的
    • 第03节:系统架构设计
    • 第04节:进入开发阶段
    • 第05节:系统上线维护
  • 第 2 部分 领域开发

    • 第01节:环境、配置、规范
    • 第02节:搭建(DDD + RPC)架构
    • 第03节:跑通广播模式RPC过程调用
    • 第04节:抽奖活动策略库表设计
    • 第05节:抽奖策略领域模块开发
    • 第06节:模板模式处理抽奖流程
    • 第07节:简单工厂搭建发奖领域
    • 第08节:活动领域的配置与状态
    • 第09节:ID生成策略领域开发
    • 第10节:实现和使用分库分表
    • 第11节:声明事务领取活动领域开发
    • 第12节:在应用层编排抽奖过程
    • 第13节:规则引擎量化人群参与活动
    • 第14节:门面接口封装和对象转换
    • 第15节:搭建MQ消息组件Kafka服务环境
    • 第16节:使用MQ解耦抽奖发货流程
    • 第17节:引入xxl-job处理活动状态扫描
    • 第18节:扫描库表补偿发货单MQ消息
    • 第19节:设计滑动库存分布式锁处理活动秒杀
  • 第 3 部分 运营后台

    • 第01节:UI工程搭建
    • 第02节:活动列表数据展示
  • 第 4 部分 应用场景

    • 第01节:搭建微信公众号网关服务
    • 第02节:【作业】vue H5 大转盘抽奖
  • 第 5 部分 系统运维

    • 第01节:在云服务器部署 Docker
    • 第02节:部署环境 Redis
    • 第03节:部署环境 Kafka
    • 第04节:部署环境 Mysql
    • 第05节:部署环境 xxl-job
    • 第06节:部署环境 nacos

2. 你会学到什么

  • 分布式系统架构如何开发(RPCMQ分布式任务分库分表)
  • DDD 四层架构设计与设计模式的结合落地
  • 互联网大厂的代码开发规范、需求评审、运维监控
  • Docker 运维实践,环境、部署、配置、监控、日志等

3. 适宜人群

  • 具备 Java 编程基础的研发人员,想提升自己的技术能力
  • 希望提升编码思维,剔除到代码中的坏味道
  • 有意愿成为架构师,但还处在一定瓶颈期
  • 想加入大厂做码农,但总感觉找不到门路

4. 怎么加入

  1. 加入知识星球:码农会锁 通过优惠券加入,也可以复制链接加入:https://t.zsxq.com/jAi2nUf
  2. 加入星球后,阅读置顶🔝消息的引导,申请加入项目。小傅哥会审核你的加入
  3. 参照学习说明链接 点击此篇文章最下面的,阅读原文 即可进入
  4. 遇到任何问题,联系项目的维护作者:小傅哥,微信:fustack

5. 课代表作业

讲真,我遇到了一个懂我的人!

在星球实战项目学习中,有一个女课代表,每一次交作业提交都可以用精致来形容,她的学习速度超级快,也可以非常清晰的分析出每一块的流程并配上流程图,如下:

  • 我也希望有更多的优秀的你,与我一起学习、成长、赚钱,22年,我们加油!

四、加入项目,新年限时优惠

此项目是小傅哥的知识星球:码农会锁 的第一个实战项目,后续小傅哥还会继续加入更多的实战项目开发和专属小册,例如:Netty 网关、数据结构和算法、手写Xxx系列等,带着加入的粉丝伙伴,一起学点有价值的干货!

码农会锁 星球价值¥66元,有项目实践、有VIP群、有简历优化、有问题回答等,绝对非常超值!

1. 15元优惠券 - 50张

2. 10元优惠券 - 200张

3. 5元优惠券 - 1000张

- END -


下方扫码关注 bugstack虫洞栈,与小傅哥一起学习成长、共同进步,做一个码场最贵Coder!

  • 回复【设计模式】,获取《重学Java设计模式》,这是一本互联网真实案例的实践书籍,从实际业务中抽离出,交易、营销、秒杀、中间件、源码等众多场景进行学习代码设计。
  • 回复【Spring专栏】,获取《手撸Spring》,这是一本通过带着读者手写简化版 Spring 框架,了解 Spring IOC、AOP、循环依赖等核心原理和设计实现的技术资料。
  • 回复【面经手册】,获取《面经手册 • 拿大厂Offer》,这是一本有深度的Java核心内容,从数据结构、算法、并发编程以及JVM系8不断深入讲解,让懂了就是真的懂。

你好,我是小傅哥。一线互联网java 工程师、架构师,开发过交易&营销、写过运营&活动、设计过中间件也倒腾过中继器、IO板卡。不只是写Java语言,也搞过C#、PHP,是一个技术活跃的折腾者。
2020年写了一本PDF《重学Java设计模式》,全网下载量50万+,帮助很多同学成长,现已出书。同年 github 的两个项目,CodeGuideitstack-demo-design,持续霸榜 Trending,成为全球热门项目。
2021年上架一本小册《SpringBoot 中间件设计和开发》,16个互联网中间件场景、30个工程,是全网唯一一次手把手教你造轮子、写中间件,因为这样的技术离P7最近、离架构师最近、离高薪资最近!
2022年在知识星球【码农会锁】开发完成基于 DDD 四层架构设计的,《分布式实战项目抽奖系统》。此项目以互联网开发常用技术为主,包括:SpringBoot、Mybatis、Dubbo、MQ、Redis、分库分表、ELK、Docker等,以及大量的真实场景案例和对应的设计模式实战,解决每一个细节问题,非常适合学习实践。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存