Azure Web PubSub 和事件网格/事件中心之间有什么区别?

TDa*_*Dao 5 c# azure azure-eventhub azure-eventgrid azure-web-pubsub

在我看来,Azure Web PubSub 是使用 Web 套接字而不是 HTTP 的事件网格和事件中心的组合。但是,我不是 100% 确定,也找不到任何对这 3 种服务进行直接比较的文章。

小智 8

为了回答您的问题,让我逐一解释所有这三项服务。

\n

Azure 事件网格

\n

Azure 事件网格是一个完整的事件路由服务,主动运行在 Azure Service Fabric 之上。它将来自各种服务(例如Azure 存储 Blob)的事件发送到不同的处理程序(例如Azure Functions)。它是事件驱动的发布-订阅模型(反应式编程)。

\n

Azure 事件网格可以连接到您创建的任何应用程序,并且可以提取应用程序生成的事件并将其发布到不同的其他目标。

\n

事件网格

\n

Azure 事件中心

\n

Azure 事件中心是一项数据引入服务,可从任何来源传输大量消息,以立即响应业务挑战。它每秒从任何来源流式传输数百万个事件,以构建动态数据管道并立即响应业务挑战。将其视为多源大数据流管道(遥测数据)。

\n

它们之间的区别在于,事件中心仅接受用于摄取数据的端点,并且它们不提供将数据发送回发布者的机制。另一方面,事件网格发送 HTTP 请求来通知发布者中发生的事件

\n

Azure Web 发布订阅

\n

PubSub 是发布订阅的缩写形式。如果您以前曾经使用过 Azure SignalR 或 WebSockets 在发布者和订阅者之间发送内容,那么 Web PubSub 也可以这样做。因此,Azure Web PubSub 是一项托管服务,用于处理与应用程序的实时通信

\n

当您使用 WebSockets 时,客户端和应用程序服务器之间有这些长时间运行的连接,但在处理长时间运行的请求时扩展它们会变得很棘手。这个问题可以通过 Web PubSub 服务解决,该服务位于客户端和应用程序服务器之间。现在,您的客户端可以与此服务器通信,并且您可以在 Azure Web PubSub 服务和应用程序服务器之间执行 http 操作。因此,您的应用程序服务器仍然仅使用 http,但所有硬 WebSocket 逻辑都由该服务为您处理

\n

Azure Web PubSub 服务与 SignalR 构建在相同的核心基础平台上,但两者之间的主要区别是Azure Web PubSub 纯粹是无服务器的,在 SignalR 中您需要使用 SignalR 客户端,但使用 Web PubSub 您可以使用任何客户端和任何语言

\n

网络发布订阅

\n

最后,我建议您阅读这些在 Azure 消息服务Azure Web PubSub之间进行选择的文档以获取更多信息。

\n

  • @TDao Event Grid 似乎适用于 Azure 服务之间的发布/订阅。将桌面或移动应用程序连接到事件网格有点困难..您可以将事件发送到网络挂钩,仅此而已。但它们不适用于桌面/移动应用程序等移动目标。Azure Web PubSub 旨在用于 Azure 外部客户端之间的发布/订阅。 (2认同)