读《淘宝技术这十年》 总结下web架构的发展

 

一php时代

最初LAMP起步

技术分享

并将数据库做读写分离,拆分为主库+从库

技术分享

 

2随着流量和交易量的增加,mysql扛不住了。。,开始寻求oralce的解决方案,部署oralce集群,使用sql relay连接池实现负载均衡

技术分享

二 java时代

1把网站整体语言由php迁移到java

    大致方案,将业务分模块,共用同一个数据库,一个一个替换老模块

技术分享

2数据上亿后,进一步分库分表

3存储再次增加,使用缓存和cdn

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。技术分享

回顾:回顾一下上面几个版本,1.0版的PHP系统运行了将近一年的时间(2003年5月—2004年1月),服务器由一台发展到多台;后来数据库撑不住了,将MySQL换成了Oracle,引入了搜索引擎(2004年1月—2004年5月,叫1.1版本);然后不到半年的时间又把开发语言换成了Java(2004年2月—2005年3月,叫2.0版本),数据服务逐步采用了IOE;随着数据量和访问量的增长,我们进行数据分库、加入缓存、使用CDN(2004年10月—2007年1月,叫2.1版本)。这几个版本中间有些时间上的重合,因为很多架构的演化并没有明显的时间点,它是逐步进化而来的

TFS (Taobao File System)

解决海量图片存储问题

技术分享

 

Tair 分布式缓存系统

缓存网页页面,提高

技术分享

 

三分布式时代

技术分享

进行系统模块拆分,引入中间件

集群、分工、负载均衡、根据QoS分配资源等

HFS

技术分享

HSF是一个分布式的标准Service方式的RPC(Remote Procedure Call Protocol,远程过程调用协议)框架,

目前淘宝开发了新的框架dubbo,HFS的改进版。

TDDL 淘宝分布式数据访问层

再一次优化持久层,TDDl==DAL==DAO

进行数据切分

技术分享

 

Session

解决集群Session共享的问题,通常有以下两种办法。

硬件负载,将用户请求分发到特定的服务器。

Session复制,就是将用户的Session复制到集群内所有的服务器。

Tbsession

Session客户端存储,session存到cookie中

实现分布式环境下的session服务器端存储

session配置统一管理

支持动态更新

 

测试,持续集成,还是有这些字眼啊

 

虽然很多都是抽象的东西,但是,在代码层次,还是这么些

 

测试,不测试的后果几乎无法想象,总体专业的测试不说,在小模块,小功能层次,由技术人员编写单元测试,或者直接采用测试驱动开发是必要的。

 

持续集成,不解释

重构,代码质量的基本功,而这个,唯有多敲才能学会

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。