当前位置: 首页 > 知识库问答 >
问题:

顶点在 Vert.x 节点群集上的公平分布

万俟铭
2023-03-14

我一直在试验Vert. x的高可用性功能来测试水平可扩展性和弹性。我有一个基于Hazelcast的几个节点的集群。我正在通过HTTP应用编程接口在任何节点上创建顶点。Verticle在创建时设置了HA标志。

如果我有< code>n个节点< code>Nn加载了HA-verticles,并且如果我添加了一个额外的节点,则没有从新节点上的< code>Nn节点迁移的vertices,因此负载将会平衡。有没有办法告诉Vert.x这样做,或者不这样做?我相信事情没那么简单...

如果我有 n 个节点 Nn 加载了 HA 顶点,并且我杀死了其中一个节点,则来自该节点的所有顶点都会被迁移,但会在其余节点中的一个节点上迁移,而该节点并不总是负载最少的节点。该目标节点可能会过载,并且整个群集将面临冻结或崩溃的风险。与之前相同的问题:有没有办法强制 Vert.x 在所有节点上平衡重新启动的顶点,或者至少在负载最少的节点上?

共有1个答案

桓信鸥
2023-03-14

你的观察是正确的,没有办法:

  • 将故障节点的顶点分布到其余节点上
  • 以防止在已加载的节点中启动顶点

改进HA功能不在Vert. x路线图上。

如果看起来,您需要的不仅仅是基本的故障转移,我建议使用专门的基础结构工具,这些工具可以利用监视系统中的信息并根据需要启动/停止新节点。

 类似资料:
  • 问题内容: 我尝试在Google Container Engine的群集节点上安装ElasticSearch(最新版本),但是ElasticSearch需要变量:>> 262144。 如果我ssh到每个节点并手动运行: 一切正常,但是任何新节点将没有指定的配置。 所以我的问题是: 有没有办法在引导时在每个节点上加载系统配置?Deamon Set并不是一个好的解决方案,因为在Docker容器中,系统

  • 我有 2 个 docker 容器运行我的 Web 应用程序和机器学习应用程序,都使用 h2o。最初,我既调用 h2o.init() 又指向同一个 IP:PORT,因此初始化了一个具有一个节点的 h2o 集群。 考虑到我已经训练了一个模型,现在我正在训练第二个模型。在此训练过程中,如果web应用程序调用h2o集群(例如,从第一个模型请求预测),它将终止训练过程(错误消息如下),这是无意的。我尝试为每

  • 我对container worrld是新手,并试图在两个linux VM中本地设置一个kubernetes集群。在集群初始化期间,它卡在 KubeADM-1.6.0-0.x86_64.rpm KubectL-1.6.0-0.x86_64.rpm Kubelet-1.6.0-0.x86_64.rpm

  • 我对vert.x非常陌生,我有一个非常基本的问题:假设一个顶点包括一些顶点。通常说一个顶点是单线程的。这是否意味着,如果一个顶点正在被处理,那么属于同一顶点的另一个顶点将不得不等待,直到第一个顶点结束,然后它(另一个顶点)将能够开始它的工作?我的意思是在同一个顶点中的顶点之间没有上下文切换。

  • 我计划部署Kafka集群。我有以下查询: 1)为了保护生产者和消费者与Kafka broker的通信,可以使用SSL。如果我有一个由9个代理和3个zookeeper节点组成的集群,并且如果我不想使用自签名证书,我是否必须为每个节点购买一个证书(9个3证书,成本太高)? 正如我所读到的,生产者/消费者直接联系其中一个经纪人节点,而不联系动物园管理员。 谢谢, 病毒的

  • 因为每个 Disque 节点都会将自己的配置信息储存在 disque-server 运行的文件夹里面, 而同一个文件夹只能有一份这样的配置信息, 所以如果我们打算同时运行多个节点, 那么就必须在不同的文件夹里面运行 disque-server , 并为每个节点指定不同的端口。 假设我们现在打算运行三个 Disque 节点, 那么首先要做的就是创建三个文件夹, 然后分别在这些文件夹里面运行 disq