与How can I define a failover spring integration gateway?提出的问题类似 我必须实现故障转移功能,但是我的表达方式不同。
我有两个代理:主服务器和辅助服务器以及在PRIMARY或BACKUP模式下在同一服务器上运行的一个服务。使用SYNC队列执行内部数据的同步。
在服务中,我想在Spring Integration中实现以下功能:
每个1Q,2Q,3Q,...,5Q队列都有一个接收器,1SQ队列有一个发送器。接收方和发送方都使用主代理进行操作(已在Spring中使用消息网关实现,发送方为路由器,接收方为服务激活方)。
当收到来自1Q-5Q的消息时,会向1SQ发送新消息(这已经有效)。同时将内部数据的更新发送到SYNC队列。这样,在故障转移的情况下,内部数据结构是同步的。
外部模块向主代理的1Q队列发送附加的KeepAlive消息。如果在N秒后没有收到消息。应启动与二级经纪人合作的新接收方和发送方。这样接收器/发送器就具有主代理的功能。
问题:
显然循环策略不合适。另外,在question中自动选择辅助服务器是不可取的。这就是为什么选择keepAlive消息来检测主代理是否已关闭的原因。是否可以在Spring Integration中使用此功能?更确切地说: