加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 云计算 > 正文

了解云原生的 Java与Golang

发布时间:2021-06-06 20:08:36 所属栏目:云计算 来源:互联网
导读:Java曾经著名的座右铭:一次编写并在任何地方运行如今已经过时了,我们想要运行代码的唯一地方是在容器内。 及时编译器没有任何意义。 由于这个原因,Java生态系统可能正处于其转型之中,以便更好地适应云。 Oracle的GraalVm允许将字节代码编译为Linux可执行
Java曾经著名的座右铭:"一次编写并在任何地方运行"如今已经过时了,我们想要运行代码的唯一地方是在容器内。 "及时"编译器没有任何意义。
由于这个原因,Java生态系统可能正处于其转型之中,以便更好地适应云。 Oracle的GraalVm允许将字节代码编译为Linux可执行文件(ELF)和Rad Heat的Quarkus以及其他框架,以使其像引导一个反应应用程序一样容易。 Quarkus还以Netty和Vertx.x为核心来构建非常有效的响应式Web服务。
云原生的 Java与Golang
> quarkus official performance stats
Java编译为可执行的二进制文件,可在毫秒内启动,并且占用的内存很小。 这可以利用Java生态系统,甚至可以用其他JVM语言(例如Scala和Kotlin)编写!
听起来好得令人难以置信……
如果您不相信,可以使用在线项目生成器或通过使用maven插件在本地生成项目来玩Quarkus。
另一方面,Golang诞生于云中,当在容器中运行时,没有留下任何负担。 它被认为是云的编程语言。 从第一天开始,小型二进制文件,快速启动程序,较小的内存占用量就可以了。 并且被广泛采用。 对Java世界的严峻挑战。
Java有机会吗? 只有时间证明一切。 但是,出于好奇,我想将Java云原生服务与golang同类服务在性能和开发经验方面进行比较。
在这篇文章中,我将强调两项服务。 比较他们的CPU,RAM,延迟和正常运行时间。 这些服务将在具有相同资源分配的容器中启动,并且Apache基准测试将使他们汗流sweat背。
对于我的案例研究来说,这是一个"足够好"的基准,因为我不认为找到最佳/最差的基准结果,而是比较在相同环境下执行的两个基准。
场景
两种服务都将连接到在另一个容器中运行的MySQL数据库,该容器具有一个表和三行。
云原生的 Java与Golang
> the database
每个服务将获取所有三行,将其转换为域对象,然后编写JSON数组响应。
Apache基准测试将运行10K请求,并发级别为100,这是quarkus JVM版本的两倍(还用于测试"冷" /"热" JVM))
云原生的 Java与Golang
> the apache benchmark command
Golang服务
使用称为gin的流行的反应式Web框架,该框架具有出色的基准。
在寻找golang非阻塞MySQL驱动程序时,我一无所获,互联网上建议同时使用go-sql-driver,这就是我要使用的。
golang样式非常明确。 一个在你脸上的态度。 主要功能启动服务器,配置请求处理程序,并打开数据库连接。

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读