主页 > 程序语言 > 大家知道淘宝是用什么语言开发的吗?

大家知道淘宝是用什么语言开发的吗?

2022-06-18 20:44来源:m.sf1369.com作者:宇宇

淘宝的技术架构一直在变的,分几个阶段:

V1.0:小而快(2003.5 – 2004.5)2003年淘宝诞生,用的是LAMP经典架构(linux+apache+mysql+php),后端用的是php语言

V2.0:多层次结构,开始做自己的软件(2004.2 – 2008.3)2004年在淘宝业务发展的推动下,淘宝开发参考了电信运营商、银行等的一些企业解决方案,将LAMP架构改造为Oracle+IBM小型机的数据库架构和EMC存储方式。为了配合Oracle,php也彻底被替换为java。

V3.0:产品化思维及服务导向框架(2007.10-2009.11)2007年,淘宝全年的交易额超过400亿元,平均近1亿多一天,每天有100多万笔交易被创建。淘宝被改造成分布式架构,引入缓存,分布式存储和分布式搜索引擎。这时候应用服务器使用的是JBoss,数据库又从Oracle变成了MySQL,语言还是java。

V4.0:系统化、智能化、专业化(2009.8-)从2010年开始,淘宝网重点着眼于统一架构体系,从整体系统层面考虑开发效率、运维标准化、高性能、高可扩展性、高可用、低成本方面的要求,底层的基础架构统一采用了阿里云计算平台。这时候的web后端语言没变,还是java。

顺便说一下,上图的中间件也是java开发的,java语言在阿里应用非常广,大约90%以上的系统是由Java技术构建。

淘宝网在最早的时候使用的 PHP 开发的系统,不过在 04 年左右,阿里开始把 PHP 换成 Java,然后阿里基本上全线使用的 Java。

因为面对着如此量级的用户和并发量,所以逼着阿里把 Java 的性能优化到极致,并且对于很多开源框架或中间件,也将其的性能压榨到极致,比如 MySQL,另外阿里也贡献了极多及优秀的开源框架。

让我们看看阿里都用到或用过哪些技术最初淘宝使用的是 LAMP,也就是 Linux + Apache + MySQL + PHP;随着业务量和并发量的上升,开始转用 IOE,也就是 IBM 小型机 + Oracle + EMC 存储,然后随着 PV 的继续上升,IOE 的框架已经到了瓶颈,阿里提出了“去 IOE”的口号,随着 PHP 向 Java 的迁移,分布式平台开始诞生;

邀请 SUN 公司更换开发语言,开始使用 Java 做基础语言,采用 MVC 框架 + EJB + IBatis ,后续改为 Spring + IBatis;

关于缓存,从最早的 ESI 做页面片段缓存,到 TBstore 分布式 Key-Value 缓存,发展到现在的自研分布式缓存系统 Tair;

负载均衡技术:Nginx、HAProxy,都是工作在网络第七层的反向代理软件;上了阿里云之后,有一个负载均衡的服务 SLB,提供给所有的阿里云用户使用;

分布式服务框架,红极一时的 Dubbo,阿里后来选择了 HSF 用于系统间的调用,是一个分布式 RPC 框架;

消息中间件:Notify 是阿里自研的消息服务引擎,也是支撑双十一的核心系统之一;

分布式数据库访问:TDDL 是 Taobao 分布式数据层的意思,数据存储可以自由扩展,不再受单机容量的瓶颈,后来改了个名字叫做 DRDS (分布式关系数据库服务)。

再看看阿里贡献过哪些开源项目FastJSON:一个性能很好的 Java 语言实现的 JSON 解析器和生成器;

Dubbo:高性能的分布式服务框架,可以通过高性能的 RPC 实现服务之间的调用;

Druid:一个高效的 JDBC 连接池、监控组件;

AliSQL:开源数据库,是基于 MySQL 官方版本的一个分支;

RocketMQ:分布式消息中间件;

ApasaraCache:飞天缓存,基于 Redis 改进的 K/V 数据库;

FastDFS:一个开源的分布式文件系统;

OceanBase:个支持海量数据的高性能分布式数据库系统;

Zeus:是一个完整的 Hadoop 作业平台,它支持了任务的整个生命周期;

Otter:基于数据库增量日志解析,将数据准实时同步到另外的数据库中,是一个分布式数据库同步系统。

当然,这些项目只是阿里开源项目中很小的一部分,目前阿里系基本是全线 Java,而且技术水平在国际上也是一流的。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

相关推荐

哪些编程语言是函数式的

程序语言 2024-01-14

VB编程的函数详解

程序语言 2024-01-02

c语言扑克牌问题

程序语言 2023-12-28

iphone语言与地区有什么用?

程序语言 2023-12-19

C语言程序,怎么使用,

程序语言 2023-12-17

把word嵌入到C#程序中

程序语言 2023-11-26

HTML是不是编程语言?

程序语言 2023-11-17