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。

  1. Java基础知识
  2. Maven基础知识
  3. 关系型数据库(如:MySQL)基础知识
  4. 非关系数据库(如:redis)基础知识
  5. 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执行时间超过了默认最大值。通过调整设置可以消除,方法如下:

  1. 配置参数方式。在命令行中或环境变量中修改(单位ms)

    java -jar im.jar -Dvertx.options.maxEventLoopExecuteTime=5000

    export VERTX_OPTS='-Dvertx.options.maxEventLoopExecuteTime=5000'

  2. 启动vertx时使用option类。option介绍:https://www.jianshu.com/p/64ab17952e96

注意:Event Loop 在被阻塞时就不能做任何事情。Vert.x 对长时间的Event Loop提供报错信息,时间取决于上文提到的maxEventLoopExecuteTime配置。 此外,Vert.x还将提供堆栈跟踪,以精确定位发生阻塞的位置。

功能架构

results matching ""

    No results matching ""