【问题标题】:What are advantages of Vert.x comparing to threadPool?Vert.x 与 threadPool 相比有什么优势?
【发布时间】:2022-01-19 09:21:50
【问题描述】:

在web场景中,我使用SpringBoot处理请求,对于每个请求,主线程向其他服务器发送多个请求获取数据(这一步使用treadPool进行异步),最后主线程“获取”所有数据并返回。

所以我想知道 Vert.x 在这个场景中的优势是什么?两者都使用多线程来异步任务,如果我用vert.x替换threadPool性能会更好吗?

【问题讨论】:

  • 你读过vertx.io/docs/vertx-core/java/#_dont_block_me吗?之后的两个部分也应该有所帮助。
  • @dano 我可能没有描述清楚,我想问的是使用vert.x作为客户端有什么好处,对于阻塞IO,避免阻塞eventLoop线程,我们仍然需要其他线程来完成工作,那么为什么比在客户端使用传统的线程池更好呢?
  • 如果您使用 vert.x,但随后只使用阻塞 I/O API,实际上并没有任何优势。只有在您主要使用它们的非阻塞 API 时,才能实现 Vert.x 的大部分好处。如果你需要做的任何 I/O 都没有对 Vert.x 友好的 API,那么它可能不是你的好选择。

标签: java multithreading vert.x


【解决方案1】:

不一样吗,Vert.x 不会为每个请求创建一个新的 Thread。 Vert.x 有一个叫做事件循环的东西,它使用几个 Java 线程来管理。

Vert.x 使用的线程数会随着您部署的 Verticle 数量的增加而增加,但在 Count 中仍会非常低。

Vert.x 中的代码也是 Reactive 是基于事件执行的,所以如果你在等待一个事件(例如 Http Response),当有可用的响应并且没有线程阻塞时,你的代码将被调用回应。

查看此处了解更多信息: https://alexey-soshin.medium.com/understanding-vert-x-event-loop-46373115fb3e

【讨论】:

  • 还是一头雾水,vert.x 在哪里存储套接字信息?这是否意味着 vert.x 可以接受无限请求?
猜你喜欢
  • 2016-07-04
  • 2011-03-13
  • 1970-01-01
  • 2011-09-27
  • 1970-01-01
  • 2010-09-24
  • 2010-12-27
  • 2011-11-06
  • 2015-04-06
相关资源
最近更新 更多