首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >轻型集群Vert.x

轻型集群Vert.x
EN

Stack Overflow用户
提问于 2017-03-10 09:29:44
回答 1查看 635关注 0票数 2

我们有许多不同的vertx实例,它们通过上面的EventBus集群进行通信。这个盒子很好用。

但是,vertx的实现似乎是我们的开销。Hazelcast显著增加了每个实例的消耗内存和启动时间。另外,我们不使用任何内存存储,也不使用任何AsyncMaps和HA特性。

是否有可能以最小的影响进行交互通信?有什么解决办法吗?

UPD.更多细节

我尝试了vert.x v3.3.3和v3.4.0,它们都使用hazelcast v3.6.3。此外,我尝试了更新版本的hazelcast 3.4vert.x。

为了进行比较,我在此基础上运行了一个动物管理员实例和vert.x实例。

总之,我收集了一些初始化阶段的统计数据。对我来说,连接到集群的时间更重要。我还注意到,hazelcast在开始时加载了许多com.hazelcast*类(大约占项目中加载类的一半)。

代码语言:javascript
复制
|                              | hazelcast 3.6.3 | hazelcast 3.7.5 | Hazelcast 3.8 | Zookeeper 3.4.8 | No cluster |
|------------------------------|-----------------|-----------------|---------------|-----------------|------------|
| Loaded classes(init phase)   | 2685            | 2703            | 3131          | 257             | 0          |
| Start of the 1st member(sec) | 2.3s±0.2        | 2.4±0.2         | 2.4s±0.2      | 1.0s±0.1        | 0.4        |
| Start of 2d/3d member(sec)   | 4               | 4.5±0.2         | 4.5s±0.2      | 1.0s±0.1        | —          |

我使用了Ubuntu x64和java8.121

PS:我再说一遍,我只讲到init阶段。

EN

回答 1

Stack Overflow用户

发布于 2017-03-17 08:09:28

您在度量中注意到的差异是由于vertx-hazelcast和vertx-zoo门将群集管理器管理器工作方式的根本差异:

  • 当使用vertx-时,vert.x实例将启动一个Apache策展人客户端1,该客户端1连接到一个现有的集群:集群本身正在其他JVM上单独运行。
  • 当使用hazelcast集群管理器运行vert.x时,集群管理器启动一个运行在同一个JVM中的Hazelcast成员:您没有连接到单独的Hazelcast集群,而是在与vert.x实例相同的JVM中运行一个完整的集群成员。

这至少应该解释您注意到的加载类数量的差异。尽管如此,您可以启动单独的Hazelcast实例并配置群集管理器来启动lite成员2。Hazelcast成员不存储任何数据,因此在加载类方面可能更轻,而且在运行时肯定更轻,因为它不参与共享数据管理,而是充当集群数据结构的客户端。

就连接时间而言,您的结果可能因使用多播、TCP/IP或其他群集发现方法而有所不同。请参阅3中有关替代群集发现配置选项的更多信息。

1

2

3

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42714804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档