我有 WSO2ESB 集群(ESB1 和 ESB2 工作人员),我正在使用共享数据库 MSSQL(MB1 和 MB2 代理)配置 WSO2MB 集群。ESB 服务器将从 WSO2MB 集群中的代理写入和读取消息。我想要实现的是 ESB1 将读取/写入消息到代理 MB1,ESB2 将读取/写入消息到代理 MB2。例如,在 MB2 发生故障的情况下,两个 ESB 服务器都将读取/写入消息到 MB1。在文档中我只看到循环版本的故障策略,这意味着 ESB 服务器将随机连接到 MB 代理。有单一代理策略,但它适用于我的情况还是我必须实现自己的 FailoverMethod 接口?我需要基于优先级或权重的故障转移策略,我只在 ActiveMQ 中看到。Thnx 的任何回复。
问问题
146 次
1 回答
0
循环不是连接到经纪人的随机算法。它将按经纪人列表中的给定顺序从头到尾排列经纪人的优先级。通过可配置的“循环计数”、“重试次数”、“连接延迟”属性,您还可以最大限度地减少对低优先级代理的重试。即使 wso2 mb 目前没有加权故障转移策略,您也可以尝试通过上述配置实现类似的行为。
据我了解,在 2 节点代理集群(在您的用例中),优先考虑代理(加权故障转移策略)不是一个有效的案例。例如,如果 MB1 关闭,则故障转移的唯一可用选项是 MB2,反之亦然。如果您不想将 ESB1 连接到 MB2(而 MB1 不可用),只需从 ESB1 的“jndi.properties”文件中的代理列表中删除 MB2 的连接 url。此外,您需要更改 MB1 代理 URL 中的“循环计数”、“重试次数”、“连接延迟”,以便重试直到 MB1 再次可用。因此,这个用例可以通过“循环”策略轻松实现。
于 2016-10-09T06:24:09.240 回答