Vert.x中的队列和顶点数量限制

问题描述 投票:0回答:1

我们现在正在重构以Vert.x编写的消息传递应用程序。该应用程序处理来自用户的传入消息。最初,实现它是为了使单个verticle实例侦听事件总线中的单个队列并处理所有传入消息。

[我们正在考虑做的是对其进行重构,以使其工作方式类似于参与者模型:我们为每个活动用户部署一个垂直实例,并使其监听特定于用户的队列。这样,Verticle实例可以维护用户特定的状态,并且消息处理的并行化变得更加容易。

然而,问题是,这将导致部署大量的顶点(并行30k-50k)和Eventbus中的大量队列。而且,我们还需要手动维护这些顶点(取消部署未使用的顶点,并在收到新用户的消息时将其部署)。

问题是-这种actor风格的体系结构对vert.x是否有用,它可以同时处理大量已部署的verticle和eventbus队列吗?

java actor vert.x
1个回答
0
投票

这里有一个主要的更正-EventBus是一个队列。因此,您将不会有“大量队列”。只会有一个。您将在一个队列中拥有大量地址。

但是这个数字这么大吗?好吧,一个50K元素的HashMap是否可以视为巨大的?至少在密钥方面可能不是。现在请注意,这仅适用于非群集模式下的Vert.x。群集Vert.x是不同的(尽管仍然可以使用)。

现在拥有那些顶点是另一回事。每个顶点是一个单独的对象,如果您计划在其中存储一些数据,它将更大。但是,如果您能负担得起具有适当RAM(16GB +)的机器,它应该可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.