互联网之于JavaScript、人工智能之于Python,微服务风潮之于Golang,在原生云微服务时代到来时Java能否还长期占据编程语言榜单第一位位置呢?Oracle Labs新公开了一项黑科技:Graal VM,从它的口号“Run Programs Faster Anywhere”就能感觉到一颗蓬勃的野心,这句话显然是与1995年Java刚诞生时的“Write Once,Run Anywhere”在遥相呼应。

什么是Graal VM?GraalVM is a high-performance runtime that provides significant improvements in application performance and efficiency which is ideal for microservices. It is designed for applications written in Java, JavaScript, LLVM-based languages such as C and C++, and other dynamic languages. It removes the isolation between programming languages and enables interoperability in a shared runtime.

GraalVM为微服务和高性能而生,它支持各种语言,甚至自定义编程语言,它可以将各种语言放在一起进行编程,并且编译后运行在不同环境,例如OpenJDK(Java环境)、Node.js(Javascript)、数据库环境等执行。

GraalVM性能有多强?

官网介绍GraalVM启动时间比JAVA JVM快50倍,占用内存少5倍,GraalVM提供高性能为Java微服务向原生云迈进提供坚实的基础技术架构。在微服务架构的视角下,应用拆分后,单个微服务很可能就不再需要再面对数十、数百GB乃至TB的内存,有了高可用的服务集群,也无须追求单个服务要7×24小时不可间断地运行,它们随时可以中断和更新;但相应地,Java的启动时间相对较长、需要预热才能达到最高性能等特点就显得相悖于这样的应用场景。但有了GraalVM加持后Java在微服务时代又焕发新生。

Spring微服务框架如何和GraalVM兼容?

Spring框架5.1版本已开始支持GraalVM native image support。GraalVM native image允许以较低的吞吐量和各种限制为代价,以较低的内存消耗(通常是普通JVM等价物的5倍)将Spring应用程序编译为本机可执行文件,启动速度非常快(小于100ms)。支持反射和动态代理,但需要手动或通过专用支持配置。它还允许生成小容器镜像。

Spring团队兼容GraalVM 计划。

Spring框架从5.1开始就提供了对GraalVM本机映像的初始支持。

但是GraalVM在RC阶段的各种问题阻碍了它的正确使用,因此springframework5.2开发周期主要致力于通过与GraalVM开发团队协作来报告这些问题。自从GA以来,GraalVM几乎(请参阅影响Spring的已知GraalVM问题)允许使用相关的反射配置和命令行参数运行Spring框架应用程序。

在不需要额外配置或解决方法的情况下实现GraalVM本机映像支持是即将推出的springframework5.3的主题之一。将GraalVM视为Spring应用程序的合适部署目标的主要缺失部分是在Spring框架级别提供自定义GraalVM特性实现,以自动注册依赖机制或Spring工厂中使用的类,有关详细信息,请参阅相关问题#22968。

为了使最终用户能够使用它,还可能需要工具级别的支持(将正确的命令行参数传递给本机映像、打包)。

当前Spring实验性支持

由Andy Clement创建的springgraalvm本机实验项目展示了如何以graalvm本机映像的形式开箱运行springboot应用程序。它可以作为一个潜在的即将到来的官方支持的基础。该项目最新版本 0.8.5支持GraalVM 20.3.0和Spring Boot 2.4.1(2020-12-11发布最新版本)。

最后小工蚁新零售产品2021年版本也开始全面支持GraalVM,并且支持多语言环境,小工蚁主要使用Java(企业业务和数据中台开发)、Javascript(互联网多端应用开发)和Python(人工智能和大数据应用),考虑2021年小工蚁所有接口开放后,提供Web界面开发工具提供企业快速业务逻辑自定义应用开发。小工蚁产品全面支持GraalVM可以大幅降低企业数字化需要的服务器成本和云计算成本,让企业更快速满足市场变化需求,很好适应激烈竞争环境所需要数字化平台。

怒江java培训班_Graal VM:微服务时代的Java相关推荐

  1. Java微服务开发指南-Java环境下的微服务

    本文涉及的内容,能让你学到什么? 本书适用于开发微服务的Java开发人员和架构师.我们在开始介绍微服务架构前,先讲述一些抽象的基本概念.不幸的是,使用新技术并不能神奇地解决分布式系统问题.但是我们通过 ...

  2. Java微服务开发指南 -- Java环境下的微服务

    Java环境下的微服务 本文涉及的内容,能让你学到什么? 本书适用于开发微服务的Java开发人员和架构师.我们在开始介绍微服务架构前,先讲述一些抽象的基本概念.不幸的是,使用新技术并不能神奇地解决分布 ...

  3. 微服务时代之2017年五军之战:Net PHP谁先死

    微服务时代之2017年五军之战:Net PHP谁先死 1.引言 其实我一直是个懒人,开博也有好几年了,但是一直懒得写文章,主要怕打字麻烦, 手机都是用讯飞语音输入的, 可惜博客里面很多专业性的词语,用 ...

  4. 微服务时代之2017年五军之战

    其实我一直是个懒人,开博也有好几年了,但是一直懒得写文章,主要怕打字麻烦, 手机都是用讯飞语音输入的, 可惜博客里面很多专业性的词语,用讯飞也不大好,另外无论在家还是在公司,开个语音一本正经的叽叽叽, ...

  5. Java开发必读--初识微服务一定要阅读这篇文章

    原文转自一线互联网资深架构师,微服务布道师小马哥的原创文章,始发与小马哥公众号. 微服务是什么? 微服务是一种细粒度(Fine-Grain)的SOA 或许在座的高朋了解过其概念.个人认为,与其说微服务 ...

  6. 周志明论架构之道:从SOA时代到微服务时代

    SOA 架构(Service-Oriented Architecture) 面向服务的架构是一次具体地.系统性地成功解决分布式服务主要问题的架构模式. 为了对大型的单体系统进行拆分,让每一个子系统都能 ...

  7. spring cloud java b2b2c o2o分布式 微服务电子商务平台

    大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台. 需要JAVA Spring Cloud大型企业分布式 ...

  8. java 服务注册中心_服务治理的含义和java最流行的微服务框架服务治理注册中心的搭建...

    原标题:服务治理的含义和java最流行的微服务框架服务治理注册中心的搭建 Spring Cloud Eureka基于Netflix Eureka做了二次封装,是Spring Cloud Netflix ...

  9. 【项目实战】Java从单体到微服务打造房产销售平台(一) - 整体概述

    Java从单体到微服务打造房产销售平台 可掌握技能:从0-1业务设计 + SpringCloud(微服务改造) https://coding.imooc.com/class/174.html

最新文章

  1. 感觉 Data Access Application Block(DAAB) 里也有可能写得不太好的地方
  2. 关于tomcat无法启动问题详解
  3. python 长连接 mysql数据库
  4. @responseBody注解的使用
  5. 03-29 健壮性测试
  6. Elasticsearch-日期类型
  7. dotproject问题。
  8. 【三维路径规划】基于matlab蚁群算法三维路径规划【含Matlab源码 179期】
  9. 台达变频器485通讯接线图_台达变频器怎么接线 台达变频器接线图详解
  10. windos读写ext3工具_“ ext2fsd” Windows系统工具,用于读写ext2 / 3/4文件系统
  11. 手机远程访问HTML5,如何使用手机连接远程桌面?
  12. angularUI之accordion的用法
  13. Android 手势导航(Launcher3 部分)
  14. 【Unity3D实战】摇摆直升机开发实战(一)
  15. java计算a+aa+aaa+aaaa的和
  16. cloudflare解析域名+CDN
  17. 这是你事业做不大的原因
  18. leakcanary内存泄露检测工具 Dumping memory, app will freeze. Brrr
  19. 项目实战之信用卡数字识别
  20. 2016 苹果全球开发者大会(WWDC)

热门文章

  1. c语言错误:error C2018: unknown character '0xa3'
  2. kill与kill -9的区别
  3. 虾米音乐代码注释惊现“穷逼vip”程序员又背锅了
  4. Excel数据合并(追加写入)
  5. EXCEL【数据处理之数据合并——字段合并】
  6. 电脑上有office,但不能新建word文档怎么办?
  7. 年轻人哪,不能太舒服了
  8. Greedy Gift Givers
  9. deepin安装tftp服务器_Win10频发蓝屏,深度Deepin系统,调试华为AC和AP
  10. Mysql横向分组统计