阿里中间件技术专家魏鹏:基于Java容器的多应用部署技术实践

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
MSE Nacos 企业版免费试用,1600元额度,限量50份
云原生网关 MSE Higress,422元/月
简介: 首届阿里巴巴在线技术峰会(Alibaba Online Technology Summit),将于7月19日-21日 20:00-21:30 在线举办。本次峰会邀请到阿里集团9位技术大V,分享电商架构、安全、数据处理、数据库、多应用部署、互动技术、Docker持续交付与微服务等一线实战经验。

首届阿里巴巴在线技术峰会(Alibaba Online Technology Summit),将于7月19日-21日 20:00-21:30 在线举办。本次峰会邀请到阿里集团9位技术大V,分享电商架构、安全、数据处理、数据库、多应用部署、互动技术、Docker持续交付与微服务等一线实战经验,解读最新技术在阿里集团的应用实践。

7月20日晚8点,阿里巴巴集团技术专家魏鹏将在线分享《基于Java容器的多应用部署技术实践》。为了帮助更多技术伙伴了解他,也更加深入了解技术分享的背景,云栖社区对他进行了采访并整理了这篇文章。

阿里巴巴在线技术峰会专题:https://yq.aliyun.com/activity/97
峰会统一报名链接:https://yq.aliyun.com/webinar/join/23


魏鹏,阿里巴巴集团技术专家。2009 年硕士研究生毕业加入阿里巴巴中国网站技术部,曾担任中国网站交易平台架构师,主导了交易系统服务化工作,设计实现的数据迁移系统高效的完成了阿里巴巴中国网站交易数据到阿里巴巴集团的迁移工作。目前在阿里巴巴中间件技术部的应用容器与服务框架组从事 Java 应用容器 Pandora 和服务框架 HSF 的相关工作,其中 Java 应用容器 Pandora 是阿里巴巴中间件运行的基础,而服务框架 HSF 则是阿里巴巴集团实现服务化的主要解决方案,二者在阿里巴巴拥有最为广泛的使用量。

技术提升“三件事”:从普通到创新,从被动到主动,从现在到未来

云栖社区:您自2009年硕士毕业就加入阿里,能和我们分享下您一路走来的技术之路吗?有哪些值得纪念的里程碑?

魏鹏:分享技术之路不敢这么说,我就是感觉公司和团队能够给予你很多机会去做自己喜欢的事,能做自己喜欢和认可的事情是非常幸福的。

我这里不去详细讲述这些年的工作,只说三件事吧:

第一个,从普通到创新;记得当时刚加入阿里在1688交易团队工作,主管交给我一个改造任务:将现有的消息组件迁移到公司新开发的分布式消息组件上。一个普通的迁移工作只是改动一下既有的代码看起来非常简单,但是经过分析,发现现有的交易消息系统设计的不利于未来业务的扩展,便有了改造已有消息系统的想法,经过和团队同学们的沟通,新设计的消息系统除了能够支持已有的业务以外,还简化了新业务的接入过程。其实如果带着审视的眼光去看简单而又普通的工作,兴许就会发现许多可以改善和创新的地方。

第二个,从被动到主动;在2012年做1688交易服务化工作的开始阶段,总会想所做的工作能够有多大的价值,后来发现所做工作最大的价值在于用户对你的肯定。因此我们从开始被动的接受需求完成开发,到主动的找寻系统数据上有价值的点进行服务提供,服务化工作在顺利的推进过程中,和其他业务方的配合也变得越发的顺畅。

第三个,从现在到未来。2013年底来到中间件技术部之后,开始接触中间件产品,和一群技术非常牛X的小伙伴们一起工作,这个过程充满了乐趣。由于负责的产品大都是技术产品,使用的对象都是公司内部的工程师,所以很多技术细节的取舍、产品的设计都必须非常仔细,因为我们的角色不仅仅是开发也是产品经理,对自己的要求变得更高。在中间件工作,你的一个想法可能会改变非常多工程师的开发方式和使用习惯,因此在中间件工作感觉就像面向未来工作。

中间件技术就像“一座桥”:要稳、要宽、跨度大

云栖社区:您目前在阿里中间件技术部,可以简要介绍下阿里中间件的研发初衷和历程吗?现阶段发展如何?

魏鹏:按照我的理解,当阿里开始尝试使用自己的分布式技术时,阿里中间件的雏形就开始出现了,它研发的初衷就是从用户角度出发,将分布式技术带给我们的开发同学,让他们能简单、安全并可靠的使用分布式技术(比如:RPC框架HSF、分布式数据访问层TDDL和分布式消息系统Notify等)。

现阶段阿里中间件是阿里巴巴集团生态系统的技术基石,为集团各大业务群提供可靠、高效、易扩展的技术基础服务。这里有世界一流的中间件产品和场景,这里有世界最大的电商交易业务场景,这里有世界领先的企业互联网架构平台。阿里中间件的愿景是打造世界一流的中间件产品,打造世界一流的高可用架构基础设施,打造世界一流的企业级互联网架构平台。

云栖社区:中间件从起源之时到伴随着互联网发展和分布式系统的兴起,中间件的概念也在发生演变,那么您是如何理解中间件技术的?

魏鹏:在我的理解里,中间件技术像一座桥,它联通着业务的现在和未来,能够为业务提供更加方便、安全、可靠和高效的解决方案,使业务能够不在受限于技术和规模的限制,提供给业务更加稳定的支撑。衡量一座桥,首先看它稳不稳,然后再看宽不宽,最后看跨度够不够大。中间件这座桥一定需要稳,因为它是技术基石;同时它也需要很宽,因为它需要高效的解决一些通用问题;最后它的跨度要大,因为它需要面向未来支撑更大的量级。

云栖社区:在中间件大团队中,您主要是做哪些方面的工作?主要成就有哪些?

魏鹏:我目前在中间件技术部-基础中间件-应用容器与服务框架小组,主要负责隔离容器Pandora和服务框架HSF的开发工作。所负责的Pandora与HSF的架构演进,立足现有的产品,面对未来的挑战,通过架构演进来应对挑战。

业务发展带来“四大”系统问题:性能、成本、效率、扩展

云栖社区:首届阿里巴巴在线峰会上,您分享的主题是《基于Java容器的多应用部署技术实践》。核心技术内容有哪些?什么样的用户适合来倾听本场分享?

魏鹏:随着业务的发展,机器的数量和系统复杂性不断提升,较之简单系统的开发部署,大规模分布式系统将会面对以下新问题:

  • 性能问题,系统之间通过远程调用来进行数据交换,一个用户请求所涉及的系统越来越多,远程调用的开销随之变大,如何降低远程调用开销,提升调用链路稳定性;
  • 成本问题,系统服务器数量不断增加,单个集群规模变大的同时带来了资源的浪费,如何提升资源利用率,优化成本;
  • 效率问题,拥有上千台服务器的系统,在每次发布过程中容易造成客户端的抖动,常规做法是多批少量发布,但这种发布方式延长了发布时间,如何能做到大集群快速全量发布;
  • 扩展问题,平台化系统对模块化有很强的需求,现行的Java模块化技术对于开发者而言显得过于复杂,如何降低模块化技术门槛,适合已有的运维部署体系。

阿里Java容器,能够支持多应用部署并将阿里中间件以服务的形式提供给托管的应用,应用之间的调用从远程自动转换为本地调用,以淘宝商品详情为例,综合对比性能提升40%以上,对外服务能力不变的情况下,节约近千台服务器。在提升性能、降低成本的同时,容器支持主子应用部署的形式使得平台化系统的搭建变得简单许多,平台方和下游业务方的部署变得更加灵活自由。容器还支持单应用多版本部署,使得应用发布时不再重启进程,而是做应用版本的上下线以及流量的切换,发布和系统规模束缚被打破,整个发布过程进入分钟级。

对Java中间件、应用容器、服务框架以及运维感兴趣同学都适合听。

技术成长之道:重在积累

云栖社区:我们了解到,您本人平时喜欢阅读技术书籍,与同事合著了《Java 并发编程的艺术》一书,并翻译一些国外优秀文档,对 Java 应用容器、多线程编程以及分布式系统感兴趣,对于广大开发者们的成长,您有哪些建议?或者请您推荐一本最喜欢的技术书籍(或书单)?

魏鹏:技术在平时工作中的运用来自于平时自己的积累,就像我在做1688交易数据迁移工作时一样,由于自己平时对于多线程编程非常感兴趣,做了一些积累,当问题真正来临之时,平日的积累就给了自己非常多的帮助,能够更好的完成系统的设计和开发,让自己体会到学有所用的乐趣。

我最喜欢的技术书籍是读书时候看的《Beginning Java Objects》,很喜欢那时看完每章都觉得收获颇丰的感觉。


7月20日晚8点,欢迎分享到朋友圈,不见不散!

1573fa3f3ab373a493f2be1cff18c3247ea6e813"

议题:《基于Java容器的多应用部署技术实践》

议题简介:随着业务的发展,机器的数量和系统复杂性不断提升,较之简单系统的开发部署,大规模分布式系统将会面对以下新问题:

  1. 性能问题,系统之间通过远程调用来进行数据交换,一个用户请求所涉及的系统越来越多,远程调用的开销随之变大,如何降低远程调用开销,提升调用链路稳定性;
  2. 成本问题,系统服务器数量不断增加,单个集群规模变大的同时带来了资源的浪费,如何提升资源利用率,优化成本;
  3. 效率问题,拥有上千台服务器的系统,在每次发布过程中容易造成客户端的抖动,常规做法是多批少量发布,但这种发布方式延长了发布时间,如何能做到大集群快速全量发布;
  4. 扩展问题,平台化系统对模块化有很强的需求,现行的Java模块化技术对于开发者而言显得过于复杂,如何降低模块化技术门槛,适合已有的运维部署体系。

阿里Java容器,能够支持多应用部署并将阿里中间件以服务的形式提供给托管的应用,应用之间的调用从远程自动转换为本地调用,以淘宝商品详情为例,综合对比性能提升40%以上,对外服务能力不变的情况下,节约近千台服务器。

在提升性能、降低成本的同时,容器支持主子应用部署的形式使得平台化系统的搭建变得简单许多,平台方和下游业务方的部署变得更加灵活自由。容器还支持单应用多版本部署,使得应用发布时不再重启进程,而是做应用版本的上下线以及流量的切换,发布和系统规模束缚被打破,整个发布过程进入分钟级。

听众受益:

  1. 阿里Java容器的整体架构与部署形式;
  2. 如何转换远程调用到本地调用,提升性能,优化成本;
  3. 如何通过多版本部署来提升发布效率;
  4. 如何支撑应用平台化。

附图:阿里巴巴在线技术峰会整体议程

8ca125440fcce3b5bdad1d15f41b2263565b3f89

峰会统一报名链接:https://yq.aliyun.com/webinar/join/23

相关文章
|
1月前
|
存储 容器
46.[HarmonyOS NEXT RelativeContainer案例三] 打造自适应容器:内容驱动的智能尺寸调整技术
在HarmonyOS NEXT的UI开发中,创建能够根据内容自动调整尺寸的容器是实现灵活布局的关键。RelativeContainer结合自适应尺寸设置,可以实现内容驱动的智能尺寸调整,使UI更加灵活且易于维护。本教程将详细讲解如何创建自适应尺寸的RelativeContainer,帮助你掌握这一实用技术。
41 5
|
3月前
|
弹性计算 Java Maven
从代码到容器:Cloud Native Buildpacks技术解析
Cloud Native Buildpacks(CNB)是一种标准化、云原生的容器镜像构建系统,旨在消除手动编写Dockerfile,提供可重复、安全且高效的构建流程。它通过分层策略生成符合OCI标准的镜像,实现应用与基础镜像解耦,并自动化依赖管理和更新。阿里云应用管理支持通过CNB技术一键部署应用至ECS,简化构建和运行流程。
|
4月前
|
存储 虚拟化 Docker
|
4月前
|
开发工具 虚拟化 git
自学软硬件第755 docker容器虚拟化技术youtube视频下载工具
docker容器虚拟化技术有什么用?怎么使用?TubeTube 项目使用youtube视频下载工具
|
2月前
|
算法 Java 调度
Java多线程基础
本文主要讲解多线程相关知识,分为两部分。第一部分涵盖多线程概念(并发与并行、进程与线程)、Java程序运行原理(JVM启动多线程特性)、实现多线程的两种方式(继承Thread类与实现Runnable接口)及其区别。第二部分涉及线程同步(同步锁的应用场景与代码示例)及线程间通信(wait()与notify()方法的使用)。通过多个Demo代码实例,深入浅出地解析多线程的核心知识点,帮助读者掌握其实现与应用技巧。
|
5月前
|
存储 监控 Java
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
293 60
【Java并发】【线程池】带你从0-1入门线程池
|
3月前
|
Java 中间件 调度
【源码】【Java并发】从InheritableThreadLocal和TTL源码的角度来看父子线程传递
本文涉及InheritableThreadLocal和TTL,从源码的角度,分别分析它们是怎么实现父子线程传递的。建议先了解ThreadLocal。
127 4
【源码】【Java并发】从InheritableThreadLocal和TTL源码的角度来看父子线程传递
|
2月前
|
Java
java 多线程异常处理
本文介绍了Java中ThreadGroup的异常处理机制,重点讲解UncaughtExceptionHandler的使用。通过示例代码展示了当线程的run()方法抛出未捕获异常时,JVM如何依次查找并调用线程的异常处理器、线程组的uncaughtException方法或默认异常处理器。文章还提供了具体代码和输出结果,帮助理解不同处理器的优先级与执行逻辑。
|
2月前
|
机器学习/深度学习 消息中间件 存储
【高薪程序员必看】万字长文拆解Java并发编程!(9-2):并发工具-线程池
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中的强力并发工具-线程池,废话不多说让我们直接开始。
88 0
|
4月前
|
存储 网络协议 安全
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
156 23