淘宝技术架构演进

这篇具有很好参考价值的文章主要介绍了淘宝技术架构演进。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

演进过程

看了《淘宝技术这十年》,总结于此。

LAMP架构

从无到有

2003年,eBay 和易趣在资本方面正打得不可开交,那怎么在最短的时间内把一个网站从零开始 建立起来呢?

淘宝为了尽快上线,仅花了一个月把买来的LAMP(Linux+ Apache+MySQL+PHP)改造上线。主要的改造是:从一个数据库进行所有的读写操作,拆分成一个主库、两个从库的结构,读写分离。

淘宝系统架构,数据库,oracle,搜索引擎,系统架构

这么做的好处有几点:有了备份,使得安全性增加了,读写效率得以提升。随着用户需求和流量的不 断增长,系统做了很多日常改进,服务器由最初的一台变成了三 台,一台负责发送Email、一台负责运行数据库、一台负责运行 WebApp。一段时间之后,商品搜索的功能占用数据库资源太大了 (用like搜索的,很慢),2003年7月,多隆又把阿里巴巴中文站 的搜索引擎iSearch搬了过来。

数据库切换

在2003年年底,MySQL已经撑不住了,技术的替代方案非常简单,就是换成Oracle。换为Oracle的原因除了它容量大、稳定、 安全、性能高之外,还有人才方面的原因。在2003年的时候,Oracle给全球的技术专家颁发一些头衔,其中最高级别的叫ACE,被授予这个头衔当年全球只有十几名,而阿里巴巴就有4名。

Oracle的性能和并发访问能力之所以强大,有一个关键性的设计——连接池,连接池中放的是进程级别的长连接,要独占一部分内存空间。也就是说,这些连接数在固定内存的Oracle Server 上是有限的,任何一个请求只需要从连接池中取得一个连接即可,用完后释放,这不需要频繁地创建和断开连接,

但对于PHP语言来说,它对数据库的访问都是很直接的。每一个请求都要一个连接。如果是长连 接,应用服务器增多时连接数就多了,就会把数据库拖挂;如果是短连接,频繁地连接后再断开,性能会非常差(而Java语言有很多现成的连接池)。为了解决这个问题,引入了一个开源的连接池代理服务SQL Relay,提供连接池的功能,多隆对它进行了一些功能改进之后,系统的架构就变成了如下形式。

淘宝系统架构,数据库,oracle,搜索引擎,系统架构

后来数据量变大后,本地存储无法 满足了,买了NAS(Network Attached Storage,网络附属存储), NetApp(Network Appliance,美国网域存储技术有限公司)的 NAS作为数据库的存储设备,加上Oracle RAC来实现负载均衡。后来采购了Dell和EMC合作的SAN低端存储,性能一下提升了十几倍,这才比较稳定了。再后来,数据 量更大了,存储的节点一拆二、二拆四,RAC又出问题了,这才 踏上了购买小型机的道路。在那段不稳定的时间里,替换完数据库后,时间到了2004年春天,他们在把数据的连接放 在SQL Relay之后就噩梦不断,这个代理服务经常会死锁,如同之 前的MySQL死锁一样。虽然多隆做了很多修改,问题很多,最快的解决办法就是“重启” 它的服务。这在白天还好,只要连接上机房的服务器,把进程杀 掉,然后开启就可以了。但是最痛苦的是它在晚上也要死掉,于 是工程师们不得不24小时开着手机,一旦收到“SQL Relay进程挂 起”的短信,打开电脑连上机房的网络重 启服务。

从Php到Java

2004年初, SQL Relay的问题解决不了,数据库必须要用Oracle,只有换开发语言了。

Java是当时 最成熟的网站开发语言,它有比较良好的企业开发框架,被世界 上主流的大规模网站普遍采用。现在摆在他 们面前的问题是用什么办法把一个庞大的网站从PHP语言迁移到 Java?

他们的大致方案是 给业务分模块,一个模块一个模块地渐进式替换。如用户模块, 老的member.taobao.com继续维护,不添加新功能,新功能在新 的模块上开发,跟老的模块共用一个数据库,开发完毕之后放到 不同的应用集群上,另开一个域名member1.taobao.com,同时再 替换老的功能,替换一个,就把老的模块上的功能关闭一个,逐 渐把用户引导到member1.taobao.com,等所有的功能都替换完之 后,关闭mem文章来源地址https://www.toymoban.com/news/detail-735549.html

到了这里,关于淘宝技术架构演进的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 系统架构设计师考试论文:论NoSQL 数据库技术在现代软件项目中的应用与效果

            随着互联网 web2.0 网站的兴起,传统关系数据库在应对 web2.0 网站,特别是超大规模和高并发的 web2.0 纯动态 SNS 网站上已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL(Not only SQL )的产生就是为

    2024年02月11日
    浏览(43)
  • Oracle数据库的闪回技术

    当 Oracle 数据库发生逻辑损坏时,可以使用闪回技术简单快捷地进行数据库的恢复。 闪回数据库使用闪回日志执行闪回。闪回删除使用回收站。其它所有技术都使用还原数据。并不 是所有闪回功能都会修改数据库。有些功能只是一些用来查询数据以往版本的方法 一、闪回数

    2024年02月15日
    浏览(41)
  • 构建高可用性数据库架构:深入探索Oracle Active Data Guard(ADG)

    随着企业数据规模的不断增长和业务的复杂化,数据库的高可用性和可靠性变得尤为重要。Oracle Active Data Guard(ADG)作为Oracle数据库提供的一种高可用性解决方案,在实时备份和灾难恢复方面发挥着重要作用。本文将深入探讨ADG的原理、配置步骤、优势以及故障处理方法,旨

    2024年04月15日
    浏览(56)
  • 基于python淘宝商品数据爬虫分析可视化系统 网络爬虫+Flask框架+MySQL数据库 大数据 毕业设计

    python语言、Flask框架、淘宝商品数据、selenium网络爬虫、MySQL数据库、数据分析、Echarts可视化大数据毕业设计、爬取 Selenium网络爬虫淘宝商品数据可视化系统是一个基于Python和Selenium的Web爬虫应用程序,可以实现对淘宝上特定商品的价格、销量、评价等数据进行自动化抓

    2024年02月16日
    浏览(50)
  • windows系统如何进入oracle数据库

    有没有同志在工作的过程中和我一样,在Windows系统中通过命令行访问oracle数据库出现无法访问的情况。在这里感谢我们的运维工程师对我的悉心指导,特将此总结,供大家参考,如有疏漏,请多多指教! 按WIN+R键,在运行框中输入“cmd”,点击确定。如下图: 进入命令行界面

    2024年02月11日
    浏览(38)
  • Linux系统下操作Oracle数据库

    Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种

    2023年04月08日
    浏览(51)
  • 3、数据库:Oracle部署 - 系统部署系列文章

           Oracle数据库的安装,以前写过一篇,这次将新版的安装再记录一次,让读者能够有所了解,笔者也能够记录下最新版的安装过程。 一、 数据库下载; Oracle最新版目前在官网是19c,从下面这个链接进去下载便可。        https://www.oracle.com/cn/database/technologies/oracle

    2024年02月07日
    浏览(39)
  • 4. Oracle12c数据库在Linux系统安装步骤

    1.Oracle11gR2数据库安装 https://edu.csdn.net/course/detail/27750 2.Oracle 12c 数据库安装 https://edu.csdn.net/course/detail/35882 ​ 3.Oracle 19c 数据库一键安装 https://edu.csdn.net/course/detail/39198 4.Oracle 19c RAC For Linux安装部署 (视频讲解) https://edu.csdn.net/course/detail/35792 5.oracle 19c 数据库基础和日常管理

    2024年02月15日
    浏览(45)
  • 稳,从数据库连接池 testOnBorrow 看架构设计 | 京东云技术团队

    本文从 Commons DBCP testOnBorrow 的作用机制着手,管中窥豹,从一点去分析数据库连接池获取的过程以及架构分层设计。 以下内容会按照每层的作用,贯穿分析整个调用流程。 The indication of whether objects will be  validated before being borrowed  from the pool. If the object fails to validate, it will

    2024年02月11日
    浏览(41)
  • ORACLE 10G版本数据库系统产生大量归档日志问题的分析

    近期接到用户告知 数据库归档暴增,导致生产库归档空间满,手动删除后,归档空间很快就会满。 立即登陆数据库系统,查询发现归档日志异常增长,从以前的每小时产生3 00M ,增长到每小时产生5 9150M 。拉取问题时段的A WR 报告,将问题S QL 提交给应用运维人员,应用修复

    2024年02月03日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包