目前,我们有一个批处理驱动的流程,每15分钟运行一次,每次运行都会重复此周期数次:
-
调用存储过程并从数据库中获取一些数据
-
处理数据
-
将结果保存回数据库
它无法一次性加载所有数据,因为数据由多个字段分隔,并且每组数据在处理过程中需要不同的行为(可从前端配置)。
但是,最近业务的变化导致某些组的数据量(因此所需的处理时间)突然激增,因此,现在只要其中一个组超出范围,就会延迟所有其他组。
我们的计划是在多台机器上并行此过程,以便:
-
有一个中央控制器(主)和几个工作站(从)
-
master负责安排运行(可从前端配置)
-
主设备(或单独的组件)负责向数据库加载/保存数据以及从数据库加载/保存数据(以避免多个从设备之间的死锁/争用)
-
从属服务器接收工作项,处理它们并将结果返回给主服务器
-
有一个主从服务器(我们环境中的主生产服务器),它通常接收所有工作项
-
仅当主从属设备在需要较长处理时间的组上工作时,辅助从属设备才会接收工作(主设备可以根据返回数据的大小来确定这一点,也可以将其留给配置)
-
如果从机在处理过程中引发异常,则会向支持团队发送警报电子邮件,并在下一个计划周期中拾取相同的工作项
-
还不确定超时怎么办
我对分布式环境中的主从模式做了一些研究,但到目前为止还没有找到很多参考资料,这里有人知道这种模式的良好实现吗?任何关于这种体系结构潜在缺陷的指点都将非常感激!
谢谢