3

Quarkus Native与Go微服务对比?

 1 year ago
source link: https://www.jdon.com/67775.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Quarkus Native与Go微服务对比?

我们的团队目前正在开发一个非常庞大且复杂的 Spring Boot 项目,Spring Boot 固执己见的本质使我们能够非常快速地编写业务逻辑,而无需担心样板代码。

现在,我们的任务是编写小型微服务,首席架构师强迫我们使用 Go,因为它“简单”、“云原生”、“资源占用少”等等。我看过其他团队的 Go 项目,其中大多数都写得很糟糕,没有遵循任何设计原则,充满了样板代码,甚至对于小任务也重新发明轮子。

由于我们的团队在 Java 和“automagic”框架方面非常熟练,因此我们在像 Quarkus 和 Micronaut 这样的轻量级(使用 graalvm)Java 框架中会非常高效,而不是在 Go 上苦苦挣扎。

使用 GraalVM 构建的 Quarkus 二进制文件可以满足 Go 等低系统要求。

我的问题是,如何说服我们的首席架构师让我们使用 Quarkus?

答:
1、这是一个社会问题,而不是技术问题。
至少就您的首席架构师“减少资源”的愿望而言,quarkus 将符合要求。至少如果它与 graalvm 一起使用的话。

如果你想让某人相信某件事,你需要真正理解为什么他们会这么想。
他们认为用Go编写会为你的团队提供更好的服务。
他们在某种程度上也是“负责人”。如果不了解他们更深层次的推理,你就不会改变他们的想法。

例如,graalvm 可能会为您提供更好的性能,但编译时间可能是他们认为不可接受的。

也许他们一直想看看Go会如何发展,这更多是个人愿望,而不是实际技术驱动的东西。

2、我在生产中使用 Quarkus Native:配置本机镜像需要时间,您添加的每个不是 quarkus 扩展的库都可能会破坏构建。
我们仍在使用,因为拥有 30MB 的镜像、50MB 的内存和 1 秒的启动时间确实很不错,但您将花费时间来获得它。
我们还有一个非常广泛的集成测试套件(quarkus 在这方面提供了很多帮助),来处理graalvm 本机代理跟踪。如果你的团队不够成熟,事情就会破裂。

3、问题是什么是小型微服务。如果你在java上花费10天开发,在GO上花费30天开发,那么在服务器上节省的钱是不值得的。您还需要考虑支持、部署、日志记录、审核……您已经拥有所有这些 Java 工具。
您提到您的团队在 Spring Boot 方面工作得非常好。在 Spring Boot 中执行此操作。您知道,它将在生产中提供快速且轻松的支持。你拥有团队中的所有知识。如果一个人去度假,其他人可以提供支持。
如果它仍然太大,请寻找您提到的其他框架。但还是留在Java(JVM)中。Spring boot 不支持 GrallVM,不用担心,如果你写得对,对于小型微服务来说就足够了。

4、Go 实际上非常适合小型微服务。
我主要从事 Java 工作,但偶尔也会为了一些小事情而使用 Go。我非常喜欢 Quarkus,但我不会将它用于提供一堆 json 查询的简单 http 服务。
Go 的编译时间、平台支持、二进制大小都非常出色。
然而,小型微服务到底意味着什么,对你我来说可能是不同的衡量标准。
语言和框架只是工具。
根据要求,使用适合工作的正确工具。您的架构师可能是对的。

5、我现在使用 quarkus 处理所有事情,无论是微服务还是大规模项目,它的速度非常快,像 Cloud Run 这样的无服务器中的微服务在冷启动时启动速度非常快,quarkus 是真的很棒。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK