1703952250
基础架构设计,指的是底层系统支撑中间件的架构设计,应用系统是架设在基础架构之上的,这里主要介绍大数据平台架构设计、云平台架构设计、服务治理平台架构设计、分布式文件存储架构设计。
1703952251
1703952252
我们马上开启架构设计之旅,进入奇妙的技术世界,我们先来看看大型电商网站架构设计怎么做?
1703952253
1703952254
大型电商网站,指的是每日用户访问量达到数百万,每日页面访问量达到数千万乃至上亿级别的网站,达到这个规模的电商网站在国内不会超过10家,系统架构设计的目标和原则是:高可用、易伸缩、低成本。
1703952255
1703952256
基于这样的架构设计目标和原则,服务化、分布式是这个架构设计的主要思路。
1703952257
1703952258
服务化,是将所有核心业务沉淀下来形成各种服务,供各业务系统共享,基础架构相关资源也以服务的方式提供,包括消息、文件存储、缓存等。
1703952259
1703952260
分布式,系统架构中的每一层及所有的资源都是分布式的,支持平滑的水平扩展。
1703952261
1703952262
从技术架构上可以把电商网站系统分为五层:应用层、核心服务层、基础服务层、数据访问层、数据源,如图9-1所示。下面我们介绍每一层的作用和包含的主要模块。
1703952263
1703952264
1703952265
1703952266
1703952267
图9-1 电商系统架构
1703952268
1703952269
应用层,是面向用户的应用系统,提供给顾客、商家、员工等角色使用的平台,如网站页面、购物车、结算中心、会员中心、在线客服、商家平台、供应商平台、运营后台等。应用系统通过调用核心服务,实现特定的业务逻辑。
1703952270
1703952271
核心服务层,把核心业务逻辑进行封装,以服务的形式提供出来,供各应用系统进行调用。核心服务有交易、支付、促销、类目维护、商品管理、店铺装修、库存操作等。
1703952272
1703952273
基础服务层,把原子业务进行封装,以服务的形式提供出来,供核心服务层调用,这里要注意,一般情况下应用层不能够直接调用基础服务层,也就是说不能跨层调用服务。核心服务层在封装某个业务逻辑的时候,常常会调用多个基础服务层的接口。基础服务层包括订单、库存、价格、用户、商品、积分等。
1703952274
1703952275
数据访问层,是实现对数据访问的中间件层,功能模块包括持久化组件、事务处理、连接池、NoSQL客服端、SQL管理工具箱等。任何数据访问都必须通过数据访问层,不允许绕过数据访问层,直接访问数据库。
1703952276
1703952277
数据源,指数据库集群,包括Oralce、MySQL、Hadoop、Hbase、MangoDB等,数据库一般是集群部署,实现主备机制、读写分离。
1703952278
1703952279
以上介绍了各层要做的事情,大家注意到SOA在这个架构中被大量使用,因此需要有服务治理平台,能够对服务进行管理,比如能够支持故障隔离,优雅降级,可以跟踪完整的请求生命周期,可以快速响应和定位问题,可以管理所有服务的依赖关系。
1703952280
1703952281
另外,数据的读取还需要有缓存中间件,来减少对数据源的请求次数,缓解数据库的压力,根据场景合理使用多级缓存、本地缓存等,缓存要有主动和被动更新机制,以防止脏数据的产生和被误使用。
1703952282
1703952283
同时,还必须有完备的监控预警机制,对硬件、数据库、服务、应用、容器、中间件等进行监控预警,必要时候会发出服务降级指令,来牺牲一些对性能损耗较大的模块,确保主购物流程的正常运行。
1703952284
1703952285
最后,整体网站要能够实现多数据中心的部署,来实现性能提升、访问速度优化,以及实现容灾。
1703952286
1703952288
9.1.2 供应链系统架构设计
1703952289
1703952290
供应链系统,是在电子商务平台中最重要的系统之一,贯穿了采购管理、仓库管理、配送管理、车辆管理、绩效管理等,供应链系统还需要跟订单系统、客服系统、生产计划系统、BI等外部系统对接,供应链系统的建设重在作业流程梳理和优化,业务性更强,在本节的介绍中侧重在业务架构层面。
1703952291
1703952292
如图9-2所示,给大家展示了电商物流业务的闭环,下面我们来梳理其中的业务流程,给大家呈现完整的电商物流业务视图。
1703952293
1703952294
1703952295
1703952296
1703952297
图9-2 电商物流业务闭环
1703952298
1703952299
消费者从网购平台(如淘宝、京东、1号店等购物网站)中挑选自己需要的商品,完成下单操作,这时候生成了一张订单,订单系统根据消费者的送货地址,通过算法程序,把订单分配到某个或多个仓库中,这里可能涉及到订单拆分,将一个订单拆分成多个子单,并且生成出库单。
[
上一页 ]
[ :1.70395225e+09 ]
[
下一页 ]