我想以与 Hystrix 或 Akka.net 相同的方式将对依赖项的调用包装在断路器/超时/重试中,但是因为我正在天蓝色中构建云服务和工作角色,所以我想知道是否有一个天蓝色的实现,可以让我们做到这一点。
有没有本地的天蓝色方法可以做到这一点?我正在查看服务结构,但我不确定它是否这样做,我们希望在 azure 平台上实现我们的服务,而不是在 azure 基础架构上。
我想以与 Hystrix 或 Akka.net 相同的方式将对依赖项的调用包装在断路器/超时/重试中,但是因为我正在天蓝色中构建云服务和工作角色,所以我想知道是否有一个天蓝色的实现,可以让我们做到这一点。
有没有本地的天蓝色方法可以做到这一点?我正在查看服务结构,但我不确定它是否这样做,我们希望在 azure 平台上实现我们的服务,而不是在 azure 基础架构上。
Microsoft 没有断路器库。我使用Polly取得了巨大的成功。
它真的很容易使用
var policy = Policy
.Handle<TimeoutException>()
.CircuitBreaker(2, TimeSpan.FromMinutes(1));
var result = policy.Execute(() => FetchData(p1, p2));
在我的博客文章中阅读更多相关信息:自动重试和断路器变得简单。
msdn 上有一长串云设计模式架构可用于断路器
https://msdn.microsoft.com/en-us/library/dn589784.aspx
There are several Hystrix ports for .NET like https://github.com/Elders/Hystrix.NET https://github.com/Travix-International/Hystrix.Dotnet
Also some Circuit Breaker samples in Azure documentation https://docs.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker https://microserviceswithazure.com/Samples/Circuit%20Breaker.html
Also, Steeltoe, which enable using Hystrix & Eureka from .NET https://github.com/SteeltoeOSS/Samples/tree/master/CircuitBreaker