【Azure 应用服务】Azure SignalR 是否可以同时支持近十万人在线互动

简介: 【Azure 应用服务】Azure SignalR 是否可以同时支持近十万人在线互动

什么是 Azure SignalR 服务?

Azure SignalR Service 简化了通过 HTTP 向应用程序添加实时 Web 功能的过程。 这种实时功能允许服务将内容更新推送到连接的客户端,例如单页 Web 或移动应用程序。 因此,无需轮询服务器,或提交针对更新的新 HTTP 请求,即可更新客户端。

 

Azure SignalR Service 的用途是什么?

需要将数据从服务器实时推送到客户端的任何方案都可以使用 Azure SignalR 服务。

通常需要轮询服务器的传统实时功能也可以使用 Azure SignalR 服务。

Azure SignalR 服务已在各种行业中使用,适用于需要实时内容更新的任何应用类型。 下面是适合使用 Azure SignalR 服务的一些示例:

  • 高频率数据更新: 游戏、投票、轮询、竞拍。
  • 仪表板和监视: 公司仪表板、金融市场数据、即时销量更新、多玩家游戏排行榜和 IoT 监视。
  • 聊天: 实时聊天室、聊天机器人、在线客户支持、实时购物助手、信使、游戏内聊天,等等。
  • 地图实时定位: 物流跟踪、交货状态跟踪、运输状态更新、GPS 应用。
  • 实时定向广告: 个性化的实时推送广告和套餐、交互式广告。
  • 协作式应用: 共同著作、白板应用和团队会议软件。
  • 推送通知: 社交网络、电子邮件、游戏、行程通知。
  • 实时广播: 实时音频/视频广播、实时字幕、翻译、活动/新闻广播。
  • IoT 和互联设备: 实时 IoT 指标、远程控制、实时状态和位置跟踪。
  • 自动化: 基于上游事件的实时触发器。

 

问题描述

Azure SignlaR 是否支持十万人同时在线,需要开多少个连接单位?

回答问题

如果是近十万人,那么至少会有十万的客户端连接,所以根据SignalR的文档计算,需要有100个单元。

 

注:每个层的 Azure SignalR 服务的承诺最大阈值。 如果连接数进一步增加,将遭到连接限制。

 

性能因素

理论上,Azure SignalR 服务容量受计算资源的限制:CPU内存网络以下因素会影响入站和出站容量:

  • SKU 层(CPU/内存)
  • 连接数
  • 消息大小
  • 消息发送速率
  • 传输类型(WebSocket、Server-Sent-Event 或 Long-Polling)
  • 用例场景(路由开销)
  • 应用服务器和服务连接(服务器模式)

 

如何评估入站/出站容量或确定哪个层适合特定的用例?

假设应用服务器足够强大,不会成为性能瓶颈。 那么,请检查每个层的最大入站和出站带宽。

如:对于单元 100,最大出站带宽为 400 MB。 对于 20 KB 消息大小,最大出站连接数应为 400 MB * 5 / 20 KB = 100,000(十万)。

推算公式

#出站连接数计算
outboundConnections = outboundBandwidth * sendInterval / messageSize
#入站带宽
inboundBandwidth = inboundConnections * messageSize / sendInterval 
#出站带宽
outboundBandwidth = outboundConnections * messageSize / sendInterval

    sendInterval:发送一条消息花费的时间。 通常发送每条消息需要 1 秒,即,每秒发送一条消息。 间隔越短,在一个时间段内发送的消息越多。 例如,每条消息花费 0.5 秒意味着每秒可发送两条消息。

  • messageSize:单个消息的大小(平均值)。 小于 1,024 字节的小型消息的性能影响与 1,024 字节消息类似。
  • outboundConnections:接收消息的连接数。
  • inboundConnections:发送消息的连接数。

 

 

快速参考表:

回显 单元 1 单元 2 单元 5 单元 10 单元 20 单元 50 单元 100
连接 1,000 2,000 5,000 10,000 20,000 50,000 100,000
入站带宽 2 MBps 4 MBps 10 MBps 20 MBps 40 MBps 100 MBps 200 MBps
出站带宽 2 MBps 4 MBps 10 MBps 20 MBps 40 MBps 100 MBps 200 MBps

 

广播 单元 1 单元 2 单元 5 单元 10 单元 20 单元 50 单元 100
连接 1,000 2,000 5,000 10,000 20,000 50,000 100,000
入站带宽 4 KBps 4 KBps 4 KBps 4 KBps 4 KBps 4 KBps 4 KBps
出站带宽 4 MBps 8 MBps 20 MBps 40 MBps 80 MBps 200 MBps 400 MBps

 

 

参考资料

什么是 Azure SignalR 服务? https://docs.azure.cn/zh-cn/azure-signalr/signalr-overview

Azure SignalR 服务性能指南:https://docs.azure.cn/zh-cn/azure-signalr/signalr-concept-performance#quick-evaluation

相关文章
|
1月前
|
存储 测试技术 C#
Azure 云服务与 C# 集成浅谈
本文介绍了 Azure 云服务与 C# 的集成方法,涵盖基础概念、资源创建、SDK 使用、常见问题解决及单元测试等内容,通过代码示例详细说明了如何在 C# 中调用 Azure 服务,帮助开发者提高开发效率和代码质量。
38 8
|
4月前
|
JSON 数据可视化 数据格式
【Azure 环境】中国区Azure是否可以根据资源组的模板,生成一个可视化的架构图呢?
【Azure 环境】中国区Azure是否可以根据资源组的模板,生成一个可视化的架构图呢?
【Azure 环境】中国区Azure是否可以根据资源组的模板,生成一个可视化的架构图呢?
|
4月前
|
存储 C# 关系型数据库
“云端融合:WPF应用无缝对接Azure与AWS——从Blob存储到RDS数据库,全面解析跨平台云服务集成的最佳实践”
【8月更文挑战第31天】本文探讨了如何将Windows Presentation Foundation(WPF)应用与Microsoft Azure和Amazon Web Services(AWS)两大主流云平台无缝集成。通过具体示例代码展示了如何利用Azure Blob Storage存储非结构化数据、Azure Cosmos DB进行分布式数据库操作;同时介绍了如何借助Amazon S3实现大规模数据存储及通过Amazon RDS简化数据库管理。这不仅提升了WPF应用的可扩展性和可用性,还降低了基础设施成本。
96 0
|
4月前
|
开发工具 Android开发 开发者
【Azure 环境】Azure通知中心(Notification Hub)使用百度推送平台解说
【Azure 环境】Azure通知中心(Notification Hub)使用百度推送平台解说
|
4月前
|
存储 Android开发 iOS开发
【Azure 环境】台湾同胞:詢問大陸所有廠牌手機是否都可透過通知中心發送訊息
【Azure 环境】台湾同胞:詢問大陸所有廠牌手機是否都可透過通知中心發送訊息
|
存储 前端开发 程序员
一款基于.Net开发、开源、支持多平台云存储文件管理器
一款基于.Net开发、开源、支持多平台云存储文件管理器
72 0
|
消息中间件 并行计算 前端开发
「Azure云架构」Azure云不同的 架构风格
「Azure云架构」Azure云不同的 架构风格