gpt4 book ai didi

java - Vert.x 中队列和 verticle 数量的限制

转载 作者:行者123 更新时间:2023-12-02 01:11:04 26 4
gpt4 key购买 nike

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

我们正在考虑重构它,使其工作方式与 Actor 模型有点相似:我们为每个 Activity 用户部署一个 verticle 实例,并使其监听特定于用户的队列。这样,Verticle 实例可以维护用户特定的状态,并且消息处理的并行化变得更加容易。

然而,问题是这将导致部署大量的 verticle(并行 30k - 50k)以及事件总线中的大量队列。而且我们还需要手动维护 verticle(取消部署未使用的 verticle,并在有来自新用户的消息时部署这些 verticle)。

问题是 - 这种 actor 风格的架构适合 vert.x 并且它可以同时处理大量部署的 verticle 和 eventbus 队列吗?

最佳答案

这里需要进行一个重大更正 - EventBus 是单个队列。因此,您不会有“大量的队列”。只会有一个。您将在单个队列上拥有大量地址。

但是这个数字有这么大吗?那么,50K 元素的 HashMap 算不算巨大呢?可能不会,至少在 key 方面是这样。现在请注意,这仅适用于非集群模式下的 Vert.x。集群 Vert.x 是不同的(不过仍然应该可以工作)。

现在拥有这些顶点是另一回事了。每个verticle都是一个单独的对象,如果你打算在其中存储一些数据,它会更大。但如果你能买得起配备不错内存(16GB+)的机器,它应该可以正常工作。

不过,在这个解决方案中我关心的是,您计划按需部署 verticle,然后取消部署它们。它确实会产生延迟,因此您的用户在发送第一条消息时会遇到性能下降的情况。

关于java - Vert.x 中队列和 verticle 数量的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59391343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com