云时代,JAVA何去何从?

内容提要:

✔Java应用在云上遭遇到哪些挑战?

✔ 企业如何选型生产环境使用的JDK?

✔阿里巴巴Dragonwell 如何助力Java应用迁移到云上?

在云原生的世界里,Go语言凭借语法简单、启动速度快、依赖少、Goroutine并发等特点,成为了一等公民。而Java作为20年前的编程语言,那个时代注重的是复杂的OOP设计、企业级规范,长期运行下的稳定性和性能。Java语言似乎与当前云原生环境下的快速交付、微服务等需求格格不入。

阿里巴巴是世界上最大的Java用户之一,在拥抱云原生的同时,也要保持现有业务的迭代演进。因此Alibaba JVM团队一直致力于让Java语言与时俱进,适应云上场景。今天我们就来聊一聊Java在云上遇到的挑战以及如何通过Dragonwell JDK来克服这些困难。

 

Java语言 & 云原生

Java是一门企业级,高性能,高稳定性的编程语言。企业级简单来说就是适合开发长期运行的大型应用,比如Linux + OpenJDK的开发的服务如果没有发布和升级的需求,一般情况下可以保证运行一年以上不用重启。

Java拥有丰富的生态,大量的高质量第三方类库、框架(比如Spring、Netty)被维护在maven等中心仓库,用户只需声明式地引入包依赖,即可调用实现。举例来说,node的npm生态虽然很完善,但是想要找到一个分布式事务框架就很困难;反观Java,几乎所有开源软件与工具都会考虑对Java平台的支持,我们可以找到多种分布式事务框架的Java客户端。因此只要选择了Java,就是选择了一个资源宝库。

作为Java的开发者肯定听说过Java EE(目前捐给了Eclipse社区,更名为Jakarta EE),Java EE很大程度上成就了Java语言。编程语言本身只是提供控制流、数据结构定义、垃圾回收、并发基础设施、抽象手段等基础能力。而这个编程语言的杀手级场景究竟什么,是取决于语言之上的标准库、规范的。Jakarta EE定义的JDBC规范就引领各大厂商为Java提供了接口一致的数据库驱动; Tomcat、JBoss实现的Servlet容器让开发者有机会选择不同的Servlet实现。

Java的跨平台性向开发者屏蔽了底层的硬件和操作系统细节。开发者们可以在Mac、Windows的开发环境开发、调试应用,最后到Linux的生产环境去部署,这大大降低了研发、调试、运维的工作量。

万物皆有TradeOff,我们上述的一些设计取向给我们带来的一些麻烦。

 

代码加载开销高

为了实现跨平台性,Java定义了自己的字节码,通过字节码描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值