1

类似于我如何定义故障转移弹簧集成网关? 我必须实现故障转移功能,但是我的解释是不同的。

我有两个代理:主代理和辅助代理,以及一个在 PRIMARY 或 BACKUP 模式下在相同服务器上运行的服务。使用 SYNC 队列执行内部数据的同步。

在服务中,我想使用 Spring Integration 实现以下功能:

  • 每个 1Q、2Q、3Q、...、5Q 队列都有一个接收者,1SQ 队列有一个发送者。接收者和发送者都与主代理一起操作(已经在 Spring 中实现,使用消息网关和路由器作为发送者,以及服务激活器作为接收者)。

  • 当收到来自 1Q-5Q 的消息时,会向 1SQ 发送一条新消息(这已经有效)。同时内部数据的更新被发送到SYNC队列。这样,在发生故障转移时,内部数据结构就会同步。

  • 外部模块向主代理的 1Q 队列发送附加的 KeepAlive 消息。如果 N 秒后没有收到消息。应该启动与二级代理一起操作的新接收方和发送方。通过这种方式,接收方/发送方承担了主代理的功能。

问题:

显然循环策略是不合适的。同样,自动选择辅助服务器 也不是可行的方法这就是为什么选择 keepAlive 消息来检测主代理是否关闭的原因。是否可以通过 Spring Integration 提供此功能?更准确地说:

  1. 当主服务器没有收到keepAlive消息时,如何为我的发送者/接收者实现主从服务器之间的切换?
  2. 重新启动并运行时是否可以切换回主服务器?
4

0 回答 0