Microsoft Azure 上的实时应用程序

Posted

技术标签:

【中文标题】Microsoft Azure 上的实时应用程序【英文标题】:Real time application on Microsoft Azure 【发布时间】:2012-01-19 04:14:36 【问题描述】:

我正在开发一个实时应用程序并在 Azure 上构建它。

这个想法是每个用户都报告自己的一些事情,所有其他用户都应该立即看到它(他们每隔几秒钟左右轮询一次服务以获取新信息)

我现在的方法是为 WCF REST 服务使用 Web 角色,我在没有 Worker 角色的情况下对数据库 (SQL Azure) 进行所有写入,以便立即写入。

我开始认为,也许使用 Worker Role 和 Queue 进行写入可能更具可扩展性,但可能会干扰服务的实时性。 (worker 角色可能不会立即从队列中获取任务)

这是真的吗?我该如何处理这个问题?

谢谢

【问题讨论】:

【参考方案1】:

您可以看看 SignalR,它不支持开箱即用的农场场景,但应该能够使用任一内部端点调用来更新每个实例,使用 Azure 服务总线,或使用 AppFabric 缓存。这样,您将获得 Push 场景而不是 Pull 场景,因此您不必轮询端点以获取潜在更新。

【讨论】:

【参考方案2】:

虽然队列确实会增加一点延迟,但您可以扩展 Worker Role 实例的数量来处理大量消息。

您还可以通过一次接收多条消息来优化队列阅读。由于单个队列的可扩展性目标为 500 TPS,因此您可以在读取时远远超过每秒 500 条消息。

您可能会查看缓存以缓冲最新的用户更新,因此当轮询发生时,您的服务会从缓存而不是 SQL Azure 中读取。随着信息量的增加,这可能会有所帮助。

【讨论】:

以上是关于Microsoft Azure 上的实时应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Google FCM 和 Microsoft azure 作为托管服务器从 chrome for android 上的 PWA 发送推送通知

将 Azure 托管的机器人添加到 Microsoft Teams 开发门户

在 Azure 上的资源组之间移动后删除 microsoft.web/certificates

Microsoft Azure 网站上的地理服务器

Microsoft Windows 7 Pro 上的实时应用程序

Microsoft 标识导致 Azure Web 应用程序崩溃