【发布时间】:2019-12-18 11:46:09
【问题描述】:
我们现在正在重构我们用 Vert.x 编写的消息传递应用程序。应用程序处理来自用户的传入消息。最初,它被实现为有一个单独的 Verticle 实例来监听事件总线中的一个队列并处理所有传入的消息。
我们正在考虑做的是重构它,使它的工作方式有点类似于演员模型:我们为每个活跃用户部署一个 Verticle 的实例,并让它监听一个用户特定的队列。通过这种方式,verticle 实例可以维护用户特定的状态,并且消息处理的并行化变得更加容易。
然而,问题在于,这会导致部署大量的 Verticle(30k - 50k 并行)和事件总线中的大量队列。而且我们还需要手动维护 verticles(取消部署未使用的 verticles,并在有来自新用户的消息时部署它们)。
问题是 - 这种 actor 风格的架构是否适用于 vert.x,它能否同时处理大量部署的 verticles 和 eventbus 队列?
【问题讨论】: