企业应用中微服务架构的应用指南
1. 消息队列与通信方式
在微服务架构中,消息队列和通信方式至关重要。RabbitMQ 和 Azure Service Bus 功能相似,但在使用上有所不同。RabbitMQ 需要开发者处理所有实现细节和操作确认等,而 Azure Service Bus 会处理底层任务并提供更简单的接口。
若微服务发布到 Azure Service Fabric,可使用内置的可靠二进制通信。这种通信具有弹性,通信原语会自动使用重试策略。虽然它是同步的,但由于 Azure Service Fabric 中的微服务有内置队列,接收方收到消息后可放入队列并立即返回,不会阻塞发送方。不过,这种内置通信不是基于发布 - 订阅模式,发送方和接收方必须相互知晓。若此条件不可接受,应使用 Azure Service Bus。
2. 弹性任务执行
借助 .NET Core 库 Polly 可轻松实现弹性通信和弹性任务执行,它由 .NET Foundation 维护,可通过 Polly NuGet 包获取。
在 Polly 中,需定义策略并在该策略上下文中执行任务,示例代码如下:
var myPolicy = Policy
.Handle<HttpRequestException>()
.Or<OperationCanceledException>()
.Retry(3);
myPolicy.Execute(()=>{
//your code here
});
每个策略的第
超级会员免费看
订阅专栏 解锁全文
453

被折叠的 条评论
为什么被折叠?



