Azure Web PubSub 和事件网格/事件中心之间有啥区别?
Posted
技术标签:
【中文标题】Azure Web PubSub 和事件网格/事件中心之间有啥区别?【英文标题】:What are the differences between Azure Web PubSub and Event Grid/Event Hub?Azure Web PubSub 和事件网格/事件中心之间有什么区别? 【发布时间】:2021-12-31 20:34:48 【问题描述】:在我看来,Azure Web PubSub 是使用 Web 套接字而不是 HTTP 的事件网格和事件中心的组合。但是,我不能 100% 确定,也找不到任何可以直接比较这 3 种服务的文章。
【问题讨论】:
不太确定,但我认为 Azure Web Pub/Sub 是基于 WebSockets 并允许关于发生的事件的实时通信(推送模型))。事件网格更像是 MQTT,就像消费者定期检查任何新的可用事件(拉模型)。 如果发布的答案有帮助,您可以通过单击复选标记将其标记为答案。这样做可以帮助其他社区成员。 @SauravDas-MT 感谢您在下面的回答。我对你的帖子有一个后续问题。 【参考方案1】:为了回答你的问题,让我一个接一个地解释所有三个服务。
Azure 事件网格
Azure 事件网格是一个完整的事件路由服务,在 Azure Service Fabric 之上主动运行。它从各种服务(如 Azure 存储 Blob)向不同的处理程序(如 Azure Functions)发出事件。它是事件驱动的发布-订阅模型(反应式编程)。
Azure 事件网格可以连接到您创建的任何应用程序,并且可以将应用程序生成的事件拉取并发布到其他不同的目标。
Azure 事件中心
Azure 事件中心是一种数据摄取服务,它可以流式传输来自任何来源的大量消息,以立即响应业务挑战。它每秒从任何来源流式传输数百万个事件,以构建动态数据管道并立即响应业务挑战。将其视为多源大数据流管道(遥测数据)。
它们之间的区别在于事件中心仅接受用于提取数据的端点,并且它们不提供将数据发送回发布者的机制。另一方面,事件网格发送 HTTP 请求以通知发布者中发生的事件。
Azure 网络发布订阅
PubSub 是发布订阅的缩写形式。如果您以前曾经使用过 Azure SignalR 或 WebSockets 在发布者和订阅者之间发送内容,那么 Web PubSub 也可以这样做。因此,Azure Web PubSub 是一个用于处理与您的应用程序的实时通信的托管服务。
当您使用 WebSockets 时,您在客户端和应用服务器之间有这些长时间运行的连接,但是在处理长时间运行的请求时很难扩展它们。这个问题是通过 Web PubSub 服务解决的,它位于您的客户端和应用服务器的中间。现在您的客户端可以与此服务器通信,并且您可以在 Azure Web PubSub 服务和应用服务器之间执行 http。 因此,您的应用服务器仅保留 http,但所有硬 WebSocket 逻辑都由服务为您处理。
Azure Web PubSub 服务构建在与 SignalR 相同的核心基础平台上,但两者之间的主要区别在于 Azure Web PubSub 纯粹是无服务器的,在 SingnalR 中您需要使用 SignalR 客户端,但使用 Web PubSub 您可以使用任何客户端和任何语言。
最后,我建议您阅读这些Choose between Azure messaging services 和Azure Web PubSub 文档以了解更多信息。
【讨论】:
不能像 Web PubSub 一样使用事件网格将事件发送回客户端吗?在我看来,Event Grid 和 Web PubSub 都在做 pub-sub 模式并实时传递事件。如果仅用于遥测消化,事件中心与 Application Insights 有何不同?以上是关于Azure Web PubSub 和事件网格/事件中心之间有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章