首页 文章

Azure Redis缓存自动清除PubSub通道

提问于
浏览
0

我在Azure中设置了四种不同的Redis缓存订阅 . 我还有四个App Services,每个都使用其中一个Redis Cache订阅 . 四个App Services / Redis缓存订阅适用于相同的代码库,但环境不同 . 我使用测试,舞台,东海岸和西海岸环境 .

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

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

对于测试,舞台和西海岸环境,四个PubSub Channels 可以创建并且工作得很好 . 我可以通过Azure连接到Redis控制台并运行PUBSUB CHANNELS命令并查看我通过代码创建的四个通道 .

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

出于某种原因,Redis正在关闭我的三个PubSub Channels . 同样,这只发生在我的四个Redis订阅/应用服务之一中 . 其他三个完美无缺 .

我已经确保我的四个Redis订阅和四个App Services的所有设置都是相同的 . 我已经尝试过几次重启和重新部署,我只是无法获得现场东海岸Redis订阅以保持所有四个PubSub Channels 开放 .

有没有人经历过这样的事情?有没有人看过Azure Redis Cache随机关闭他们的PubSub Channels ?

1 回答

  • 0

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

相关问题