Storm 拓扑的高可用性,其中 1 个服务器暂时关闭

问题描述

当拓扑中的一个工作线程被关闭并被替换时,拓扑将被有效地关闭:在替换工作线程所需的时间内,风暴拓扑停止处理并且积压工作将建立。

我认为 1 dead worker = dead topo 的原因是每个 topo 对于每个组件(spout/bolt)都有一个独特的、有时非常具体的任务/执行器数量,它试图将这些任务平均分配给工作人员它有,这也会影响工作间流量的发送位置。 (比如说,如果我们有 1 个路由螺栓,所有流量都必须通过它,并且它会被分配给坏的工人)

所以(这是我有点猜测的地方),在工作人员启动任务期间,storm 认为拓扑“不完整”/未准备好进行处理。类似于当我们启动一个新鲜的拓扑时,它不会开始处理,直到所有工人都启动。

我只是好奇是否有解决方法。我们一直在尝试一种新策略来轮换按拓扑分组的服务器(这有很大帮助),但仍然想知道是否可以使风暴拓扑更能容忍 1 个服务器停止服务(它应该需要不到 5 分钟的时间才能获得替换)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)