在我看来,Azure Web PubSub 是使用 Web 套接字而不是 HTTP 的事件网格和事件中心的组合。但是,我不能 100% 确定,也找不到任何可以直接比较这 3 种服务的文章。
1 回答
为了回答你的问题,让我一个接一个地解释所有这三个服务。
Azure 事件网格
Azure 事件网格是在 Azure Service Fabric 之上主动运行的完整事件路由服务。它将来自各种服务(如Azure 存储 Blob )的事件发送到不同的处理程序(如Azure Functions)。它是事件驱动的发布-订阅模型(反应式编程)。
Azure 事件网格可以连接到您创建的任何应用程序,并且可以将应用程序生成的事件拉取并发布到其他不同的目标。
Azure 事件中心
Azure 事件中心是一种数据摄取服务,可从任何来源流式传输大量消息,以立即响应业务挑战。它每秒从任何来源流式传输数百万个事件,以构建动态数据管道并立即响应业务挑战。将其视为多源大数据流管道(遥测数据)。
它们之间的区别在于,事件中心仅接受用于摄取数据的端点,并且它们不提供将数据发送回发布者的机制。另一方面,事件网格发送 HTTP 请求以通知发布者中发生的事件。
Azure Web 发布订阅
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 您可以使用任何客户端和任何语言.
最后,我建议您阅读这些选择 Azure 消息服务和Azure Web PubSub文档以获取更多信息。