Azure SignalR Service并发连接定义及计费相关技术问询
关于Azure SignalR Service并发连接数的明确说明
我来帮你彻底理清这个疑问,毕竟之前在项目里也纠结过这块的计费逻辑:
首先,Azure SignalR Service对并发连接的定义其实很直白——所有与SignalR Service保持活跃状态的TCP连接,不管它是处于空闲、等待消息还是正在收发消息的状态,只要连接没断开,就会被计入并发连接数,完全不是你期望的“仅统计正在主动发送消息的连接”。
接下来针对你的具体问题逐一解释:
- 服务器应用与Azure SignalR Service的连接:这类连接属于“上游连接”,是会被计入并发连接数的。如果你的ASP.NET Core MVC应用是单实例部署,通常会和SignalR Service建立若干个(一般是2-4个,取决于配置)持久连接;如果是多实例,每个实例都会建立对应的上游连接,这些都会被累加进总并发数。
- 客户端(浏览器)的连接:这里要纠正一个常见误解——当使用Azure SignalR Service时,客户端(浏览器)最终是直接与Azure SignalR Service建立连接的(而不是一直和你的Web应用保持连接),这些客户端连接属于“下游连接”,同样会被计入并发连接数。
举个实际的例子:假设你的Web应用是单实例,和SignalR Service建立了3个上游连接,同时有150个浏览器客户端正连接着SignalR Service,那此时你的总并发连接数就是153个,所有这些连接不管有没有在实时收发消息,只要保持活跃就会被计费。
最后再提炼下核心要点:
- 并发连接数统计的是所有已建立且未断开的活跃TCP连接,覆盖上游服务器连接和下游客户端连接
- 连接的状态(空闲、等待消息、正在收发消息)不影响计数,只要连接存活就会被算入
- 并非仅统计正在主动发送消息的连接,空闲的持久连接同样会被计入计费统计
内容的提问来源于stack exchange,提问作者Shawn de Wet
相关产品推荐
相关产品推荐

