java - Hashicorp Nomad 上的 Quarkus

标签 java docker marathon quarkus nomad

Quarkus 被描述为 a Kubernetes Native Java stack ,我认为这是不公平的营销炒作,因为据我所知,其中没有专门针对 Kubernetes 的代码(忽略部署脚本和 Maven 插件等)。

有人尝试过在不同的 Docker 协调器中启动它吗?具体来说,Hashicorp Nomad ?怎么样Marathon ?当然,Swarm 的奖励积分。

如果可能的话,是否应该更新文档以删除诸如“Kubernetes 原生”之类的营销词?

最佳答案

我认为您所说的营销炒作可能是正确的,尽管我不明白为什么 Quarkus 需要将自己与 Kubernetes 联系起来才能称自己为 Kubernetes Native Java Stack。正如您似乎很清楚的那样:

Kubernetes 已成为事实上的标准容器编排解决方案,拥有许多经过认证的实现,如上面提到的 in your link from the comments 。根据许多观点,它赢得了容器编排之战。

启动 Quarkus 项目的原始团队(即 Red Hat)表示:

The goal of Quarkus is to make Java a leading platform in Kubernetes and serverless environments while offering developers a unified reactive and imperative programming model to optimally address a wider range of distributed application architectures.

红帽投资/赞助了相关技术,例如(随机顺序):

  1. Linux(通过红帽企业 Linux)
  2. OpenShift 平台
  3. IcedTea(用于编译来自 Sun/Oracle 的 OpenJDK 源代码的开源构建软件)
  4. 一个开源的新 Java 垃圾收集器 Shenandoah HotSpot VM 缩小了与 Azul 的 Zing VM 和 C4 垃圾收集器的部分差距(提前编译是另一个)
  5. Java 应用程序服务器(JBoss AS/WildFly)
  6. 还有其他出色的 Java 应用程序,例如 Keycloak that will be powered by Quarkus

Quarkus 只是他们尝试(相当成功)应用 Java 新技术进步(如模块系统、提前编译)的方法之一,这些技术进步在 OpenJDK 和 GraalVM 中实现,以改善集成使用现代托管和部署解决方案,例如 Kubernetes。有关更多信息,请参见例如:these blogs

改进 Java 虚拟机行为所需的一些更简单、较低级别的更改与某些 Linux 功能(如 cgroup)和 have already been fixed 有关。过去。

但是,让现有 Java 应用程序在 GraalVM 的 Substrate VM 上运行 native 镜像的最大挑战之一是,它(尚)不支持流行 Java 框架(例如 Spring 和 Hibernate)所依赖的所有功能,如 this long list 中所述

所以,据我了解,为了解决这个问题 quoting from here他们开发了 Quarkus:

[to work] equally well on any JVM and as GraalVM native image executables. And you can build native images with no hassle, on your side.


这都是营销吗?不,我不买那个。我认为这是项目领导层有一个清晰的愿景和目标。
我会告诉你,这将是一个很好的补充,可以更清楚地描述哪些平台被认为是兼容目标,已经进行了某种形式的正式测试,因此受到“支持”;但对于此类信息,您可能正在查看 Quarkus 上的正式支持契约(Contract),更重要的是:GraalVM(可能来自 Red Hat、Oracle、IBM 和 friend )。

关于java - Hashicorp Nomad 上的 Quarkus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60845052/

相关文章:

wordpress - Dockerfile 中的参数未作为执行命令传递

docker - 在链接的Docker中访问环境变量

jar - 如何使用 mesos-execute 运行 jar

java - 对话框宽高问题

java - 带有 google-api-java-client 的 2-legged OAuth

无缘无故发生Java错误 "This method must return a result of type string"

linux - CronJob 无法启动 docker 容器

marathon - 如何使用马拉松健康检查?

azure - Azure 容器服务上的 Marathon - 无法扩展到所有节点

java - 使用java获取Android项目中电脑的IP地址