支持JDK19虚拟线程的web框架,之一:体验( 二 )

【支持JDK19虚拟线程的web框架,之一:体验】sudo docker run \--name postgres \-p 5432:5432 \-e POSTGRES_DB=quarkus_test \-e POSTGRES_USER=quarkus \-e POSTGRES_PASSWORD=123456 \-d \postgres:15建表,添加数据

  • 用数据库工具连接数据库(我这里用的是IDEA的数据库工具),执行以下命令,会新建一个表,并导入6条记录
create table person (id serial primary key,name varchar(255),gender varchar(255),age int,external_id int);insert into person(name, age, gender, external_id) values('John Smith', 25, 'MALE', 10);insert into person(name, age, gender, external_id) values('Paul Walker', 65, 'MALE', 20);insert into person(name, age, gender, external_id) values('Lewis Hamilton', 35, 'MALE', 30);insert into person(name, age, gender, external_id) values('Veronica Jones', 20, 'FEMALE', 40);insert into person(name, age, gender, external_id) values('Anne Brown', 60, 'FEMALE', 50);insert into person(name, age, gender, external_id) values('Felicia Scott', 45, 'FEMALE', 60);部署quarkus应用
  • 登录用于部署quarkus应用的服务器,确保服务器上已经成功部署了docker
  • 新建名为application.properties的配置文件,内容是数据库相关的参数,如下所示
quarkus.datasource.db-kind=postgresqlquarkus.datasource.username=quarkusquarkus.datasource.password=123456quarkus.datasource.reactive.url=postgresql://192.168.0.99:5432/quarkus_test
  • 我这里,application.properties的路径是:/home/lighthouse/config/quarkus/application.properties
  • 检查application.properties文件的可读性,执行以下命令设置
sudo chmod a+r application.properties
  • 执行以下命令即可部署和启动quarkus应用,注意application.properties文件的位置要换成您自己的配置文件路径
docker run -idt \--name quarkus \-p 8080:8080 \-v /home/lighthouse/config/quarkus/application.properties:/application/config/application.properties \bolingcavalry/quarkus-virual-threads-demo:x64-0.0.3
  • 上述命令中,quarkus应用的镜像bolingcavalry/quarkus-virual-threads-demo:x64-0.0.3是我提前准备好的,本篇只管使用即可,至于如何制作此镜像,接下来的文章会有详细说明
  • 用sudo docker logs quarkus命令查看启动日志,如果启动成功,信息如下所示
__________________ __________ --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \--\___\_\____/_/ |_/_/|_/_/|_|\____/___/2022-10-16 11:46:41,406 INFO[io.quarkus] (main) quarkus-virual-threads-demo 1.0-SNAPSHOT on JVM (powered by Quarkus 2.13.2.Final) started in 0.804s. Listening on: http://0.0.0.0:80802022-10-16 11:46:41,414 INFO[io.quarkus] (main) Profile prod activated.2022-10-16 11:46:41,414 INFO[io.quarkus] (main) Installed features: [cdi, reactive-pg-client, resteasy-reactive, resteasy-reactive-jackson, smallrye-context-propagation, vertx]验证基本功能
  • 假设quarkus所在宿主机的IP地址是192.168.0.1,那么在浏览器上访问地址http://192.168.0.1:8080/vt/persons/1,如下图,应用成功从数据库取得数据,并且将当前线程信息也返回给浏览器

支持JDK19虚拟线程的web框架,之一:体验

文章插图
  • 作为对比,该服务器上还有个使用虚拟线程的常规web服务,地址是:http://192.168.0.1:8080/pool/persons/1,如下图,该接口也能从数据库取得数据,并且将当前线程信息也返回给浏览器,注意两个接口线程信息的差异

支持JDK19虚拟线程的web框架,之一:体验

文章插图