互联网的浪潮下,各类技术层出不穷,是跟上时代的步伐,仍是固守坚固的城池....docker
技术选型的问题决定软件项目的大方向,新旧技术之争是永恒的焦点。数据库
“不识庐山真面目,只缘身在此山中”,跳出技术的范畴,用业务发展的角度去审视技术,答案就会很是清晰。缓存
1000之内的加减乘除用计算器就足够了,没必要使用曙光超级计算机。安全
技术的权衡本质是在业务和成本之间寻求一个平衡点。服务器
2003年末,MySQL换成Oracle,同时使用一个开源的链接池代理服务SQL Relay。Oracle容量大、稳定、安全、性能高,Oracle的性能和并发访问能力之因此如此强大,有一个关键性设计——链接池,链接池中放的是长链接,任何一个请求只须要从链接池中取得一个连接便可,用完后释放,不须要频繁的建立和断开链接。网络
2004年,为解决SQL Relay死锁问题,开发语言从PHP换成Jave。缘由是当时(04年)Jave是最成熟的网站开发语言,有比较良好的企业开发框架,被世界上主流的大规模网站广泛采用。另外市场上Jave开发人才比较多,后期维护成本较低。数据结构
2004-2005(大概是这个时间段),引入IBM小型机、使用EMC存储。架构
2005年工做:
一、Oracle数据库分库,商品信息和用户信息分库存放,由数据库路由的框架DBRoute统一处理数据的合并、排序、分页等操做;
二、控制层用Spring框架替换EJB;
三、研发基于Berkeley DB的缓存系统,把不少不太变更的只读信息放了进去;
四、加入CDN内容分发网络。
目的:围绕提升容量、提升性能和节约成本。并发
2007年,参照GFS(Google File System),研发了淘宝图片存储系统TFS(TaoBao File System)。
特色:文件比较小;并发量高;读操做远大于写操做;访问随机;没有文件修改的操做;存储成本低;能容灾、能备份。
TFS已开源:code.taobao.org负载均衡
2007年,开发分布式缓存系统Tair(TaoBao Pair),由一个中心控制节点和一系列的服务节点组成。
Tair已开源:code.taobao.org
2008年后:
打散树状节点,把品牌、款式、材质等作成相似于标签的概念(属性),创建离散、灵活的数据结构。
拆分底层业务,例如建订单、减库存、修改订单状态等原子级操做,由原子级操做组成模块,大量模块能够复用,每一个系统能够单独部署。
开发了高性能服务框架HSF,解决分布式状况下的服务调用问题。
推出消息中间件Notify:把要发出的通知存放在数据库中,若是实时发送失败,再用一个时间程序来周期性地发送这些通知,系统记录下消息的中间状态和时间戳,保证消息必定能发出,也必定能通知到,且通知带有时间顺序,通知甚至能够实现事务性的操做。
数据库分库数量增多后,研发出数据查询的中间件TDDL(分布式数据访问层)
三个主要特性:
一、将针对数据的读写请求发送到最合适的地方;
二、数据的多向非对称复制——一次写入,多点读取;
SQL
当业务发展到必定程度时,独立成中间件,例如百度的DBProxy,淘宝的TDDL。(适合大规模公司)
中小公司适合使用开源方案:MySQL Router,Atlas
NoSQL
性能强,存储结构丰富。
小文件存储
海量存储,海量访问。(图片)
HBase,Hadoop,Hypertable,FastDFS。
大文件存储
视频。Hadoop,HBase,Storm,Hive
开发框架
选择成熟的框架
Web服务器
Tomca,JBoss,Resin,Apache
容器
docker
负载均衡
DNS,Nginx,LVS,F5
CDN
多机房
用户管理
sso,CAS
消息推送
运维平台
配置
部署
监控
应急
数据平台