在Vert.x应用程序中部署Verticle时,文档似乎极不清楚Verticle“实例”是什么以及它如何与线程和线程池相关。事实上,它对任何与实际线程模型有关的内容都相当不清楚。
根据文档:
Vert.x在这里的工作方式不同。每个Vertx实例维护几个事件循环,而不是单个事件循环。默认情况下,我们基于机器上可用的核心数来选择数量,但可以覆盖默认值。
还根据文档:
在Vert.x服务器中实例化Verticle的数量。每个Verticle实例都是严格单线程的,因此要跨可用核心扩展应用程序,您可能需要部署多个实例。如果省略,则将部署单个实例。我们将在本用户手册的后面更详细地讨论缩放问题。
假设我想部署一个简单的REST API,编写为单个Verticle,并希望它在可用的CPU核心上高效扩展,我应该怎么做?
- 我应该每个CPU核心部署一个Verticle实例吗? - 根据文档的至少一部分,我应该部署单个Verticle实例,因为单个Verticle实例已经维护了多个事件循环(我假设1个事件循环= 1个线程)吗? - 如果我部署4个Verticle实例,实际上会创建/使用哪些线程和/或线程池?
根据文档:
Vert.x在这里的工作方式不同。每个Vertx实例维护几个事件循环,而不是单个事件循环。默认情况下,我们基于机器上可用的核心数来选择数量,但可以覆盖默认值。
还根据文档:
在Vert.x服务器中实例化Verticle的数量。每个Verticle实例都是严格单线程的,因此要跨可用核心扩展应用程序,您可能需要部署多个实例。如果省略,则将部署单个实例。我们将在本用户手册的后面更详细地讨论缩放问题。
假设我想部署一个简单的REST API,编写为单个Verticle,并希望它在可用的CPU核心上高效扩展,我应该怎么做?
- 我应该每个CPU核心部署一个Verticle实例吗? - 根据文档的至少一部分,我应该部署单个Verticle实例,因为单个Verticle实例已经维护了多个事件循环(我假设1个事件循环= 1个线程)吗? - 如果我部署4个Verticle实例,实际上会创建/使用哪些线程和/或线程池?