Web services 有状态服务器的故障切换策略
在我们的项目中,我们有一个有状态的服务器。服务器运行规则引擎(Drools)并使用rest服务公开功能。这是一个监控系统,正常运行时间达到或低于100%是非常关键的。因此,我们还需要关闭服务器以进行维护的策略,以及能够在一台服务器脱机时继续监视代理的策略Web services 有状态服务器的故障切换策略,web-services,stateful,Web Services,Stateful,在我们的项目中,我们有一个有状态的服务器。服务器运行规则引擎(Drools)并使用rest服务公开功能。这是一个监控系统,正常运行时间达到或低于100%是非常关键的。因此,我们还需要关闭服务器以进行维护的策略,以及能够在一台服务器脱机时继续监视代理的策略 第一种可能是在drools服务器前面放置一个消息队列或服务总线,以保留尚未处理的消息,并具有将服务器状态备份到数据库或其他存储的机制。这样就可以关闭服务器几分钟以部署新版本。但问题是,当一台服务器意外脱机时该怎么办。是否有针对有状态服务器的故障
第一种可能是在drools服务器前面放置一个消息队列或服务总线,以保留尚未处理的消息,并具有将服务器状态备份到数据库或其他存储的机制。这样就可以关闭服务器几分钟以部署新版本。但问题是,当一台服务器意外脱机时该怎么办。是否有针对有状态服务器的故障切换策略,您有何经验?欢迎提供建议。我想不出什么“正确”的方法。这取决于以下因素:
重放事件时要考虑的另外一点是,在完成重放之前,您可能不希望任何警报被提升到外部。例如,您可能不希望发送50封提醒电子邮件,告诉您ApplicationX已停止运行、停止运行、停止运行、停止运行、停止运行
我假设监控应用程序可能会以某种形式向外部世界发送警报。如果您有如4所示的热配置,则还需要控制警报。我很想通过配置每个队列将警报推送到自己的队列来解决这个问题。然后,中间件可以将警报从辅助监视器转发到死信队列。故障转移将是重新配置中间件,以便主要警报进入死信队列,次要警报进入警报通道。此机制还可用于丢弃重播恢复期间引发的事件 考虑到重播事件可能带来的复杂性和潜在的混乱,对于监控应用程序,我可能更喜欢从头开始,或者使用持久化会话。然而,这很可能取决于您监视的内容