设计一个亿级高并发系统架构 - 12306火车票核心场景DDD领域建模

这篇具有很好参考价值的文章主要介绍了设计一个亿级高并发系统架构 - 12306火车票核心场景DDD领域建模。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

“ 架设一个亿级高并发系统,是多数程序员、架构师的工作目标。 许多的技术从业人员甚至有时会降薪去寻找这样的机会。但并不是所有人都有机会主导,甚至参与这样一个系统。今天我们用12306火车票购票这样一个业务场景来做DDD领域建模。”

开篇

要实现软件设计、软件开发在一个统一的思想、统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束。

虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍然是必要的,为了开发一个支持DDD的框架,首先需要理解DDD的基本概念和核心的组件。

一.什么是领域驱动设计(DDD)

首先要知道DDD是一种开发理念,核心是维护一个反应领域概念的模型(领域模型是软件最核心的部分,反应了软件的业务本质),然后通过大量模式来指导模型设计与开发。

DDD的一般过程是:

首先通过软件需求规格说明书或原型生成一个领域模型(类、类的属性、类与类之间的关系);

然后根据模式(应该如何分层?、领域逻辑写在哪?与持久化如何交互?如何协调多对象领域逻辑?如何实现逻辑与数据存储解耦等)指导来实现代码模型。

二.为什么使用DDD

DDD能应对复杂性与快速变化:

1.从技术维度实现分层:能够在每层关注自己的事情,比如领域层关注业务逻辑的事情,仓储关注持久化数据的事情,应用服务层关注用例的事情,接口层关注暴露给前端的事情。

2.业务维度:通过将大系统划分层多个上下文,可以让不同团队和不同人只关注当前上下文的开发。

3.时间维度:通过敏捷式迭代快速验证,快速修正。

01

传统架构与DDD经典架构区别

传统三层架构以及问题

设计一个亿级高并发系统架构 - 12306火车票核心场景DDD领域建模

​传统架构

问题:

1.过分注重数据访问层,而不重视领域。

2.业务逻辑直接与数据访问层耦合,与领域为核心的DDD思想背道而驰。

3.没有一系列的模式与方法论指导这种分层架构的开发约束。

经典DDD架构:

设计一个亿级高并发系统架构 - 12306火车票核心场景DDD领域建模

DDD经架构

1.基础结构层:整个产品或系统的底层支撑

a.常用工具、支撑功能:这个.net core项目至少要实现以下的功能:Json配置文件的读取、WebApi返回给前端的基文章来源地址https://www.toymoban.com/news/detail-438299.html

到了这里,关于设计一个亿级高并发系统架构 - 12306火车票核心场景DDD领域建模的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【架构设计】高并发架构实战:从需求分析到系统设计

      很多软件工程师的职业规划是 成为架构师 ,但是要成为架构师很多时候要求 先有架构设计经验 ,而不做架构师又怎么会有架构设计经验呢?那么要 如何获得架构设计经验 呢? 高并发是指系统在同一时间内处理的请求量非常大,通常是指每秒处理的请求量达到数千到数百

    2024年02月15日
    浏览(49)
  • Java项目实战--基于SpringBoot3.0开发仿12306高并发售票系统--(一)前置知识

    本文参考自 Springboot3+微服务实战12306高性能售票系统 - 慕课网 (imooc.com) 本章将介绍仿12306售票系统实战开发的开发环境、项目核心技术和功能、项目模块和架构设计、开发所需前置知识,若想直接开始编写代码实现,请关注作者,看后面的第二章——项目实现 后端: JDK 17

    2024年04月12日
    浏览(37)
  • 分布式亿级流量整体架构设计原则

    高可用性 整体系统可用性最低99.9%,目标99.99%。全年故障时间整个系统不超过500分钟,单个系统故障不超过50分钟。 高可扩展性 系统架构简单清晰,应用系统间耦合低,容易水平扩展,业务功能增改方便快捷。 低成本 增加服务的重用性,提高开发效率,降低人力成本; 最终

    2024年02月05日
    浏览(48)
  • 百亿级访问量,如何做缓存架构设计

    在40岁老架构师 尼恩的 读者社区 (50+)中,最近有小伙伴拿到了一线互联网企业如阿里、网易、有赞、希音、百度、网易、滴滴的面试资格,遇到一几个很重要的面试题:: 分布式缓存系统,如何架构? 百亿级访问,如何做缓存架构? 最近,有个小伙伴微博一面,又遇到了这

    2024年02月10日
    浏览(39)
  • 数据结构课程设计之火车票订票系统实现(C语言/C++版本)

    课题描述 编制一个程序,火车票订票的业务活动包括:车次查询、订票、退票、用户管理等。 需求分析 用户信息包括用户姓名、身份证号、用户电话、用户所购列车号、订单号;列车信息包括:列车车站号、车票起点、车票终点、出发时间、到达时间、票价、票数等基本信

    2024年01月19日
    浏览(51)
  • 【高并发】高并发架构实战:从需求分析到系统设计

               Yan-英杰的主页 悟已往之不谏 知来者之可追   C++程序员,2024届电子信息研究生            很多软件工程师的职业规划是 成为架构师 ,但是要成为架构师很多时候要求 先有架构设计经验 ,而不做架构师又怎么会有架构设计经验呢?那么要 如何获得架构

    2024年02月16日
    浏览(49)
  • 高并发架构系统设计注意事项

    本文从以下几点介绍一下设计一个高流量高并发的系统需要经历哪些步骤以及考虑哪些因素(文章中的不足之处还请大佬们多多指点)。 在设计一个系统之前,我们先要有一个统一且清晰的认知:不要想着一下就能设计出完美的系统,好的系统是迭代出来的。不要复杂化,要

    2024年02月07日
    浏览(41)
  • 『架构实践』探索亿级短URL生成器的架构设计与源码分享

    📣读完这篇文章里你能收获到 了解博主的短链生成的架构设计思路 学习不同的短链技术方案选择 学习基于混淆的自增短URL算法 了解博主造的轮子SuperShortLink短链开源项目 感谢点赞+收藏,避免下次找不到~ 短 URL 生成器,也称作 短链接生成器 ,就是将一个比较长的 URL 生成

    2024年02月09日
    浏览(377)
  • [附源码]计算机毕业设计-JAVA火车票订票管理系统-springboot-论-文-ppt

    PPT+论文 本论文主要论述了如何使用JAVA语言开发一个火车订票管理系统 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述火车订票管理系统的当前背景以及系统开发的目的,后续章节将严格按照软件

    2024年02月12日
    浏览(39)
  • 基于android studio开发的火车票购票系统app,android移动开发课设,毕业设计

    基于android studio开发实现火车票购票系统app 适用于android移动开发学习项目,课程设计,毕业设计等 开发工具:android studio 或者intellij idea专业版 操作系统:windows10 java: JDK11 构建工具Gradle : gradle-7.0.0 模拟器AVD:pixel 3XL API 30 具体AVD配置详情如下 APP功能 该APP包含17个Activity,每

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包