Transient Fault Handling and Retry Logic: 瞬间错误处理——重试

1、什么是Transient Fault

Transient Fault:想了一会不知道如何翻译这个词组,姑且称为瞬间错误吧。举一个例子,现在大量项目使用了WCF,如果由于网络瞬间的网络中断或者突发网络负载增大造成连接超时,这时我们最直接的办法也许是弹出的对话框告诉客户,我们这次提交失败了。但是这并不是我们真正想要的结果,由于这些错误通常都是短暂的,可恢复的,我们只需要要再次手动或者自动的进行提交,Retry一下,便可以正常提交此次请求。还有一个例子就是Sql server HA 环境下,虽然Sql server 高可用性实现了服务器自动切换等等一切安全措施,但是由于自动切换服务器而产生的事务提交异常,确是需要我们自己进行处理的,如果没有进行很好的异常处理,那么只有Crash或者丢失数据了。对于一个high availability 程序应该在服务调用层(WCF)和数据库访问层实现Retry逻辑来处理Transient Fault。

 2、Patterns & Framework

由于本人不是大牛了,遇到这种问题自然是问Google, 找来找去终于找到两个可用的框架。

1、SQL Fault Retry Provider

这个项目提供了一个如何创建高可用性应用程序的案例,当然特指在SQL Mirroring环境下。并且提供了一个可以进行重试操作的 Data Provider.

2、Transient Fault Handling Framework

这个框架来自微软的 Windows Azure AppFabric Customer Advisory Team (CAT) 团队。这个框架提供了一个可复用的框架用于处理程序中不同场景下的Retry逻辑。主要针对在客户使用 SQL Azure, Windows Azure storage (queues, blobs, tables), Windows Azure Service Bus 和 Windows Azure Caching Service时,需要Retry的情况。

 

转载于:https://www.cnblogs.com/yanyan45/archive/2012/12/18/2824318.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值