谢谢。
服务总线中继和服务总线经纪消息都是用于开发分布式和混合应用程序的机制。但是,它们针对不同的开发和访问模式。
服务总线(SB)中继提供了一种简单且安全的方式来进行服务重定向,即它使您能够安全地将托管在私有云上的服务公开到外部客户端。与服务重定向场景相同,客户端显式调用“中继”服务公开的方法。 SB中继的主要优点是,无需更改防火墙设置或任何侵入性更改企业网络基础架构即可公开服务。
另一方面,SB经纪消息提供了一个持久的消息平台,其中包括队列、主题和订阅等组件。这些可以用于实现复杂的模式,如发布-订阅和应用程序不同部分之间的时间解耦。由于经纪消息基础结构可以可靠地存储消息,发送者和接收者不必同时在线,也不必以相同的速度处理消息。
因此,中继消息适用于您想要向外部客户端公开服务的场景。客户端以与本地网络上的情况相同的方式与“中继”服务交互,只是它们通过SB中继端点访问它。由于这是一个服务重定向场景,响应立即取决于网络延迟。但是,如果由于某种原因服务此时不可用,则客户端请求将始终失败。
在经纪消息的情况下,由于发送和接收操作是解耦的,因此发送方可以继续发送可靠存储在服务上的消息,而不管接收方是否在线。然而,这种韧性的权衡是请求将根据接收方检索和处理消息的能力进行处理。
来自Azure网站:
Relay
Service Bus Relay服务使您能够构建混合应用程序,这些应用程序运行在Windows Azure数据中心和您自己的本地企业环境中。 Service Bus中继通过让您安全地公开位于企业网络内部的Windows Communication Foundation(WCF)服务,从而使此过程得以实现,无需打开防火墙连接或要求对企业网络基础架构进行侵入性更改。
Relay还为您处理负载平衡(您可以有多个应用程序在同一终结点监听大多数绑定)。
Brokered Messaging
最新版本的Service Bus中的第二种消息传递解决方案提供了“经纪人”消息传递功能。这些可以被认为是支持使用Service Bus消息基础结构的发布/订阅,时间分离和负载平衡场景的异步或分离的消息特性。分离的通信具有许多优点;例如,客户端和服务器可以根据需要连接并以异步方式执行其操作。
经纪代理消息包括队列、主题/订阅,允许您异步发送/接收消息。
主要区别在于中继中,应用程序在终结点监听。当您发送消息时,应用程序在接收到消息时处理该消息。对于经纪代理消息,客户端接收消息时将其存储,并可以随时处理。