azure - 对 Azure Redis 连接限制(最多 X 个连接)感到困惑

标签 azure signalr azure-redis-cache

我正在考虑在 Azure 中托管的 .NET 中构建一些 signalR 应用程序(自托管工作线程)。

我想使用 Azure Redis 进行扩展并设置背板,但是当我设置新的 Redis 缓存时,我对“最多 X 个连接”的实际含义感到困惑。

例如,“CO 基本 250MB 缓存”具有“最多 256 个连接”,“C1 标准 1GB 缓存”具有“最多 1,000 个连接”

为了确认,我可以使用“最多 256 个连接”来表示我可以(理论上)最多有 256 个工作线程同时推送 SignalR 消息...或者这是否意味着连接总数(用户)从我的网站连接到我的 SignalR 并反过来在 Redis 缓存中推送消息?

显然,如果这意味着 256 个工作人员,那就没问题 - 但如果这意味着来 self 的网站的不同连接总数,那就是一个交易破坏者

谢谢,如果这是一个愚蠢的问题,我们深表歉意!

最佳答案

从 SignalR 背板的角度来看,SignalR Websocket 连接与 Redis 缓存服务器的连接数量无关。

用户的 SignalR 连接与 SignalR Hub 服务器相连,在横向扩展时,SignalR Hub 服务器又充当 Redis 客户端。 signalr 中的 Redis 客户端使用标准 ConnectionMultiplexer 进行连接,该连接在内部处理与 Redis 的连接。指导意见是在整个应用程序中使用单个多路复用器,或者使用最少的数量。

Redis 客户端用于发送/接收消息,而不是为每个操作创建/访问 key ,因此打开单个 channel 并在该单个 channel 上交换所有消息是有意义的。

我不确定该连接复用器如何管理 Redis 连接,但我们确实使用 Redis 背板在 Azure 上为我们的应用程序进行 SignalR 横向扩展。

我们对应用程序进行了负载测试,大约 20 万个始终处于事件状态的 Signalr Websocket 连接扩展到 10 多个服务器,Azure Redis 缓存连接计数平均徘徊在 50 个左右,几乎从未超过 60 个。 .

我认为可以肯定地说,Azure Redis 缓存的连接限制并不是 SignalR 的限制因素,除非扩展到数百台服务器。

关于azure - 对 Azure Redis 连接限制(最多 X 个连接)感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42584460/

相关文章:

azure - 访问 Azure 指标

ios - 如何在Azure托管代理上使用特定的iOS版本?

database - Visual Studio 连接到 Azure SQL 数据库

azure - 使用 Azure Redis 缓存配置 Gitlab 时出现错误

azure - 如何使用 Azure Cache for Redis 中的 RedisTimeSeries 模块?

Azure AD B2C API 连接器用户属性

c# - SignalR 自定义连接 ID

javascript - 在单个页面中管理多个 SignalR 连接

Azure Redis 缓存慢日志不记录任何内容

signalr - 如何使用SignalR的往返状态?