V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ksice
V2EX  ›  Java

Quarkus 是什么,感觉现在挺火的

  •  
  •   ksice · 2020-08-20 11:12:45 +08:00 · 6556 次点击
    这是一个创建于 1591 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Quarkus 是什么,浏览社区看到这个技术感觉很不错但是具体不知道作用是啥

    17 条回复    2022-06-30 17:57:17 +08:00
    340244120w
        1
    340244120w  
       2020-08-20 11:25:13 +08:00
    qwerthhusn
        2
    qwerthhusn  
       2020-08-20 11:45:31 +08:00   ❤️ 3
    现在的 Java 项目不适合容器部署和微服务部署了。
    一个是镜像太大,一个镜像随随便便几十兆,这还不算 jdk 那一层
    二是内存占用大,一个 Spring Boot 项目,起起来几百兆没了,运行一段时间,即使没有访问,也得 1G 多

    Quarkus 提供了 GraalVM 编译,运行内存和镜像大小变得超级小

    另外 Spring Boot 那一套有点臃肿了,Quarkus 基于 Vert.X 变得更加轻量

    反正我是这么理解的
    chendy
        3
    chendy  
       2020-08-20 12:24:18 +08:00
    好东西,但是我选择继续 spring
    ksice
        4
    ksice  
    OP
       2020-08-20 13:26:46 +08:00
    @qwerthhusn 其实如果是当纯这个原因,应该还不是最核心的吧,我看别人说是因为上云之后,服务可能会经常重启,但是 spring 重启很慢导致一些问题
    ksice
        5
    ksice  
    OP
       2020-08-20 13:28:20 +08:00
    ksice
        6
    ksice  
    OP
       2020-08-20 13:28:43 +08:00
    @chendy 现在是,但是不知道未来会不会有替代
    594duck
        7
    594duck  
       2020-08-20 13:34:11 +08:00
    @qwerthhusn 老哥说的对,硬件服务器里跑虚拟机,虚拟机里跑 Docker,Docker 里跑 JAVA,我看的非常搞笑,JAVA 的 once a build ,anywhere run,那要 Docker 干吗?
    594duck
        8
    594duck  
       2020-08-20 13:37:03 +08:00
    Docker 吹:我们一个月要销毁 2000 次 Docker,如果放传统的虚拟化,早崩溃了。2000 次光是销毁和重建虚拟机一个月的时间都不够

    我:对不起,你的意思是我们一个月重启了 2000 将进程,那和虚拟机销毁有什么关系?谁告诉你重启进程需要销毁虚拟机。

    Docker 吹:你个傻缺,活该你没有房子。我们就是先进,你明天 就被淘汰了,我们还能升职加薪。
    yiyi11
        9
    yiyi11  
       2020-08-20 13:50:23 +08:00 via Android
    我觉得最大痛点还是 2L 说的那样,云原生环境部署 java 的成本。现在的主流方案是打包成容器镜像,能不能更近一步,尽可能压缩,就像 go 那样——直接输出特定于平台的可执行二进制文件(即点即用)。关键是 GraalVM,下一代 JVM,用了它就能实现这个需求。spring 也在跟进的,spring5.3 开始正式支持 GraalVM 。
    chihiro2014
        10
    chihiro2014  
       2020-08-20 14:01:59 +08:00
    简单来讲,跟 Spring Boot 没啥区别= =。但目前看来,之前看他官推,还无法支持 GraalVM
    chihiro2014
        11
    chihiro2014  
       2020-08-20 14:09:05 +08:00
    现在好像支持了
    chihiro2014
        12
    chihiro2014  
       2020-08-20 14:24:15 +08:00
    woncode
        13
    woncode  
       2020-08-20 19:23:35 +08:00 via Android
    @594duck 个人认为 docker 的最大优势是对运行环境的治理,包括部署环境的初始化和环境隔离两大特点:
    1. 环境初始化:以前直接在主机上跑 java,要自己配置 jre 、tomcat,现在 docker 直接使用官方提供的镜像包,pull 一下就能运行起来了。同时也使得迁移非常便利
    2. 环境隔离:以前多个程序在同一主机上跑要共用同一个 jre,互相影响的风险比较大,现在每个程序都跑在自己的容器,互不相干。当然你以前可以直接用虚拟机隔离,一个虚拟机只跑一个服务,但这性能代价要大得多,而且环境虚拟机也比 docker 复杂得多

    而不是所说的重启问题,虽然这确实也是 docker 的一大优势
    594duck
        14
    594duck  
       2020-08-20 19:43:03 +08:00
    @woncode 1.环境初始化,除非 贵司没有运维部门,否则根本不是问题。任何一个 RHCE 学习过的 Linux 系统工程师都可以帮你解决掉这一切,一串 Ansble 一跑就好。另外从安全的角度讲,Docker 和官方镜像默认就是安全的?

    环境隔离这是最搞笑的说法了,Docker 一死拖死宿主这事人人皆知。为了解决 Docker 这个根本不隔离的隔离,什么先启一个 Qemu 再在 Qemu 里开一个 Docker 的所谓完全安全隔离可信环境方案大家又不是不知道。

    另外一个主机部署多个应用,端口隔开就行的事情整这么复杂?

    让我来告诉你一个事情,10 年前,互联网是这么喊的
    “测试死了,谁公司有测试谁就是落后淘汰,结果到今天测试不都过的好好的。”

    现在是“云原生已来,Docker 已来,运维死了,谁公司有运维谁公司淘汰。结果我一看呵呵呵呵。”

    我就这么和你说,Docker 是一个面向程序员友好的技术,但是如果你不是大到五、六个 IDC,三四个云,每个环境几千个虚拟机,就还不到 Docker 决定胜负的边际收益上。
    Oktfolio
        15
    Oktfolio  
       2020-08-20 22:36:40 +08:00
    Spring 也在搞 GraalVM,这些东西编译时间都太长了
    ksice
        16
    ksice  
    OP
       2020-08-21 10:08:47 +08:00
    @chihiro2014 是的已经支持了
    V2Axiu
        17
    V2Axiu  
       2022-06-30 17:57:17 +08:00
    原本是编译成字节码,环境中有个 jvm 转二进制跑,现在嫌弃这样做资源消耗大了,想直接编译成指定环境可用的二进制应用,减少资源消耗。我是这么理解的- -不知道对不对
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2760 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:56 · PVG 21:56 · LAX 05:56 · JFK 08:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.