大型电商架构及演化历程

大型电商架构及演化历程

ID:39320152

大小:2.22 MB

页数:45页

时间:2019-06-30

大型电商架构及演化历程_第1页
大型电商架构及演化历程_第2页
大型电商架构及演化历程_第3页
大型电商架构及演化历程_第4页
大型电商架构及演化历程_第5页
资源描述:

《大型电商架构及演化历程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、大型电商架构及演化历程盈天讯张宇自我介绍亿玛科技架构师中宏互联技术总监凡客诚品首席架构师IBMGBS资深电子商务顾问苏宁易购项目,技术管理委员会核心成员曾参与上品折扣、广之旅、李锦记、中国银行企业网银、平安保险等项目目前:盈天讯首席架构师Agenda小且快(资金为重)大而全(功能为重)大且快(量级为重)大且敏(终极追求)技术趋势小且快(资金为重)两个层面的“快”架构选型:ASP.NET、RoR等他们都选了什么?架构特点部署架构两个层面的“快”电商的灵魂是“快”开发速度快运行速度快小而快时候,更多的指的是开发速度快框架选型A

2、SP.NETRoRGrailsPHPDjango他们都选了什么?架构选型为什么大多数人选择了ASP.NET?人员成本>服务器成本人力资源充沛有几个人熟悉其他RAD?维护成本低成长空间:容易晋身为企业级架构为什么大多数人选择了自主研发?需要商业模式创新创业者期望“颠覆”“小而美”的时候,维护成本高架构特点轻量,直观,容易理解,架构代价(overhead)小耦合度高基本不存在分层能做到静态分层已经很不错了有些团队喜欢把所有查询都写在存储过程中DataDriven以数据(库)为中心的设计全局数据共享,极少考虑封装性CRUD四轮马

3、车的代码没有,也不太可能测试(单元,集成)部署架构基本上是单点甚至是租用主机现在可以选择云大而全(功能为重)野蛮生长企业级需求问题架构演进架构特征部署架构野蛮生长截止到2010年3月份,凡客诚品技术部接到的需求已经排期排到了2013年技术团队从2-5个人突然增长到300+,后来增长到1000+苏宁易购也同样经历了开发人员从几十一下子到几百再一下子到上千的阶段网站后台从几个模块增加到上百个模块从单一网站系统演变为众多业务系统(客服系统、联盟系统、搜索系统、供应商系统、物流仓储系统……)每个系统都有少则几十多则上百的模块企业级

4、需求企业级复杂度工作流(审核、审批)专业的财务需求多系统统一认证(SSO、LDAP)、权限作业(JOB、Cron)系统、队列、批处理各种客户端接入(C/S、B/S)凡客管理平台,ERP,CRM,WMS,客服系统都是C/S架构问题来不及设计系统关键环节越来越复杂,越来越难维护“订单转有效”是一个凡客内部著名的存储过程,历经4名程序员,最终达到3000+行SQL,并成功达到无人能懂,无人敢改的地步所有功能交织在一起,牵一发而动全身代码改动影响面大,回归测试范围大长事务、大事务架构演进——分层架构面对越来越复杂的业务系统,首要的

5、问题是耦合过重最基本的是分层架构分层架构——我们得到了什么?人们常说,分层架构主要的好处是可以替换某一层的具体实现,比如我可以把UI层从Struts换成SpringVMC,可以把DataAccess层从Hibernate换成iBatis,但多少项目换过?更清晰的代码噪音的减小更有意义的命名复用可维护性存储过程中的业务逻辑全部收回逻辑层架构演进——划分模块分层架构使得各层之间的依赖关系变得明晰重构、重写部分代码拆分依赖中枢下单促销划分业务模块使用单元测试保证重构是安全的RefactoringToPatterns架构演进——A

6、OPSSO,权限等代码事务代码日志代码严重干扰了业务代码的清晰度增加了出错几率架构特征分层清晰,层次之间依赖关系清晰面向接口的设计采用Spring等DI框架各小组负责自己的业务模块AOP等架构组件使基础服务自动化数据库集成主系统和各个边缘系统通过共享数据库进行数据交换数据库表混用现象突出用户、订单表中的字段可能多达100多个,被十几个系统分别使用数据库锁现象严重各个系统争用数据库锁某些数据库产品因此容易发生死锁现象部署架构负载均衡优于HA(热备)可以随时扩展新的运算能力大且快(量级为重)挑战架构演进CQRS缓存切分横纵切分

7、前后端切分异步与最终一致ReportingDatabase架构演进——CQRS电商的特点是,80%的请求是只读的CQRS=CommandQueryResponsibilitySeparation不仅仅是你认为的读写分离从UI,到Action,到Service,一直到数据库,贯穿始终的读写分离Cache-Control命名规范:GetXXX,QueryXXX读写分离的事务控制(电商容许很大范围的数据不一致现象)只读数据库架构演进——CQRS架构演进——各级缓存浏览器缓存CDN前端HTTP缓存(Squid,Vanish)HTM

8、L代码片缓存(Memcache)Service级缓存(缓存AOP)DataAccess级缓存HibernateCache优化缓存命中率隔离动态的部分客户端缓存网络设备缓存应用服务器缓存分布式缓存数据库缓存CQRS+缓存——解决80%的性能问题主库的50%以上的压力下降,可以专心处理事务只读数据库可以任意

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。