什么是 Azure SignalR 服务?

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

 

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

 

Azure SignalR Service 的用途是什么?

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

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

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

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

 

问题描述

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

回答问题

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

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

 

注:每个层的 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​

 

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!