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

https://mp.weixin.qq.com/s?__biz=MzA3OTg5NjcyMg==&mid=2661671930&idx=1&sn=beaf8157eae145d03fa55367bc419a7c&chksm=84fdca07b38a431150d8d1596d9f110fa29ace1d0cfc72032815e34ee9d4eae46f3e747b911f&scene=21#wechat_redirect

图片没太有意义 宣传作用 文字关键. 

本次大会上,李三红重点呈现了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被编译拖累的问题。

 
原创: 老鱼 老鱼笔记 2017-08-23

导语:有人说,马云不如马化腾和李彦宏懂技术,因此,阿里巴巴的技术不行。但马云说,正因为自己不懂技术,所以阿里巴巴的技术才是最好。你可不要以为马云这话是语言艺术,在许多技术领域,阿里巴巴确实已经在领跑。

 

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也悉数现身会场,他们在做什么?

其实,这是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》。

这让老鱼着实有些意外,虽然每年国内巨头公司并不乏派人参会,但能够站在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领域的技术进展和创新,以往这方面披露的材料很少,不过从此次大会上,阿里巴巴的演讲中,我们还是能获知一丝端倪。

演讲者是来自阿里巴巴/蚂蚁金服的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并获得国际社区认可,老鱼想这或许就是阿里巴巴的成功之道。

[转帖]支撑双11每秒17.5万单事务 阿里巴巴对JVM都做了些什么?的更多相关文章

  1. 备战双 11!蚂蚁金服万级规模 K8s 集群管理系统如何设计?

    作者 | 蚂蚁金服技术专家 沧漠 关注『阿里巴巴云原生』公众号,回复关键词"1024",可获取本文 PPT. 前言 Kubernetes 以其超前的设计理念和优秀的技术架构,在容器 ...

  2. 第四章 电商云化,4.2 集团AliDocker化双11总结(作者: 林轩、白慕、潇谦)

    4.2 集团AliDocker化双11总结 前言 在基础设施方面,今年双11最大的变化是支撑双11的所有交易核心应用都跑在了Docker容器中.几十万Docker容器撑起了双11交易17.5万笔每秒的 ...

  3. 最强CP!阿里云联手支付宝小程序如何助力双11?

    作为首次“全面上云”的双11,阿里云征服了每秒订单峰值54.4万笔的世界新记录.正是在阿里云的保驾护航下,即使访问量是平时的5到6倍,小程序也鲜少出现卡顿或者宕机的现象,“依靠阿里云,我们整个天猫双1 ...

  4. 媲美5G的Wifi网速、“备战”资产一键领……揭秘双11小二背后的保障力量

    如今,双11不光是购物狂欢节,更是对技术的一次“大考”,对于阿里巴巴企业内部运营的基础保障技术而言,亦是如此. 回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“ ...

  5. 第八章 交互技术,8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障(作者:鬼道)

    8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障 前言 Native 开发的诸多亮点中,流畅体验和系统调用是最多被提及的.流畅体验体现在页面滚动/动画的流畅性,背后是更好的内存管理和更接近 ...

  6. 深入探访支付宝双11十年路,技术凿穿焦虑与想象极限 | CYZONE特写

    小蚂蚁说: 双11十年间,交易规模的指数级增长不断挑战人们的想象力,而对蚂蚁技术团队来说,这不仅是一场消费盛宴,而是无数次濒临压力和焦虑极限的体验,更是技术的练兵场.如今双11对蚂蚁金服而言,已经绝不 ...

  7. 双11大考 POLARDB分钟级弹性让企业轻松扩展

    无处不在的脉冲计算 阿里有双11,中国有春运,高考后有分数出来的那天,歌迷心中有周杰伦演唱会门票在线开售之时....有人的地方就有江湖,有人的地方也有脉冲计算,这些热点事件背后都需要大量的计算资源给予 ...

  8. 不仅仅是双11大屏—Flink应用场景介绍

    双11大屏 每年天猫双十一购物节,都会有一块巨大的实时作战大屏,展现当前的销售情况. 这种炫酷的页面背后,其实有着非常强大的技术支撑,而这种场景其实就是实时报表分析. 实时报表分析是近年来很多公司采用 ...

  9. [转]15年双11手淘前端技术巡演 - H5性能最佳实践

    [原文地址]:https://github.com/amfe/article/issues/21 前言 2015年是全面『无线化』的一年,在BAT(财报)几家公司都已经超过50%的流量来自移动端,这次 ...

随机推荐

  1. 【概率论】5-1:分布介绍(Special Distribution Introduction)

    title: [概率论]5-1:分布介绍(Special Distribution Introduction) categories: - Mathematic - Probability keywo ...

  2. linux中清理旧内核

    执行update的时候会自动升级内核,开机启动的时候会好多内核选项.所以我们要清理不需要内核. 查看当前系统使用的内核版本 uname -a Linux localhost.localdomain 3 ...

  3. ICEM-圆锥的一种画法(2D转3D)

    原视频下载地址:https://pan.baidu.com/s/1jIOEelo  密码: btap

  4. clickhouse redash---olap

    curl -XPUT '10.1.193.250:9200/ngx-logstash-2019-06/_settings' -d ' { "index.mapping.total_field ...

  5. EL表达式 与 JSTL标准标签库

    目录 EL表达式 什么是EL表达式 作用 EL内置11对象 EL执行表达式 JSTL 什么是JSTL JSTL标准标签库有5个子库 把JSTL标签库jar包引入工程当中 if标签 foreach标签 ...

  6. Access the value of a member expression

    Access the value of a member expression 解答1 You can compile and invoke a lambda expression whose bod ...

  7. React vs. Angular vs. Vue

    原文连接 历史 React是一个用于构建Web应用程序UI组件的JavaScript库. React由Facebook维护,许多领先的科技品牌在其开发环境中使用React. React被Faceboo ...

  8. javascript——语法 && 结构

    原文链接:Understanding Syntax and Code Structure

  9. STL函数适配器

    一:适配器简介 C++中有三类适配器,分别是容器适配器,迭代器适配器和函数适配器,这里主要介绍函数适配器. (一)函数适配器简介 STL中已经定义了大量的函数对象,但是有时候需要对函数返回值进行进一步 ...

  10. CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置

    Zabbix监控端配置请查看:CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 (1).在CentOS7(被监控端)上部署Zabbix Agent 主机名:youxi2 IP地址: ...