Quarkus云原生开篇java框架简介

目录
  • 前言
  • 什么是quarkus?
  • 为什么用quarkus?
    • 专为开发人员而设计
    • 容器优先
    • 命令式和响应式代码
  • 结语

前言

Quarkus 是小红帽开源的专门针对云容器环境优化的云原生java框架,目前已迭代到1.6.0版本,已完成了大部分的框架库的集成扩展,为了让你低成本迁移到Quarkus来,它兼容主流的框架开发模式api,如spring web。

Quarkus已具备企业级应用开发能力。而且未来容器云肯定是主流了,可以预见,未来的软件都是运行在k8s这样的容器集群里。而容器环境需要应用具备启动速度快,资源占用小,响应时间短等特性,Quarkus就是顺应这种趋势而生的。

github项目地址:https://github.com/quarkusio/quarkus

官网地址:https://quarkus.io/

下面是小红帽官方对Quarkus的介绍:

什么是quarkus?

Quarkus 是一个为 Java 虚拟机(JVM)和原生编译而设计的全堆栈 Kubernetes 原生 Java 框架,用于专门针对容器优化 Java,并使其成为无服务器、云和 Kubernetes 环境的高效平台。

Quarkus 可与常用 Java 标准、框架和库协同工作,例如 Eclipse MicroProfile、Apache Kafka、RESTEasy(JAX-RS)、Hibernate ORM(JPA)、Spring、Infinispan、Camel 等。

Quarkus 的依赖注入解决方案基于 CDI(上下文和依赖注入),且包含一个扩展框架来扩展功能并将其配置、引导并集成到您的应用中。添加扩展就像添加依赖项一样容易;或者,您可以使用 Quarkus 工具。此外,它还向 GraalVM(一种通用虚拟机,用于运行以多种语言(包括 Java 和 JavaScript)编写的应用)提供正确信息,以便对应用进行原生编译。

为什么用quarkus?

专为开发人员而设计

1、Quarkus 的设计从一开始就立足于简单易用,其功能几乎不需要配置即可正常使用。

2、开发人员可以为其应用选择所需的 Java 框架,而这些应用可以在 JVM 模式下运行,也可以在原生模式下进行编译和运行。

3、为了方便开发人员的工作,Quarkus 还包含以下功能:

  • 实时编码,旨在让开发人员能够即时检查代码更改的影响并快速进行故障排除
  • 带有嵌入式托管事件总线的统一命令式和响应式编程
  • 统一配置
  • 简单的原生可执行文件生成

容器优先

无论是将应用托管在公共云上还是内部托管的 Kubernetes 集群中,快速启动和低内存消耗等特性对于降低总体主机成本来说都至关重要。

Quarkus 的开发遵从了容器优先的原则,这意味着它已通过以下方式针对降低内存使用和加快启动时间进行了优化:

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

因此,Quarkus 构建的应用其内存消耗只有传统 Java 的 1/10,而且启动时间更快(快了 300 倍),这些都大大降低了云资源的成本。

命令式和响应式代码

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

2、对于在新的无服务器架构、微服务、容器、Kubernetes、功能即服务(FaaS)和云环境中运行 Java 而言,Quarkus 堪称是一个有效的解决方案,因为在创建它时就充分考虑了所有这些因素。

结语

红帽官方介绍的这些特性指标,除了Graal的native image没体验到外(windows环境支持不友好,折腾了很久都没成功),基本上都体验了一番,相比于spring boot,内存确实占用的更少、启动速度也更快了,但是没有宣传的快了300倍这么夸张。但是有一个特性是博主体验后在也忘不掉的,Quarkus的实时编码功能,无论你怎么改动你的程序,在下次请求到来时时,总能自动编译加载到最新的代码,而且速度非常快,感受不到重新编译的过程。就像开发php一样的体验。这种感觉很爽,大大的提升了开发效率。总而言之,java开发生态中,在spring boot大行其道下,Quarkus这些优秀特性还是值得一试的。

以上就是Quarkus云原生开篇java框架简介的详细内容,更多关于Quarkus云原生java框架的资料请关注我们其它相关文章!

(0)

相关推荐

  • Quarkus的Spring扩展快速改造Spring项目

    目录 前言 spring-webmvc扩展 spring-datajpa扩展 spring-Di扩展 spring-boot-properties扩展 结语 前言 博主上个礼拜,已经实现了quarkus的native image应用的上线,经过两天的监控下来,一切运行指标良好,就是内存升到了100M了,这个后续继续跟进观察.今天聊点老的spring应用改造成quarkus的问题.一个新的框架是否可以顺利的在一个公司落地,除了本身优秀的设计和优异的性能外,框架的生态和上手的难度以及对现有框架的兼容

  • Quarkus篇入门创建项目搭建debug环境

    目录 前言 搭建Quarkus项目 纯手工方式 官网装配器方式 IDEA方式 编写第一个Quarkus接口 启动你的应用并调试 前言 在学习一个新的框架技术前,肯定要先来一套hello word,搭建基本的运行环境和调试环境. 先来创建一个Quarkus的应用 搭建Quarkus项目 下面介绍三种创建Quarkus项目的方式 纯手工方式 1.创建maven工程,这个不多赘述,是个java程序员都会的 2.添加Quarkus依赖,下面贴出基本的依赖 <properties> <quarku

  • Quarkus集成redis操作Redisson实现数据互通

    目录 前言 集成redis 复制Redisson序列化 使用 前言 博主所在公司大量使用了redis缓存,redis客户端用的Redisson.在Quarkus集成redis时,博主尝试使用Redisson客户端直接集成,发现,在jvm模式下运行quarkus没点问题,但是在打native image时,就报错了,尝试了很多方式都是莫名其妙的异常.最后决定采用quarkus官方的redis客户端,但是Redisson客户端数据序列化方式是特有的,不是简单的String,所以quarkus中的re

  • Quarkus中实现Resteasy的文件上传下载操作

    目录 前言 文件上传 文件下载 前言 做java web开发,文件的上传和下载是一个非常常见的需求场景.在spring生态下的文件上传下载非常简单,记得五年前,我刚写博的时候也写过spring的上传和下载<SpringMvc实现文件上传与下载>,以及Struts2的文件上传和下载<java Struts2实现文件上传下载>.今天来看看Quarkus框架中是如何实现的,因为Quarkus的JAX-RS采用Resteasy的实现,故Quarkus中的文件上传和下载,也就是Resteas

  • Quarkus改造Pmml模型项目异常记录及解决处理

    目录 前言 异常如下: 解决 解决思路 stax-api百科 总结 前言 这个项目是一个PMML模型跑分系统,在使用quarkus架构对其改造的过程中,在加载PMML模型时,抛了一个异常,在网上找了很多资料都没有解决,pmml项目的issue中也没有找到相关的内容,故在此记录下,给遇到问题的你做个参考 jpmml-evaluator:https://github.com/jpmml/jpmml-evaluator 异常如下: java.lang.LinkageError: loader cons

  • Quarkus云原生开篇java框架简介

    目录 前言 什么是quarkus? 为什么用quarkus? 专为开发人员而设计 容器优先 命令式和响应式代码 结语 前言 Quarkus 是小红帽开源的专门针对云容器环境优化的云原生java框架,目前已迭代到1.6.0版本,已完成了大部分的框架库的集成扩展,为了让你低成本迁移到Quarkus来,它兼容主流的框架开发模式api,如spring web. Quarkus已具备企业级应用开发能力.而且未来容器云肯定是主流了,可以预见,未来的软件都是运行在k8s这样的容器集群里.而容器环境需要应用具备

  • 云原生技术kubernetes(K8S)简介

    目录 01 kubernetes是什么? 02 kubernetes和Compost+Swarm之间的区别 03 一点总结 今天我们看看kubernetes技术的介绍,最近在极客时间上看张磊老师的深入kubernetes技术,讲的非常好,有兴趣的同学可以去收听一下,对于理解kubernetes技术非常有帮助,这里我会按照自己的进度,分享一下学习的笔记. 今天站的角度比较高,概念性质的东西会多一点. 01 kubernetes是什么? 曾经我认为这个问题很好回答,直到不断的去理解kubernete

  • Go chassis云原生微服务开发框架应用编程实战

    目录 什么是Go chassis 文章目标 诞生背景 如何快速开发一个微服务 统一治理和协议模型 可扩展的处理链条:handler chain as middleware 不只是API,通过配置简化开发过程 插件化 什么是Go chassis go chassis是一个go语言微服务开发框架,专注于云原生应用的开发主要的使用场景是云服务开发.go chassis将云服务开发过程中沉淀的能力融入到了开发框架中,以帮助开发团队快速编写云原生应用. 文章目标 本文介绍我们的设计理念和目标,为何go c

  • Java Spring框架简介与Spring IOC详解

    目录 Spring简介和配置 1.Spring概述 1.1 spring 是什么 1.2 Spring发展历程 1.3 Spring的优势 (理解) \1. 方便解耦,简化开发 \2. AOP 编程的支持 \3. 声明式事务的支持 \4. 方便程序的测试 \5. 方便集成各种优秀框架 \6. 降低 JavaEE API 的使用难度 \7. Java 源码是经典学习范例 1.4 Spring的体系结构(了解) 2.Spring IoC快速入门 2.1 IoC的概念和作用 2.2 Spring Io

  • Rancher部署配置开源Rainbond云原生应用管理平台

    目录 前言 前提条件 开始安装 添加 Rainbond Operator 到应用商店 安装 Rainbond Operator 访问 Rainbond 安装 UI,完善集群配置 基于 Rancher 的 Rainbond 运维参考 查看 Rainbond 各组件运行状态与日志 按需扩容 Rainbond 各组件 Rancher用户使用Rainbond优势 参考视频 常见问题 前言 本文适用于正在使用 Rancher 或对 Rancher 有所了解的用户 Rancher,Kubernetes 生态

  • Apache Shiro 框架简介

    一.什么是Shiro  Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户"登录": 授权 - 访问控制: 密码加密 - 保护或隐藏数据防止被偷窥: 会话管理 - 每用户相关的时间敏感的状态. 对于任何一个应用程序,Shiro都可以提供全面的安全管理服务.并且相对于其他安全框架,Shiro要简单的多. 二.Shiro的架构介绍  首先,来了解一下Shiro的三个核心组件:Subject, Se

  • Java异常简介和架构_动力节点Java学院整理

    Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性.在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了"什么"被抛出,异常堆栈跟踪回答了"在哪"抛出,异常信息回答了"为什么"会抛出. Java异常机制用到的几个关键字:try.catch.finally.throw.thro

  • Java Lombok简介、使用、工作原理、优缺点

    简介 官方介绍 Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, automate your lo

  • SpringSecurity框架简介及与shiro特点对比

    目录 一.SpringSecurity框架简介 二.比较一下shiro与SpringSecurity 2.1.用户量 2.2.使用的方便程度 2.3.社区支持 2.4.功能丰富性 三.总结 一. SpringSecurity 框架简介 官网:https://spring.io/projects/spring-security Spring Security 是强大的,且容易定制的,基于Spring开发的实现认证登录与资源授权的应用安全框架. SpringSecurity 的核心功能: Authe

  • Rainbond云原生快捷部署生产可用的Gitlab步骤详解

    目录 Gitlab简介 准备工作 部署步骤 部署Postgresql组件 部署Redis组件 部署Gitlab-Server组件 配置网关访问策略 FAQ Gitlab简介 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释.同时Gitlab集成了一系列的CI功能.不得不说,Gitlab在企业中是的使用率非常高. Rainbond非常推荐

随机推荐