使用服务总线与WCF与计算角色通信
本文关键字:计算 角色 通信 WCF 服务 总线 | 更新日期: 2023-09-27 18:26:35
给定一个简单的高级架构,例如具有web角色和计算角色的云服务,在什么情况下,我们会选择使用WCF作为web角色和计算机角色之间的通信方法,而不是服务总线。
有很多关于服务总线的文档和示例,但我想了解使用服务总线而不是WCF是否有任何平台优势。
如果调用是同步的、简短的,例如用于将数据获取到网站上的典型API调用,您会选择WCF而不是将消息和回复排入队列吗?
从逻辑上看,对于同步调用,WCF将提供最少的开销和延迟?
我不完全理解该平台是否提供了任何"聪明"的技巧来保持服务总线像WCF上的TCP连接一样快速运行(考虑到排队开销?),我想进一步了解这一点。
目前,如果我要为这种类型的调用选择一个实现,我会选择WCF,这可能有点天真。
只是为了清除,调用总是返回数据,它们不会长时间运行,或者启动并忘记。
谢谢!
我认为这取决于你具体想做什么。
服务总线通常更多地用于我所说的持续接触型交互。它应该更具表演性,但设置起来更复杂。它还具有双向通信功能。所以你可以从中获得很多额外的灵活性
我会把WCF换成更现代的WebApi。两者主要在提供内容方面解决了相同的核心问题。我认为它只是一个API,而不一定是一个消息传递和处理的平台。它们解决了两个不同的核心问题。
实际上,我会以不同的方式解决可能的问题,并使用Azure网站+WebJobs。这也是一样的事情。您可以将WebJob绑定到Azure队列、表或blob,并将消息放在该存储机制上,该作业会拾取并使用该存储机制执行某些操作。我认为网络角色不应该依赖于从工作中获得的内容。这项工作可能会在完成后到达AzureWeb网站上的SignalR Hub,这会将州推回到受影响的各方。
参考资料:网络作业:https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/
信号R:http://signalr.net/
Azure Web应用程序:https://azure.microsoft.com/en-us/services/app-service/web/