热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

谈谈阿里系的技术积累

转载于冯大辉博文:http:dbanotes.netreviewalibaba_group_tech.html喧嚣的双11促销活动已经结束,淘宝、天猫、支付宝等

转载于冯大辉博文:http://dbanotes.net/review/alibaba_group_tech.html

       喧嚣的双 11 促销活动已经结束,淘宝、天猫、支付宝等阿里旗下的网站在当天爆发出惊人的能量,让人瞠目结舌:全天总交易额达到 191 亿,其中天猫132 亿,淘宝 59 亿,支付宝日订单数量超过一亿笔。金额已经超过美国去年“网购星期一”最高纪录,当然也超过今年的黑色星期五的 10.42 亿美元。尽管大淘宝在促销开始的时候服务稍有不稳定,但整天下来服务堪称可靠。这是个值得称赞的成就。 从另一个角度看数据,峰值数据是每分钟 89678 笔交易,峰值时刻一分钟超过 1700 万人民币的交易额,对比之下,eBay 披露的数据是每秒钟 2500 美元(峰值或许会更高一些)。但经此一战,可以说,阿里系在电商领域上的技术积累的确是全球独步了。

阿里系能达到今日的技术积累,绝非一朝一夕之功,依笔者个人的看法,以下几个先决条件素不能不提:

第一,支付宝、淘宝团队在大规模分布式事务(Transaction) 处理能力上多年来的技术积累,这份经验相当宝贵;

第二,在 2009 年,阿里巴巴骨干传输网 ABTN (Alibaba Backbone Transmission Network) 的建成为整个阿里系子公司的网络服务能力提供了网络基础保障,这也是国内第一家运营商级别的电子商务骨干网;

第三,以开源领域技术专家,LVS 项目创建人章文嵩先生加盟淘宝为标志,淘宝在底层基础设施上的技术能力大幅提升,章带领的基础核心软件研发团队基于 LVS 实现高性能负载均衡组件,构建了强大而且高效的 CDN 系统,CDN 系统大量采用低功耗服务器( GreenCompute.org ),绿色节能;

第四,硬件带来的红利。固态硬盘(SSD) 与 PCI-E Flash 等硬件组件技术已经足够成熟并被大规模应用,为数据库服务器处理能力提供了硬件层面上的支撑能力,可以更加灵活部署,成本更低,不必再像过去那样单纯依赖于小型机与高端存储的支撑。

第五, 在 2008 与 2009 年大刀阔斧的系统结构改进,比如外界所知道支付宝的 SOA 化,淘宝五彩石项目等,最近两三年仍然在做精细化的提升,但是总结架构没有太大的变动。

第六,淘宝技术团队对运维能力的掌控与技术积累(为防止阿里云掠美,必须要说一下此事与阿里云无关,各自是独立的团队) ,具备相当灵活的分配调度硬件以及网络资源的能力。或许有人会指摘限流的问题,要知道,对系统限流的能力也是技术实力的体现,以前的几次大促活动中某银行网管因为对流量控制措施不当,直接导致核心设施不可用,造成了非常大的负面影响。

       在 2010 年与 2011 年的两次双 11 促销活动中,技术团队积累了足够的运维与运营经验,能够有针对性的进行全面准备,而且,通过过去几次”压力测试”,也促使国内银行系统对于网银网关处理能力进行了扩容与改造,否则,按照今天的交易量,各家银行网关也无法承载如此大的支付请求的冲击。

       阿里技术团队这几年来,在开源软件研发上进行了很大的技术投入,比如在 MySQL 数据库研发与部署实践上,已经能够有实力解除对 Oracle 数据库的依赖,而本次活动中,最核心的MySQL集群一天共支持了 20 亿个事务,MySQL 核心数据库顶住了每秒钟 10 万次事务、百万次 SQL 执行(不过支付宝最核心的数据库依旧是在 Oracle 数据库 上,淘宝天猫的核心库已经在 MySQL 上)的压力;在 Java 核心技术上的技术投入,针对业务特点优化定制的 JVM (TaobaoJVM) 已经在淘宝、天猫等网站上线,全部替换了 Oracle(Sun) 官方 JVM 版本,成果显著,并已经逐步反馈到开源社区中去;再比如淘宝在 Nginx 基础上改进的 Web 服务器 Tengine … 此外,淘宝根据电子商务业务自行研发的各种关键组件,比如流控与防攻击模块等,也对这次成功大促起到了很好的保障作用。技术团队在开源软件领域的投入取得了惊人的回报,现在来看,此乃相当有前瞻性的举措,值得肯定。阿里技术团队正在试图掌控整个网站体系中的所有组件的核心技术,这将是一个趋势。

       最后,技术的背后,最关键的还是人和团队。阿里巴巴数年来在电子商务技术领域领域吸引了不少业界技术专家,如王文彬,章文嵩等,造就了一批顶尖技术牛人,也培养并且储备了一大批技术人才,锻炼了一个有实战经验有战斗力的技术团队。正是这一批踏实肯干的技术人使得这一切成为可能。

       后记:或许有人说这是在神话或者神化淘宝技术团队,应该说,以上只是客观事实。国内想跟淘宝同台竞技的团队,更应该反思一下到底差距在哪里,哪些地方可以借鉴并且少走一点弯路。



推荐阅读
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
author-avatar
营在天下的世界_141
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有