✅ 只能手把手教Quakus V3云原生框架了<1>

Quarkus

先来说下Quarkus,目前除了Spring之外,最火的Java框架了吧。俺们公司也用Quarkus做了一些项目了,总体来说,与Spring Boot比较各有优劣。

image.png

Quarkus官网上,有这么一张图来显摆自己是比Spring Boot更牛逼的。

image.png

当然,Quarkus的定位倾向于云原生,比如配合 Kubernetes 使用,会很香。

Quarkus Starter

这篇文章主要是从头来讲一下Quarkus的使用。

Quarkus依赖

通过官网,可以看到Quarkus对JDK和Maven的版本依赖。

  • JDK 11+ installed with JAVA_HOME configured appropriately
  • Apache Maven 3.9.2

我们需要先确定自己的本机的版本是否符合要求。

Java 版本

可以在命令行工具中使用java -version进行版本的查询。

image.png

Maven 版本

可以在命令行工具中使用mvn --version进行版本的查询。

image.png

如果版本不满足要求,就需要升级版本了。

生成一个Quarkus项目

跟Spring Boot一样,我们可以通过网页,选择需要的组件来配置一个初始化的Quarkus项目。

image.png

进入到网址:code.quarkus.io/

image.png

在图上大致的标注了下中文,我们将使用这个网址来获得一个初始化的Quarkus项目。因为只是用于编写Demo,我们只选用了以下三个 Extensions

  • RESTEasy Reactive Jackson
  • Hibernate Reactive with Panache
  • Reactive MySQL client

将项目下载到本地解压后,大致的目录结构如下

image.png

启动项目

项目导入到IntelliJ IDEA之后,在目录结构上中只能看到一个测试类GreetingResource.java,没有类似Spring Boot的Main方法,这个时候怎么启动项目呢?

点击IDEA中的添加配置

image.png

添加Maven项目

image.png

运行命令中填写 quarkus:dev -f pom.xml

在如图位置的运行命令中填写 quarkus:dev -f pom.xml,然后点击应用按钮即可。

image.png

同时确保Java版本和Maven版本都正确。

image.png

运行

点击绿色的三角按钮,可以运行项目。如果想进行调试,可以点击绿色三角按钮隔壁的DEBUG按钮。

image.png

运行后大致是这个样子的,默认端口是8080,其中加载了挺多的扩展Jar。

image.png

调用一下

我们可以使用命令行或者浏览器调用一下,命令行的调用命令如下

curl "http://localhost:8080/hello"

结果如下图

image.png

以上,项目算是初步运行起来了。

做一下简单的压测

打包部署

打包命令如下,我们将项目打包成和Spring Boot一样的Jar包,并跳过单元测试。

mvn package -Dquarkus.package.type=uber-jar -Dmaven.test.skip=true  

并以Jar包的方式进行部署

java -jar target/demo-with-quarkus-1.0.0-SNAPSHOT-runner.jar 

执行结果如下:

image.png

压测

可以使用ab或者wrk进行简单的压测,毕竟Quarkus Reactvie有一个性能优势。我这边选择用wrk进行简单压测,并使用jconsole工具检测JVM指标。

wrk的压测命令如下:

wrk -c100 -d1m http://localhost:8080/hello

执行结果如下

image.png

而jconsole的面板指标如下

image.png

image.png

image.png

image.png

压测结果分析

Quarkus 的性能还是不错的,内存占用和CPU指标都挺让人满意,而QPS达到84530.39,反而没什么参考意义,并大多数业务瓶颈都在数据库上。

总结

从Quarkus Reactvie的项目配置、搭建、运行、打包、部署、压测的全部流程都写完了,后续会讲一下具体编程方式方法。

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYg0EqO3' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片