给一个网站更换开发语言,这种事情想想都恐怖,淘宝网在2004年就从PHP语言转换成了Java语言,这是怎么做到的?一个企业级的Java系统应该采用什么样的架构?归纳网站遇到的问题,主要是对性能、容量和成本的控制,这有哪些通用的解决方案?在技术实力得到提升之后,淘宝网的哪些业务有了突飞猛进的发展?哪些业务又会遇到技术的障碍?
脱胎换骨的升级——更换开发语言
坚若磐石——围绕性能、容量和成本的进化
我的师父黄裳曾经说过“好的架构图充满美感”。一个架构好不好,从审美的角度就能看出来。后来我看了很多系统的架构,发现这个言论基本成立。反观淘宝以前两个版本的架构,如下页图所示,你看哪个比较美?
显然,第一个比较好看,第二个显得头重脚轻,这也注定了它不是一个稳定的版本,只存活了不到半年的时间。2004年初,SQL Relay的问题解决不了,数据库必须要用Oracle,那么从哪里动刀呢?只有换开发语言了。换什么语言好?用Java。Java是当时最成熟的网站开发语言,它有比较良好的企业开发框架,被世界上主流的大规模网站普遍采用。另外,有Java开发经验的人才也比较多,后续维护成本会比较低。