跳到主要内容

5.5.4. 故障转移与故障恢复过程 (Failover and Failback Procedures)

检测到与某对等端的传输故障后, 若可能, 须将所有未完成请求消息转发到另一代理. 这通常称为「故障转移」(failover).

Diameter 节点要执行故障转移, 必须为每个对等端维护未完成消息队列. 收到应答消息时, 将对应请求从队列移除. 使用逐跳标识 (Hop-by-Hop Identifier) 字段将应答与队列中请求匹配.

检测到传输故障后, 若可能, 将队列中所有消息在置位 T 标志的情况下发往替代代理. Diameter 客户端或代理启动时, 对非易失存储中仍在等待发送的剩余记录也应置位 T 标志. 无法将消息转发到替代服务器的一种情况是消息具有固定目的地, 而不可用的对等端正是该消息的最终目的地 (见 Destination-Host AVP). 此时代理必须返回应答消息, 置位 E 位, Result-Code AVP 为 DIAMETER_UNABLE_TO_DELIVER.

需注意, 因故障转移可能收到多条完全相同的请求或应答. 必须使用 Diameter 头中的端到端标识 (End-to-End Identifier) 与 Origin-Host AVP 识别重复消息.

如第 2.1 节所述, 应周期性尝试与故障对等端重新建立连接. 连接一旦成功恢复, 可再次向该对等端转发消息. 这通常称为「故障恢复」(failback).