Azure Redis 缓存自动清除 PubSub 通道

Azure Redis Cache automatically clearing PubSub channels

我在 Azure 中设置了四种不同的 Redis 缓存订阅。我还有四个应用服务,每个应用服务都使用其中一个 Redis 缓存订阅。四个 App Services/Redis Cache 订阅是针对相同的代码库,但不同的环境。我使用测试、分期、直播东海岸和直播西海岸环境。

每个应用服务中的代码运行ning完全相同

我有一个 ASP.NET Core Web API 项目使用 StackExchange.Redis。在我的 Web API 项目中,我连接到在 Azure 中设置的与应用服务环境相对应的 Redis 订阅。作为我的 Web API 项目启动过程的一部分,我打开了四个 PubSub 频道。

对于测试、暂存和实时西海岸环境,创建了四个 PubSub 频道并且运行良好。我可以通过 Azure 和 运行 PUBSUB CHANNELS 命令连接到 Redis 控制台,并查看我通过代码创建的四个频道。

出于某种原因,在 live-east coast Redis 订阅中,只有一个 PubSub 频道出现。我还可以验证实际上只有一个通道是打开的。我调用 Web API 的前端具有将消息发布到 Redis PubSub 的逻辑。这些不适用于 live-east coast App Service。如果我重新启动 App Service 或重新启动 Redis,那么我有时可以让所有四个 PubSub 频道都显示出来并正常工作。每当我将新代码部署到我的 live-east coast App Service 时,服务重新启动后,只会创建一个频道。

出于某种原因,Redis 正在关闭我的三个 PubSub 频道。同样,这只发生在我的四个 Redis subscriptions/App 服务之一中。其他三个工作完美。

我已确保我的四个 Redis 订阅和四个应用服务的所有设置都相同。我已经尝试过多次重启和重新部署,但我就是无法获得实时东海岸 Redis 订阅来保持所有四个 PubSub 频道打开。

有人遇到过这样的事情吗?有没有人看到 Azure Redis 缓存随机关闭他们的 PubSub 频道?

订阅该频道的客户端可能已死亡或从未成功连接。一旦订阅者数量达到零,PUBSUB channels 将不再显示该频道。尝试 运行ning PUBSUB numsub <channel_name> 验证是否有订阅者。另外 运行 CLIENT list 查看有多少客户订阅(类似于 sub=1)。