支撑双11每秒17.5万单事务 阿里巴巴对JVM都做了什么?

简介: JVM圈子一年一度的顶级大会JVM Language Summit(JVMLS) 2017中,来自阿里巴巴的分享:《Optimize JVM at Alibaba for e-commerce apps running on 100,000+ servers》。

本文来自“IT168企业级”的今日头条企业号。感谢老鱼的精彩报道。
———————————————————————————————————————————
2017年,阿里巴巴王刚、吴翰清同时入选MIT TR 35创中国互联网企业先河。

2016年双11,核心应用容器化,几十万容器支撑175000单每秒的下单峰值,阿里巴巴再次刷新自己的记录,阿里云打破CloudSort世界记录,将100TB数据排序的计算成本降低到1/3。同时自研AliFlash大量部署;

2015年,Sort Benchmark2015年排序竞赛中,飞天用377秒完成100TB的数据排序,打破四项世界纪录;

2014年,OceanBase 0.5版成功用于支付宝核心交易系统。智能服务平台初步完成建设,双11大促承载8成客户服务压力;

2013年,完成去IOE;飞天5K项目完成,突破5千计算集群规模,阿里云成为世界上第一个对外提供5K云计算服务能力的公司;

事实上,阿里巴巴在技术上取得的成就远远不止于此,在Java领域,最近就有这样一件大事。

JVMLS 2017在原Sun总部召开!这一种情怀!

7月29日,美国加州Santa Clara,原Sun公司总部Auditorium building,聚集了一大批全球最顶级的Java专家,不仅有JVM架构师John Rose,就连Java之父James Gosling也悉数现身会场,他们在做什么?


image
▲Sun公司总部Auditorium building

其实,这是JVM圈子一年一度的顶级大会JVM Language Summit(JVMLS) 2017的现场。称之为顶级会议,不是因为大咖多,而是因为,这是一个决定Java技术未来走向的重要会议,影响着千万的Java开发者。

众所周知,Java以它突出的优点,被大多数程序员所喜爱。毫不夸张的说,全世界的软件和互联网公司绝大多数都是Java用户。凭借其强大的生态系统和庞大的代码库,Java多年来一直在牢牢的霸占着TIOBE编程语言榜首的位置。

阿里巴巴在JVMLS 2017大会的演讲

今年的JVMLS大会,正好走过第10个年头,与以往不同,这次老鱼在大会Topic List中居然破天荒的看到了来自中国的演讲主题《Optimize JVM at Alibaba for e-commerce apps running on 100,000+ servers》。


image
▲JVMLS大会演讲台上首次出现中国公司的演讲主题

这让老鱼着实有些意外,虽然每年国内巨头公司并不乏派人参会,但能够站在JVMLS大会演讲台上的,阿里巴巴绝对是第一个。要知道JVMLS大会并非水货大会,靠给钱或者刷脸想演讲肯定是不行的。想要有演讲资格,那得靠一流的Java技术水平和颇高的贡献值。

阿里巴巴与Java的故事

那么,在Java领域,阿里巴巴又有哪些成就和贡献?在好奇心驱使下,老鱼在网上详细搜索了一番,不查不之知道,一查还真吓一跳。

说到阿里巴巴在技术上最瞩目的成就,大部分人首先会想到双11。没错,从2009年双11每秒支持400单,到2016年,支撑每秒175000单,阿里巴巴一次又一次的刷新着自己创造的世界记录。

但鲜为人知的是,支撑双11这一世界上高复杂、高并发的电商系统背后最大的功臣其实是Java。

2004年,是一个转折。阿里巴巴从PHP语言转换成了Java语言,如今阿里基本上全线系统都是基于Java编写的,如企业分布式应用服务(EDAS)、分布式关系数据库(DRDS)、分布式消息服务(ONS)等等。

数据显示,阿里巴巴目前拥有着世界上几乎是最大规模的Java应用集群, Java代码量上亿,位居全球首位,当之无愧的Java最大用户。

如此大的Java应用规模,让阿里巴巴有机会通过丰富的业务场景试验,迭代式的创新,将还在象牙塔式的实验环境中的前沿Java技术应用于真实的生产环境。如双11这般大规模的Java实践经验,也是亚马逊、微软,Google等国外巨头所不具备的。

Alibaba JVM的三大技术创新

对于阿里巴巴在Java领域的技术进展和创新,以往这方面披露的材料很少,不过从此次大会上,阿里巴巴的演讲中,我们还是能获知一丝端倪。


image
▲阿里巴巴/蚂蚁金服的JVM 架构师李三红

演讲者是来自阿里巴巴/蚂蚁金服的JVM 架构师李三红,不仅携Alibaba JVM首次在大会上亮相,还分享了阿里巴巴结合自己的业务特点,在HotspotTM JVM上的开发成果。

Alibaba JVM了解的人可能不多,因为是首次亮相,老鱼这里简单科普下。正是由于广泛使用了Java技术,阿里巴巴最终走上了自己的JVM实践之路。但这并不让人意外,因为国际上早有先例,如Twitter也有JVM的定制优化实践。

最早从2010年,阿里巴巴就开始了基于OpenJDK6的JVM定制优化工作,这也是国内第一个优化、定制且开源的服务器版Java虚拟机。2015年开始,阿里巴巴JVM团队开始着手在OpenJDK8进行优化和定制工作,力求在稳定性,性能优化,以及技术前瞻性方面,满足阿里巴巴,蚂蚁金服,以及菜鸟快速发展的业务需求。定制的版本被命名为AJDK(Alibaba JDK),目前淘宝、天猫,蚂蚁,菜鸟,几乎所有的核心应用都从Oracle JDK切换到了AJDK上,并经过了双11的考验。

本次大会上,李三红重点呈现了Alibaba JVM三个方面技术创新:

  • Containers Inside JVM
  • Wisp协程
  • JWarmup

事实上IBM,Waratek最早在2010年就开始尝试多租户JVM技术,但是只有技术本身,鲜有应用。基于多租户的资源隔离技术在阿里巴巴找到了应用的场景落地。在多个应用单元共享JVM实例的情况下,Alibaba JVM在共享的JVM内部,为每个应用单元创建一个虚拟的Container, 用于管理应用单元的Heap, CPU等关键资源的使用,以确保多个计算单元的安全运行。

李三红在接受采访时表示:“如果没有我们的尝试,Johannes Kepler University(JKU) Linz在HotSpot TM JVM 上的协程实现,或许要在相当长的一段时间被束之高阁。Alibaba JVM的Wisp协程技术,基于JKU 的协程实现,在上面做了大量的创新性工作,包括协程调度算法,JVM锁机制改造等等。正常的Java应用可以在几乎不改任何代码的情况下,“透明”地使用协程技术,获得免费的性能午餐。目前,Wisp协程技术已经被核心电商应用所使用。通过这项技术,阿里巴巴把JVM的性能提高10%+。”

JWarmup也是同样如此。Warmup问题一向是Java应用的老大难问题,Azul的商业版JVM, Zing实现了ReadyNowTM来解决这个问题。JWarmup类似于ReadyNowTM,不过是完全基于OpenJDK实现。通过JWarmup技术,阿里巴巴解决了大规模Java应用部署情况下CPU被编译拖累的问题。

JVM架构师John Rose高度评价阿里贡献

而正是阿里巴巴这种结合业务场景的技术创新,受到了大会顶级Java专家JVM架构师John Rose的高度评价,John Rose在OpenJDK Open Source Collaboration部分总结中表示,感谢Google,阿里巴巴在OpenJDK上的持续投资,以及做出的不可思议的工作,希望持续通过OpenJDK进行合作。

据了解,该合作包含但不限于通过OpenJDK社区, 与Oracle一起推动Continuation和Coroutine技术在Java 语言的标准化。这一部分是Wisp协程技术依赖的基础与前提,Oracle希望看到Alibaba JVM在这部分的改动。

Alibaba JVM已经落地的技术,JWarmup等,Oracle建议通过提Java Enhancement Proposal (JEP) 的方式,进入标准OpenJDK实现。包括Java Language Architect, Brian Goetz, Oracle Runtime Lead, Karen, 以及C2 Compiler Lead, Vladimir Kozlov等,对JWarmup表示了极大的兴趣,并且非常希望阿里通过OpenJDK,可以将JWarmup技术贡献到社区。

Alibaba JDK追求的目标是“The Best Java Foundation for Cloud”。这话是李三红在接受采访时,让印象最为深刻的一句话,放在文章最后老鱼觉得极为合适,因为这句话非常清楚的给出了Alibaba JDK的定位及价值。Alibaba JDK的愿景是为云计算提供高性能的JDK版本,不仅服务好包括淘宝,蚂蚁,菜鸟等内部客户, 更希望覆盖和服务好阿里云上所有的Java客户。

李三红最后还强调,根植于大规模的,在电商,金融,物流领域丰富的Java应用场景实践, Alibaba JVM希望在更多的技术领域,诸如Garbage Collector(GC),大规模分布式环境下的Java计算等方面带来技术性突破。

这不得不让人感叹,相比当下众多浮躁的企业,只要能保证上线无bug就行的得过且过的态度, 阿里巴巴对技术的执着追求,就显得尤为难得。

当然,正确的投入势必会带来丰厚的回报,正是阿里巴巴在JVM方面的不断投入,也才有了今天我们看到的成功双11,也才有了今日阿里巴巴登台JVMLS并获得国际社区认可,老鱼想这或许就是阿里巴巴的成功之道。

目录
相关文章
|
2天前
|
消息中间件 存储 缓存
十万订单每秒热点数据架构优化实践深度解析
【11月更文挑战第20天】随着互联网技术的飞速发展,电子商务平台在高峰时段需要处理海量订单,这对系统的性能、稳定性和扩展性提出了极高的要求。尤其是在“双十一”、“618”等大型促销活动中,每秒需要处理数万甚至数十万笔订单,这对系统的热点数据处理能力构成了严峻挑战。本文将深入探讨如何优化架构以应对每秒十万订单级别的热点数据处理,从历史背景、功能点、业务场景、底层原理以及使用Java模拟示例等多个维度进行剖析。
18 8
|
存储 消息中间件 缓存
一套十万级TPS的IM综合消息系统的架构实践与思考
下面就由我来介绍一下我所负责的公司IM综合消息系统所经历的架构设计历程,以及架构设计过程中的一些思路和总结,希望能给你带来启发。
532 0
一套十万级TPS的IM综合消息系统的架构实践与思考
|
5月前
|
Oracle 关系型数据库 分布式数据库
PolarDB助力欧派家居核心系统去O上云,每秒处理万次事务
欧派家居选择阿里云PolarDB-PG数据库,因其顺应云趋势,提供稳定服务,提升扩容和运维效率。欧派运维负责人表示,PolarDB-PG云上运行优于自建Oracle,云运维响应更快,解决问题效率更高。
|
6月前
|
存储 关系型数据库 MySQL
美柚:消息2.0引入PolarDB-M支撑大表并发和存储
美柚旗下的移动互联网软件包括美柚、宝宝记、柚子街等丰富的产品矩阵,为广大女性用户提供全面的健康管理、知识科普、线上购物、互联网医疗等服务。
|
6月前
|
消息中间件 Java 程序员
阿里巴巴高并发架构到底多牛逼?是如何抗住淘宝双11亿级并发量?
众所周知,在Java的知识体系中,并发编程是非常重要的一环,也是面试的必问题,一个好的Java程序员是必须对并发编程这块有所了解的。
|
缓存 NoSQL 关系型数据库
性能第三讲:百万级QPS,支撑淘宝双11需要哪些技术
性能第三讲:百万级QPS,支撑淘宝双11需要哪些技术
1216 0
EMQ
|
消息中间件 存储 负载均衡
车联网平台百万级消息吞吐架构设计
本文将主要介绍如何针对百万级消息吞吐这一需求进行新一代车联网平台架构设计。
EMQ
554 0
车联网平台百万级消息吞吐架构设计
|
消息中间件 存储 负载均衡
多数据中心的百万级消息服务实战
多数据中心的百万级消息服务实战
251 0
多数据中心的百万级消息服务实战
|
存储 安全 数据处理
单账户实时记账能力达2万笔每秒 蚂蚁启用新一代高性能记账引擎
近日,蚂蚁在账务系统并发能力方面取得重大技术进展。蚂蚁技术团队将单账户系统性能提升近700倍,单账户实时记账能力峰值达到2万笔每秒。该技术不仅突破了目前单账户系统的性能和存储瓶颈,而且拥有账本实时计算、高频热点账户和支持交易并发等特点。
490 0
单账户实时记账能力达2万笔每秒 蚂蚁启用新一代高性能记账引擎
|
存储 消息中间件 大数据
万亿级数据洪峰下的分布式消息引擎
在首届阿里巴巴中间件峰会上,来自阿里的中间件架构师,Apache RocketMQ布道师冯嘉分享了《万亿级数据洪峰下的分布式消息引擎》。他主要从阿里消息引擎家族史、消息引擎面临的挑战,未来展望三个方面进行了分享。
6749 6
万亿级数据洪峰下的分布式消息引擎