当前位置:首页 > 技术 >

javaee安装(eclipse安装javaee插件)

来源:原点资讯(www.yd166.com)时间:2022-12-03 07:44:25作者:YD166手机阅读>>

1. 概述1.1 定义

Quarkus定位要做超声速、亚原子的JAVA框架,使用最好标准为OpenJDK HotSpot和GraalVM量身定制的Kubernetes Native Java栈;从一开始就是针对Kubernetes设计的云原生优化Java应用开发框架;兼容主流的框架开发模式如Jpa、Netty、Undertow、Hibernate、JWT、Spring。最新版本为2.13.3。

  • Quarkus 官网:https://quarkus.io/
  • Quarkus GitHub:https://github.com/quarkusio/quarkus
1.2 GraalVM 简介

GraalVM 是 Oracle 开发的高性能的多语言运行时 JDK,旨在提高 Java 应用程序的性能,同时消耗更少的资源。

GraalVM 提供了两种运行Java应用程序的方法:在HotSpot JVM上使用 Graal 即时(JIT)编译器或者作为预先(AOT)编译的本机可执行文件。

除了 Java,它还提供了 JavaScript、Ruby、Python 和其他一些流行语言的运行时。GraalVM 的多语言功能使得在一个应用程序中混合编程语言成为可能,同时消除了任何外语调用成本。目前最新版本为 22.3。

javaee安装,eclipse安装javaee插件(1)

  • GraalVM 可以创建原生可执行文件;
  • GraalVM 提供的原生镜像(native image)功能可以把Java代码预先编译(Ahead-Of-Time,AOT)成独立的可执行文件。该可执行文件包括了应用本身的代码、所依赖的第三方库和 JDK 本身。该执行文件并不运行在 Java 虚拟机之上,而是名为 Substrate 的虚拟机。与运行在传统的 Java 虚拟机上相比,原生可执行文件在运行时的启动速度更快,所耗费的内存资源更少。可执行文件的体积也更小;
  • GraalVM 生成的原生可执行文件与底层平台相关,不能在当前平台之外的其他平台上运行。但对云原生应用来说,这并不是一个问题。云原生应用的设计目标是在容器中运行,所运行的底层平台是固定的。
1.3 为何使用

使用 Spring Boot 的快速开发企业级应用的微服务启动慢,从一个应用从启动到服务可用,一般是数秒。在对 CPU 核数和内存严格限制的情况下,花数十秒启动的情况也屡见不鲜。这样的问题无法适应需要快速重启或快速扩容的场景。不仅如此,内存消耗也很大。如果限制在 1G 时 FullGC 频率变大,且经常触发 OMM 后 Kill 导致 pod 重启,并且启动时间也会变长。

相比之下,集群中使用 GO 语言开发的应用则配置 128M 内存也可正常使用。以 JVM 模式运行的 Java 应用,并不太适合于云原生应用的开发,而拥抱云原生则是未来技术的大趋势。

容器云已经为未来主流,也即是软件都是运行在 K8S 这样的容器集群里。而容器环境需要应用具备启动速度快,资源占用小,响应时间短等特性。Quarkus 顺应这种趋势而生的。

  • 对于云原生应用来说,平台无关性变得无关紧要。云原生应用都是以容器化的形式运行的,所运行的底层平台是固定的;
  • 云原生应用对启动速度的要求比较高。当需要进行水平扩展时,要求这些新的实例必须在足够短的时间内完成启动,从而尽快的处理新增的请求;
  • 云原生应用要求在运行时占用尽可能少的资源。尽可能的减少单个实例占用的资源,就意味着可以用同样的成本,支持更多的访问请求;
  • 云原生应用要求更小的打包体积。云原生应用以容器镜像的形式打包。应用镜像的尺寸越大,所需要的存储空间也会越大,推送和拉取镜像所耗费的时间也会更长。

Quarkus具备企业级应用开发能力。

在 Serverless 服务器架构、微服务、容器、Kubernetes、功能即服务(FaaS)和云环境中运行 Java 而言,考虑了所有这些因素的 Quarkus 堪称是一个有效的解决方案。

1.4 特性

容器优先

构建期即生成云原生镜像执行文件。

Quarkus 为 GraalVM 和 HotSpot 定制应用程序。快速启动、低内存消耗、体积小,在 Kubernetes 这样的容器编排平台上提供了近乎实时的扩展和高密度的内存利用率。这就是使用了编译时引导的技术。

  • 支持 Graal/SubstrateVM
  • 构建时元数据处理
  • 尽量减少 JNI 调用
  • 减少反射的使用
  • 本机映像预启动

Kubernete 原生

构建期即生成云原生镜像执行文件,可以与 Docker 和 Kubernetes 轻松集成,Quarkus 和 Kubernetes 的组合可以伸缩、快速创建轻量级的应用程序。Quarkus 通过工具、预构建的集成、应用程序服务等显著提高了开发人员的工作效率。

命令式和响应式

在设计上 Quarkus 能够在开发应用时无缝地结合熟悉的命令式代码和非阻塞、响应式样式。这对于习惯使用命令式模型而不想切换风格的 Java 开发人员以及使用云原生/响应式方法的开发人员都非常有用。

社区和标准

拥抱 JavaEE 标准,使用 JavaEE 官方 RESTful、CDI 等标准接口。Quarkus 提供了一个内聚的、轻量的全栈框架,包含超过 50 个使用的最佳类库。

对开发者友好

学习成本也低,具有统一的配置和简单的本地可执行文件生成,零配置,实时重新加载,80% 的常用标准和 20% 灵活应用。

1.5 官方性能数据

javaee安装,eclipse安装javaee插件(2)

从图中可以看出,使用 Quarkus 和 GraalVM 的简单的 REST 应用的启动时间仅为 16 毫秒,占用内存仅 12MB。如果使用传统的基于 Java 虚拟机实现,应用的启动时间需要 4.3 秒,占用内存为 136MB。

2. 实战

入门示例项目步骤:

  • 安装 GraalVM
  • 创建 Quarkus工程
  • IDEA 导入项目
  • IDEA 编码运行和调试
  • 打包成普通的 jar
  • 打包成依赖 GraalVM 的二进制文件
  • 打包成不依赖 GraalVM 的二进制文件
  • 制作成 Docker 镜像
2.1 安装 GraalVM

GraalVM 官方文档:https://www.graalvm.org/22.2/docs/

GraalVM GitHub:https://github.com/graalvm/graalvm-ce-builds/releases

了解 GraalVM 的最新版本 22.3 的使用可以查阅 GraalVM 官方文档。先从 GitHub 下载 GraalVM 。这里先以下载windows版本为例,下载后的文件 graalvm-ce-java11-windows-amd64-22.2.0.zip,解压到本地磁盘目录,查看版本信息如下:

javaee安装,eclipse安装javaee插件(3)

# windows PATH环境变量增加路径:D:\Program Files\Java\graalvm-ce-java11-22.2.0\bin JAVA_HOME配置环境变量:D:\Program Files\Java\graalvm-ce-java11-22.2.0 # linux wget https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.2.0/graalvm-ce-java17-linux-amd64-22.2.0.tar.gz tar -xvf graalvm-ce-java17-linux-amd64-22.2.0.tar.gz export GRAALVM_HOME=/home/commons/graalvm-ce-java17-22.2.0 export PATH=$PATH:$GRAALVM_HOME/bin export JAVA_HOME=${GRAALVM_HOME} export PATH=$PATH:$JAVA_HOME/bin export MAVEN_HOME=/home/commons/apache-maven-3.8.6 export PATH=$PATH:$MAVEN_HOME/bin 2.2 创建 Quarkus 工程

万丈高楼平地起,首先是创建 Quarkus 项目。与 Spring Boot类似,Quarkus 为我们提供了多种方式创建 Quarkus 工程,下面对常用的 3 种进行介绍。

IDEA 支持创建 Quarkus 项目

javaee安装,eclipse安装javaee插件(4)

栏目热文

javaee环境配置教程(javaee开发项目教程)

javaee环境配置教程(javaee开发项目教程)

搭建JavaEE开发环境主要有三步,分别是:üJava JDK的下载和安装üTomcat服务器的下载、使用üeclips...

2022-12-03 07:46:10查看全文 >>

javaee压缩包怎么安装(javaee定制版安装)

javaee压缩包怎么安装(javaee定制版安装)

摘要:Eclipse是一个基于Java的、开放源码的、可扩展的应用开发平台,它为编程人员提供了一流的Java集成开发环境...

2022-12-03 07:06:33查看全文 >>

javaee快速入门教程(javaee八大基础知识)

javaee快速入门教程(javaee八大基础知识)

9月6日,黑马程序员震撼发布了JavaEE中级程序员学习路线图。与此同时并承诺该路线图中涉及的课程内容将在9月10日后陆...

2022-12-03 07:14:17查看全文 >>

javaee学习教程(javaee基础笔记)

javaee学习教程(javaee基础笔记)

很多零基础转行学Java的人都想先在网上找一些视频课程体验一下,但是网络上的课程五花八门,不知道哪个才是真正适合新手入门...

2022-12-03 07:34:48查看全文 >>

JavaEE基础(javaee最新使用教程)

JavaEE基础(javaee最新使用教程)

很多初学者开始接触Java EE的时候,都会略有些迷茫,搞不太懂java EE与Java之间的关系,也不太清楚各个框架都...

2022-12-03 07:33:52查看全文 >>

javaee服务器使用教程(javaee最新使用教程)

javaee服务器使用教程(javaee最新使用教程)

本教程概述了开发 JAX-WS Web 服务并将其部署到 Tomcat 服务器的过程。本教程中使用的 Web 服务是一个...

2022-12-03 07:12:09查看全文 >>

javaee初学者教程(javaee编程入门到精通)

javaee初学者教程(javaee编程入门到精通)

关于JavaEE的学习,很多小伙伴的学习方法不同,有的人参加JavaEE培训学习,有的人自学JavaEE,但是自学Jav...

2022-12-03 07:37:16查看全文 >>

javaee教程新手入门(javaee全部学习内容)

javaee教程新手入门(javaee全部学习内容)

如何快速入门Java?一、作为刚接触Java的新手,肯定要先了解Java的基础。Java 基本语法、Java 平台应用、...

2022-12-03 07:20:20查看全文 >>

进博会最新名单(第五届进博会名单公布)

进博会最新名单(第五届进博会名单公布)

来源:经济日报新闻客户端2022年3月21日,第五届中国国际进口博览会首批参展商名单正式公布。本次公布的参展单位包括18...

2022-12-03 07:13:56查看全文 >>

进博会参加国一览表(进博会参展国家名单公布了吗)

进博会参加国一览表(进博会参展国家名单公布了吗)

本周六晚9点,央视主持人王冰冰和带货达人李佳琦带来进博会亚非产品专场。几十款来自日本、韩国、阿富汗、马来西亚、泰国、南非...

2022-12-03 07:29:16查看全文 >>

文档排行