如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
系统架构概述了解什么是架构了解Alibaba网站架构的历史掌握Alibaba网站架构的现状掌握网站架构设计的理念架构规定了软件的高层划分及各部分间的交互架构不是软件,但架构决策体现于软件平台和框架之中架构的优劣决定了业务应用系统的实施能力和发展空间技术搭台,业务唱戏架构搭台,应用唱戏架构永远在随着业务的发展而变迁–拥抱变化!Perl,CGI……MysqlApache服务器在美国,56KModem,远程开发、测试、部署Java服务器使用线程性能比cgi技术使用进程好Java相比Perl,可维护性好,开发效率高Java开始在国内流行开始使用Java模板技术采用WebMacro中间层采用Servlet技术,使用POJO封装业务逻辑和数据访问使用BizObj对象封装基本业务逻辑和数据访问方法其它业务对象继承BizObj方法,实现自己的业务逻辑和数据访问方法使用JDBC访问数据库Servlet容器使用resin,Web服务器使用Apache表现层仅仅使用模板技术,缺乏MVC框架,导致大量的servlet配置业务逻辑层和数据访问层耦合,可维护性和可扩展性差受到EJB风潮的影响表现层采用WebX模板技术Velocity在Turbine基础上开发了自己的服务框架和一系列公共服务通过一个delegate对象访问业务逻辑层业务逻辑层使用EJB(SLSB,CMP,DAO等)通过一个façade对象供表现层delegate访问Façade对象访问多个SLSB实现的controller对象实现业务逻辑使用CMP实现单条记录的增加和删除考虑性能,在CMP之外封装DAO对象通过JDBC访问数据库EJB服务器使用WeblogicWeb服务器使用ApacheTurbine的发展缓慢EJB配置复杂,可维护性差重量级框架,业务侵入高高度容器依赖,可测试性差CMP性能差,导致DAO和CMP并存表现层使用WebX和Service框架Velocity模板技术自有服务框架及多种公共服务:FormService,TemplateService,MailService,RundataService,UploadService等通过command模式和biz层交互无状态Web应用,基于cookie实现session,获取线性扩展性业务逻辑层使用AlibabaService框架,并且引入spring框架Spring容器和AlibabaService框架无缝集成AO,BO使用分布式cache缓存对象数据访问层透明的事务处理引入Hibernate和iBatis,以iBatis为主数据库成为瓶颈->分布式数据库应用耦合严重->SOAPampas平台中文站会员数超过2000万中文站Offer已经超过1.5亿中文站每天的用户PV已经超过1.6亿中文站每天新发Offer超过100万中文站每天重发Offer超过1500万国际站略少,但是增长迅猛中文站/国际站应用部署图网站镜像部署图(国际站)流量随着用户量而增加业务的变更频繁用户行为的收集产品角色的细分及调整7X24的高可用性流量激增业务变更数据挖掘网站产品的生命周期业务1架构是平衡的艺术不要把简单问题复杂化,也不要把复杂问题简单化系统架构需要考虑哪些业务要求和质量指标?怎样取得平衡?分解复杂度–自上而下,分离关注点(总体系统局部)分配复杂度–用合适的技术、合适的组织来解决问题分解业务划分销售后台会员体系系统架构网站应用系统应用优化读总体架构考虑面向服务体系系统架构更加专业化、服务化的信息收集系统更加全面化、自动化的配置管理更加有效率的镜像同步、切换局部应用优化分布式文件系统优化数据同步系统读写分离架构随着业务发展不断演进架构发展要有方向有节奏Q&A