从灾难中恢复时,运行核心服务的主机可能会崩溃或不可用,一些后备服务器可以立刻顶上,这通常需要更新 DNS 配置,或者预先配置好一个负载均衡设备。但是不是只能这么做呢?如果客户端应用能够简单的问一句“谁能提供 IFoo 服务”,就可以自动连接到后备服务器岂不是更好?
使用 WCF 4.0 的动态终结点探索技术,这将成为可能。基于WS-Discovery 标准,服务可以使用“udpDiscoveryEndpoint”来表明自己的存在。然后应用程序就可以使用DiscoveryClient API 来寻找实现特定contract 的服务。
找到服务的地址后,客户端还需要知道绑定所需的信息,才能够开始调用服务。这项工作可以通过使用MetadataResolver 来实现,这个API 一直存 在于WCF 中。和动态终结点搜索一样,这项技术也基于Web Service 标准,准确的说是WS-MetadataExchange。
构建在这之上的是 AnnouncementService ,客户端可以通过它来得知服务何时可用或不可用。将之与动态终结点搜索相结合,可以开发成熟的负载均衡与故障转移方案。
评论