首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows服务总线队列:节流和黄玉

Windows服务总线队列:节流和黄玉
EN

Stack Overflow用户
提问于 2012-05-21 14:53:38
回答 2查看 1.2K关注 0票数 1

今天,我们在一位客户身上分析了前几周的日志,发现了有关Windows服务总线队列的以下问题:

由于实体被节流,请求被终止。请等10秒钟,再试一次。

在验证了代码之后,我告诉他们使用瞬态故障处理应用程序块(TOPAZ)来实现像下面这样的重试策略:

代码语言:javascript
复制
 var retryStrategy = new Incremental(5, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2));
 var retryPolicy = new RetryPolicy<ServiceBusTransientErrorDetectionStrategy>(retryStrategy);

顾客回答说:

“啊,那太好了,所以它也会处理当节流时它应该等待10秒的事实。”

想想看,我从来没有核实过是否是这样的。我一直以为是这样的。在Microsoft.Practices.EnterpriseLibrary.WindowsAzure.TransientFaultHandling程序集中,我寻找等待10秒以防节流的代码,但是没有找到任何东西。

这是否意味着TOPAZ不足以创建弹性应用程序?是否应该结合一些自定义代码来处理节流(即:在发生特定异常时等待10秒)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-21 14:59:54

我记得,“10秒”的等待不是一个要求。另外,我相信黄玉也有退避的能力,这将帮助你度过难关。

就个人而言,我认为仅仅利用像TOPAZ这样的东西并不足以创造出一个真正有弹性的解决方案。弹性不仅仅是在单个连接点上节流,您还需要能够处理冗余端点的故障转移,而TOPAZ不会这样做。

票数 0
EN

Stack Overflow用户

发布于 2012-07-03 12:49:31

就节流而言,黄玉提供了一组内置重试策略,包括:固定区间增量间隔随机指数后退间隔。

你也可以写你的定制重试斯特拉基和插件-它到黄玉。

另外,正如布伦特所指出的,10秒的等待并不是强制性的。在许多情况下,立即重新尝试可能不需要等待就能成功。默认情况下,Topaz在使用策略定义的重试间隔之前立即执行第一次重试。

有关更多信息,请参见“构建弹性和弹性云应用程序”开发人员指南的Ch.6,也可从这里获得epub/mobi/pdf。

如果您有关于黄玉的建议/特性请求,请通过用户之声提交。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10687628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档