Vert.x 构建服务
Vert.x 中文文档见:https://vertxchina.github.io/vertx-translation-chinese/start/Start.html
感谢Vert.x中国用户社区与各翻译者的贡献。
开发前置知识
Vert.x 引入的异步编程可能和传统的Java Web开发(例如:Tomcat和Spring体系)有所不同。但是这些新的设计理念也正是Vert.x 魅力所在,通过合理的使用Vert.x,我们可以快速搭建高并发的服务。
我们期待开发人员有一定的前置知识。虽然下面的清单不是必须条件,但是它们有助于开发人员理解Vert.x。
- Java基础知识
- Maven基础知识
- 关系型数据库(如:MySQL)基础知识
- 非关系数据库(如:redis)基础知识
- Java Web开发基础(一些知识点的类比有助于学习新机制)
推荐使用JetBrain家的IntelliJ IDEA作为IDE。考虑国内Eclipse的占有率,我们也简要讲解Eclipse下的使用。
入门概略
运行&调试
Vert.x程序独立运行,使用 Run As(Test As) -> Java Application 运行和调试。
对比:传统Servlet项目,开发人员编写的是JavaBean和相关文件,需要在Tomcat或其他应用服务器提供的Servlet环境下运行。
发布
Vert.x程序使用JAR发布,通过Export -> Runnable JAR file 打包成独立运行jar。在命令行下执行java -jar {JAR目录}
运行程序。
也可以先安装Vert.x发行版,使用vertx 运行Verticle文件。如:vertx MainVerticle.java。详见:https://vertxchina.github.io/vertx-translation-chinese/core/Core.html
常见问题
1. 启动时warning处理
Q: 在运行Vert.x时,可能会有warning提示如下:
Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 2260 ms, time limit is 2000
A: 这是Vert.x eventloop阻塞(blocked)警报,因为Eventloop执行时间超过了默认最大值。通过调整设置可以消除,方法如下:
配置参数方式。在命令行中或环境变量中修改(单位ms)
java -jar im.jar -Dvertx.options.maxEventLoopExecuteTime=5000
export VERTX_OPTS='-Dvertx.options.maxEventLoopExecuteTime=5000'
启动vertx时使用option类。option介绍:https://www.jianshu.com/p/64ab17952e96
注意:Event Loop 在被阻塞时就不能做任何事情。Vert.x 对长时间的Event Loop提供报错信息,时间取决于上文提到的maxEventLoopExecuteTime配置。 此外,Vert.x还将提供堆栈跟踪,以精确定位发生阻塞的位置。