首页 > 解决方案 > Azure 事件网格与服务总线

问题描述

可以说事件网格只是服务总线的子集吗?我发现服务总线可以做事件网格可以做的所有事情,甚至更多。

标签: azureservicebusazure-eventgrid

解决方案


可以说事件网格只是服务总线的一个子集吗?

我不会试图将这些服务等同起来。它们都处理消息,但目的却截然不同。以及使用时的实现细节。

Azure 服务总线是一种企业消息传递产品。它涵盖了排队、发布/订阅,并具有多种基于计算的功能。接收是通过轮询(长轮询)完成的,通常,命名空间在单个组织内/由单个组织访问。

Azure 事件网格是一种通知服务。它的唯一目的是在事件生成器和订阅者之间启用发布/订阅。它没有排队语义。消息传递是基于推送的,与服务总线不同,只有少数基于计算的功能可用。该服务旨在允许多方之间的通信,并且可以作为发布者和/或订阅者跨越多个组织。

我发现服务总线可以做事件网格可以做的所有事情,甚至更多。

看起来可能是这样,但不完全是。Azure 服务总线和事件网格的限制和约束完全不同。例如,Azure 服务总线命名空间仅限于单个区域。事件网格是全局的,没有那种约束。服务总线需要有限数量的连接来轮询消息,而事件网格有大量可以推送消息的订阅者。自然,交付方法是不同的(轮询与推送)等等。

如果您需要在组织内发布/订阅,Service Bus 可以。一旦您需要推送有关组织外部某些事件的通知,这就是事件网格的亮点。两者也可以混合使用。来自事件网格的事件可以使用服务总线队列或主题进行排队以平衡工作负载。


推荐阅读