🍊 Java学习:Java从入门到精通总结
🍊 Spring系列推荐:Spring源码解析
📆 最近更新:2022年3月23日
🍊 个人简介:通信工程本硕💪、Java程序员🌕。我的故事充满机遇、挑战与翻盘,欢迎关注作者来共饮一杯鸡汤
🍊 点赞 👍 收藏 ⭐留言 📝 都是我最大的动力!
淘宝网自2003年上线以来,已经走过了将近20年的时光,我也是有幸从小到大一步步见证了它的发展,直到今天成为公司的一名员工。
回顾淘系技术的发展历程,不难发现它其实也印证了整个互联网后端从单点应用到如今的微服务的技术变迁史,“以史为镜,可以知兴替”,本文将淘系技术的发展概括成为了7个阶段故事,希望各位同学能从中收获一些关于技术架构演进的思考方法~~
part 1
淘宝网始于三丰、虚竹、多隆三位神级程序员,为了抢占一手市场,开发排期非常紧密,没有现成可复用的代码,所以最初的策略就是花钱买买买。
所以当时第一版的淘宝是直接买了使用LAMP架构的网站,即Linux、Apache、MySQL、PHP。
宇宙第一编程语言PHP并不是编译型的语言 =_=,它可以快速做发布,适合快速开发的项目
part 2
随着用户的增多,MySQL会首先成为系统的性能瓶颈,怎么办呢?
在当时的技术背景下,最常用到的是:
● 读写半分离技术(写库同时也会负责读取任务)
● 主从同步
现在常用的读写分离技术在当时还没出现
part 3
随着用户的增多,MySQL又出现性能瓶颈了!只不过这次的原因在于数据库的引擎,当时用的是MyISAM,有以下缺点:
● 不支持事务
● 只支持表级锁
怎么办呢?
最快的方法当然还是买买买。于是就买了ORACLE数据库来代替MySQL,性能提高的一个关键技术是池化
现在MySQL默认的InnoDB引擎当时还没出现
part 4
随着用户的增多,宇宙第一编程语言PHP出现了性能瓶颈,原因在于PHP没有开源的数据库连接池。
此时sun公司的Java语言登上了舞台,并且一直沿用至今。
同时公司也把容器技术从Apache替换成了Weblogic,同时内外部也研发出了一些框架:
● MVC架构:WebX
● EJB
● IOE:IBM小型机、ORACLE数据库、EMC存储
WebX非开源,生命力不足,已被渐渐取代
EJB非常笨重且重量级,反观Spring就在轻量级的道路上越来越坚定
IOE现已经被禁止使用,太贵了!
part 5
随着用户的增多,之前买的ORACLE数据库又出现了问题,此时分库分表的雏形也出现了,比如将商品根据id分成了两个库,在两个数据库之上加了一层路由层:
- 将不同的查询路由到不同的数据库上
part 6
分库分表做的越来越多之后,如果继续购买更多的小型机,成本会一直上升,这时就引入了缓存。
除此之外,还将EJB换成了Spring,将收费的Weblogic换成了开源的Jboss
C# 在面世时和 .net 框架配合在一起,吸引了非常多的开发者,但Java以更加开源的姿态,吸引了越来越多的开源项目,形成了良性循环。后来C# 也选择了开源,但现在看来,好像为时已晚
引入的缓存主要包括以下三个方面:
- CDN:CDN骨干网
- 搜索:opensearch
- 缓存:Tair
在淘宝这个APP里,主要占据存储空间的是:商品主图、商品视频、商品详情介绍、交易快照(没此商品修改都要保存历史快照信息),要解决数据存储昂贵的问题,研发了TFS框架:查询商品详情时,后端只是返回一个TFS链接,终端拿到链接后就从TFS里拿到富文本信息
经过上面的发展,淘系分布式集群的大致样貌就变成了这样:
part 7
随着规模不断地扩大,每个不同的服务之间的耦合度非常紧密,这样以来,底层的ORACLE就吃不消了,因为底层连接池变得不够用了。
由于上次应用耦合紧密,所以不同的应用访问的都是同一个库,此时单纯增加业务系统的机器数是完全不可行的,拿交易系统来说,和商品系统、淘宝、支付宝等终端应用平台绑定的非常紧密,这种巨无霸打包起来的应用结构就会引起越来越多的性能问题,就要把应用的耦合这种问题解决掉。
于是就要做微服务的拆分,从最底层开始拆分,上层应用才能继续扩展,满足之后的增长潜力,在淘系业务里,可以拆分成:
● 底层业务:基础服务,例如商品中心、营销优惠计算平台
● 上层业务:五花八门的业务方,底层业务部门的接入方
将底层服务抽出来作为中台,这就是大中台战略的提出,比如微服务的服务治理微观就是服务生命周期的控制,把集团层面的各个业务方看成微服务,中台业务就是集团层面的业务治理,如果业务接入了集团的中台业务,就可以在集团的上下游业务中畅通无阻,大大降低了接入各种系统的复杂度。此外,可供业务方选择的轮子也有很多,各种业务花样都可以找到。
大中台战略也引领了一波后端技术的潮流,现在任然在集团内不断被践行着
什么样的业务需要中台化?
达到一定规模效应的服务,经过中台沉淀,才会对业务效率有极大的提升
例如我们常听的经典中台:
● UIC:用户基础服务
● TC:交易线服务
● IC:商品中心
随着大中台的发展,阿里系成立了专门的共享事业部,提供了很多基于基础服务之上的业务中台,例如营销优惠计算。
正是得益于淘系中台业务的拆分,淘系在今后的日子里就拉开了浩浩荡荡的微服务化的序幕,再加以双十一的磨练,最终成为了今天的样子。
今后会发生什么样的故事,我们一起拭目以待!
版权归原作者 小王曾是少年 所有, 如有侵权,请联系我们删除。