一、架构总原则

1. 大中台+小前台的架构思路
2. 业务中台采用领域驱动设计(DDD),在其上构建业务能力SAAS,持续不断进行迭代演进。
3. 平台化定位,进行了业务隔离设计,方便一套系统支撑不同玩法的业务类型和便于定制化扩展。
4. 前后端分离,通过服务接入层进行路由适配转发。
5. 天然的分库分表,消息解耦和分布式缓存设计,支持弹性扩容,以支持大数据高并发场景。

二、系统逻辑架构图

2.1、电商中台

中台部分在逻辑上分成了基础能力和平台产品两层,这样做的好处是,基础能力层聚焦于稳定收敛的业务模型和基础服务本身,不会随着业务和前台产品的调整发生变化,可以简单理解为业务模型的DAO。平台产品层则专注于通过流程编排类的技术手段,将基础能力构建成业务的解决方案,解决共性和个性化的问题。我们将以交易的设计为例来说明这个分层理念。通过对电商交易业务的深入分析,

可以确定几乎所有的交易都会涉及下图中所有的领域(库存,优惠,价格…),而单看每个域,玩法都是很少变化的,将这些域的基础能力完全可以沉淀下来形成原子的基础能力,通过扩展点方式应对将来特殊的场景个性化扩展。

平台产品层为了应对不同的交易场景(一口价,拍卖,货到付款,预售…)将原子的基础能力编排成满足不同场景的解决方案,以服务的方式透出出去。

2.2、服务接入层

服务接入层是连接前台产品和中台产品层的纽带, 实质就是之前的web 应用,不同的是现在前后端分离后,只包含 java 代码,使用springBoot web。做参数转换,路由分发,调用中台服务,结果封装。这块需要做好前后端的交互规范,请求路由映射规范,web工程目录结构,负载均衡方案,跨越问题和安全问题,

2.3、公用基础组件

沉淀和抽象出通用独立的公共基础组件。

(1)、数据访问组件: 抽象封装分库分表访问,读写分离,主备切换。
(2)、消息中间件组件:这块的选择非常多,就开源的就有activeMQ,RabbitMQ,RocketMQ,Kafka等等, 再加上阿里云,AWS, 腾讯云等提供的和对应的云版本,会非常多,如果不对这块做封装,对其上应用做透明化处理,后期做这块的适配调整就会非常痛苦,特别是这套系统会在不同环境中进行部署时。
(3)、地址库组件: 统一地理地址相关的服务,如果是有拓展国际市场的需求,这块会显得的非常重要,不同文化背景的国家,在这块的差异会非常大,同时国内也涉及3级,4级和5级地址的问题。

2.4、云服务&设施容器层

如果技术团队不是非常大,又没有较强的运维技术人员,建议不要购买物理机自己搭建环境,而是直接使用阿里云这些比较成熟的ECS和其他云服务,这样会节省很多时间成本和一些耗时的运维工作,让其专注于业务产品的研发,同时使用docker 容器部署应用,不仅需要的机器数量比较少而且部署非常便捷高效。

2.5、业务前台产品

ios ,android APP , H5 APP ,PC 站点,微信支付宝小程序 都是属于这层,前台产品主要是根据业务形态和产品的定位来进行构建。对于电商业务来说,主要是指移动APP商城,H5商城,PC商城 ,小程序商城。将以小程序为例来说明。

为了适应小程序,社交电商这样的热点,加上有这么优秀的一套电商中台系统,不搞出点有么有样的电商前台产品,不是很没有道理,为此想破脑袋,我们把电商和送礼结合了起来,做了“礼尚往来”的小程序,下面是产品的截图。

2.6、稳定和安全保障系统

对电商这类在线交易系统,流量会随着运营活动的波动非常大,特别是到了双11这类大活动的时候,流量的峰值会是平时的几十~几百倍,一些接口会放大的更大;核心系统的系统指标,流量,接口调用量和rt, 以及限流和异常的监控就显得非常重要了。在几年之前,只有BAT 几个大的公司有能力在这方面做的不错,随着全民参与的这种大型促销活动推动技术的进步,以及开源社区和一些大厂将类似方案回馈到开源社区,目前一个小的技术团队做好这块也没有什么难度了。现将我们用到的框架做个简单的介绍,更多细节请参考官方文档。

(1)、sentinel:是面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助您保护服务的稳定性。 该系统已经过阿里内部双11多年的验证,稳定性和可靠性非常不错,已于最近开源。
(2)、ubbokeeper: dubbo的官方监控dubbo-monitor-simple 在性能上表现非常不好,经常卡死,对比了几个成熟的框架后,最终确定使用dubbokeeper. dubbokeeper社区版dubboadmin,包括了应用管理,动态配置,统计信息,服务监控和zk信息查看功能。
(3)、pinpoint::现在基于微服务的架构,一个请求从用户发起到响应,中间调用链路非常长,跨越数十个系统很正常,并且路径非常多,要定位一个比较耗时的响应,不利用工具,是非常低效的。Pinpoint这样的 工具 就是为处理这个问题出现的,Pinpoint的优点是对代码零侵入,运用JavaAgent字节码增强技术,追踪每个请求的完整调用链路。
(4)、Telegraf+ influxDB+ Grafana:主要用来实现业务数据的实时监控方案,如交易额的不正常波动,订单量的突然下跌等。
(5)、Telegraf 是收集数据的代理程序,可以根据业务需要添加插件扩展服务,收集到的数据写入分布式时序数据库influxDB,再通过grafana 可视化的展示出来。

2.7、工程结构

逻辑结构映射到物理的工程结构,每个逻辑单元对应为一个子工程,如果是用idea 开发,就是一个model, 当然model 里边会有子model;至于需要打包构建多少个系统其决定性因素是你团队的规模,如果团队规模较少,中台系统合并到3-4个左右就足够了,如果团非常大,一个团队负责一个业务板块的,并为其构建多个系统,也是非常正常的,像较大的电商公司,负责商品的就是一个团队,商品相关的系统就有数10个。以交易为例,可以将交易的系统合并为一个系统,但在工程的组织结构上是对立的,方便将来的拆分。

转载地址:

(1)、电商系统“大中台+小平台”架构设计

基于“大中台+小前台”思想的电商系统总体架构设计相关推荐

  1. 基于大中台小前台模式设计高并发电商架构

    孙玄 读完需要 8 分钟 速读仅需 3 分钟 孙玄,奈学教育创始人,曾任 58 集团技术委员会主席.转转首席架构师,一头飘逸长发,江湖人称"玄姐". 1 什么是大中台(业务中台.数 ...

  2. 阿里巴巴资深架构师推荐:基于大中台小前台模式设计高并发电商架构

    一.什么是大中台(业务中台.数据中台.技术中台等) 大中台小前台的组织模式最近在业界很火热,此模式最早在芬兰著名移动游戏公司Supercell实施.在Supercell公司内部以小前台的方式组织了若干 ...

  3. 电商扣减库存_电商系统秒杀架构设计

    作者:曹林华 https://blog.51cto.com/13527416/2085258 前言 最近在部门内部分享了原来在电商业务做秒杀活动的整体思路,大家对这次分享反馈还不错,所以我就简单整理了 ...

  4. 业务中台系统架构:大中台+小前台电子商务系统搭建框架思维

    [数商云]在电子商务系统搭建行业有近十几年的服务经验,近年来的数据中台.业务中台等系统架构兴起,大多数企业在不清楚的中台背景的情况下就盲目追求,最后只会导致自身平台丢失原有的优势框架.在这里,我们来总 ...

  5. 从阿里“大中台小前台”模式看大象如何跳舞

    从阿里"大中台小前台"模式看大象如何跳舞   锐评摘要:对于中国当下成功的创新型组织来说,不管是阿里巴巴.华为.海尔还是韩都衣舍,我们可以把握到一个趋势,那些有竞争力的企业的决策机 ...

  6. 【大中台-小前台】还是【小总部-大业务】?

    企业成功=战略能力x组织能力. (1) 但很多人把人才能力混淆成组织能力. 组织管理和人才管理是两码事. 领导力是组织管理的范畴,但因为主要关注领导人物和干部,所以很多人会把领导力混淆到人才管理中.当 ...

  7. 基于Spring+SpringMVC+Mybatis的Saas开源电商系统

    真正的大师,永远都怀着一颗学徒的心! 一.项目简介 基于Spring+SpringMVC+Mybatis的Saas开源电商系统 二.实现功能 支持店面管理 支持商品管理 支持用户管理 支持订单管理 支 ...

  8. 基于机器学习的阿里智能助理在电商领域的架构构建与实践-CSDN公开课-专题视频课程...

    基于机器学习的阿里智能助理在电商领域的架构构建与实践-2904人已学习 课程介绍         在全球人工智能领域不断发展的今天,包括Google.Facebook.Microsoft.Amazon ...

  9. (附源码)springboot电商系统前端界面设计与浏览器兼容性研究 毕业设计 231058

    基于springboot电商系统前端界面设计 摘  要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于电商系统前端界面设计与浏览器兼容性研究当然也不能排除 ...

最新文章

  1. 不当败家子的原因......
  2. qt执行命令行失败_QT缺少 qtcore4.dll,debug下运行不成功
  3. 冷知识 —— 物种大交换
  4. Java EE 8停步不前:Java社区能否扭转乾坤?
  5. css3伸缩布局(附实例、图解)
  6. Java学习手册:Java网络编程面试问题
  7. 编程网站:21 个学习网站推荐给你,大部分编程语言都在这里了
  8. kodbox(可道云)Windows部署教程
  9. 1064 朋友数 (C++)
  10. linux 电源管理源码分析,Linux 3.8.1 电源管理之OMAP Voltage Domain分析
  11. 站长必看:竞价只靠钱来砸实在是太傻了!
  12. PCIe的内存地址空间、I/O地址空间和配置地址空间
  13. JavaWeb - 小米商城 :首页商品分类展示
  14. 政治的人文素养 Zz
  15. [20150311]x$bh的tch.txt
  16. SOFA Weekly|SOFANews、issue 精选
  17. 教你如何利用微信小程序高效地完成地图点位标注
  18. 如何让DIV高度自适用
  19. 莫尔斯翻译器编码 c语言,翻译莫尔斯电码
  20. 无人驾驶之高级车道线检测-AdvanceLane_finding_release

热门文章

  1. 【基础练习】codevs1506 传话题解
  2. 最短路径算法 | Bellman-Ford Algorithm
  3. 乔春洋:品牌文化的三大内涵
  4. unity3d 压缩文件夹和压缩文件
  5. 软考-高项-论文-信息系统项目的人力资源管理
  6. OA系统添加审批模板
  7. Java 基础 第3阶段:高级应用——尚硅谷学习笔记(含面试题) 2023年
  8. 智能无人避障系统学习路线
  9. Python中的 len() 是什么?如何使用 len() 函数查找字符串的长度
  10. 苹果对中国手机产业链有多重要?欧菲光没了它就巨亏27亿