首页 > 解决方案 > 标准verticle和worker verticle的区别

问题描述

我对 Vertx 中的标准 verticle 和 worker verticle 感到困惑。它们的用例是什么?

标签: javavert.xvertx-verticle

解决方案


Vert.x 是一个事件驱动的非阻塞工具包。当一个“标准”verticle被执行时,它的逻辑在一个事件循环线程上运行。虽然该线程运行该 Verticle 的逻辑,但它不能服务任何其他请求,因此该线程不应执行任何阻塞代码。

但是,有时,您确实需要执行阻塞代码——进行长时间计算、同步调用外部服务等——在这种情况下,您需要确保这不会发生在事件循环线程上。

你有两种方法来执行阻塞代码:

  • 使用worker verticle,它会在自己的线程池中执行代码,可以根据需要进行配置;
  • 或者使用一个executeBlocking块,它在一个单独的线程中执行。

推荐阅读