Service Bus Brokered VS Relayed Messaging

时间:2013-04-08 20:19:37

标签: azure servicebus azureservicebus azure-servicebusrelay

我有一个令我困惑的问题是,服务总线类型,代理消息传递和中继消息传递之间有什么区别?我不是从开发的角度来看它,但我想更多地了解它们之间的概念和差异。

谢谢。

3 个答案:

答案 0 :(得分:14)

Service Bus Relay和Service Bus Brokered Messaging都是开发分布式和混合应用程序的机制。但是,它们针对不同的开发和访问模式。

  • 服务总线(SB)继电器提供简单的&安全的方法来执行服务远程处理,即,它使您能够将托管在私有云上的服务安全地暴露给外部客户端。与服务远程处理方案一样,客户端显式调用“中继”服务公开的方法。 SB Relay的主要优点是可以公开服务,而无需更改防火墙设置或对公司网络基础架构进行任何侵入式更改。

  • 另一方面,SB Brokered Messaging提供了一个持久的消息传递平台,其中包含队列,主题和订阅等组件。这些可用于实现复杂模式,例如应用程序的不同部分之间的发布 - 订阅和时间解耦。由于代理消息传递基础结构可以可靠地存储消息,因此发送者和接收者不必同时在线,或者不必以相同的速度处理消息。

因此,中继消息传递适用于您希望向外部客户端公开服务的情况。客户端与“Relayed”服务的交互方式与它们在本地网络上的方式相同,只是它们通过SB Relay端点访问它。由于这是服务远程处理方案,因此响应会立即受到网络延迟的影响。但是,如果由于某种原因,此时服务不可用,则客户端的请求将始终失败。

在代理消息传递的情况下,因为发送&接收操作被解耦,发送者可以继续发送可靠地存储在服务上的消息,而不管接收者是否在线。但是,这种弹性的权衡是,请求将根据接收者检索和处理消息的能力进行处理。

答案 1 :(得分:2)

来自Azure的网站:

<强>继电器

  

Service Bus Relay服务使您可以构建混合应用程序   在Windows Azure数据中心和您自己的内部部署中运行   企业环境。服务总线中继便于实现此目的   使您能够安全地公开Windows Communication Foundation(WCF)   驻留在公司企业网络中的服务   公共云,无需打开防火墙连接或   要求对公司网络基础设施进行侵入式更改。

Relay还为您处理负载均衡(您可以让多个应用程序在大多数绑定的同一端点上侦听)。

Brokered Messaging

  

第二个消息传递解决方案,最新发布的新版本   Service Bus,支持“代理”消息传递功能。这些可以   被认为是异步或分离的消息传递功能   支持发布 - 订阅,时间解耦和负载平衡   使用Service Bus消息传递基础结构的方案。解耦   沟通有很多好处;例如,客户端和服务器   可以根据需要连接并在异步中执行操作   方式。

Brokered messaging包括允许您异步发送/接收消息的队列和主题/订阅。

主要区别在于,对于中继,您可以在端点上侦听应用程序。发送消息时,应用程序会在收到消息时处理该消息。对于代理消息传递,消息在客户端接收时存储,并且可以随时处理。

答案 2 :(得分:2)

我认为主要区别在于连接的同步与异步性质。

如果中继主要是以防火墙友好的方式向公共世界公开Web服务(甚至在防火墙,NAT设备等之后),则消息传递更多地是以异步方式交换队列和主题上的消息。 (将其视为具有云支持的下一版MSMQ :))

一切都取决于场景,但如果您正在寻找 - 路由(pub / sub) - 松耦合发送器&amp;接收器 - 负载均衡 那你绝对应该去发信息。

如果您想让外面的世界轻松获得您的服务,中继服务就是您的朋友。