什么是 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