redis - 网络问题和 Redis PubSub
问题描述
我在 Windows 上使用 ServiceStack 5.0.2 和 Redis 3.2.100。我有几个具有活动 Pub/Subscription 的节点和每秒几个 Pub。
我注意到,如果 Redis 服务在没有物理网络连接的情况下重新启动(因此其中一个客户端无法连接到 Redis 服务),则该客户端会在网络恢复后停止接收任何消息。我们称它为“僵尸订阅者”:它认为它仍在运行,但从未真正收到消息:客户端认为它有一个连接,服务器上的相同连接已关闭。
问题是 RedisSubscription.SubscribeToChannels 中没有抛出异常,所以我无法检测到问题以便重新订阅。
我也分析了 RedisPubSubServer ,我想我发现了一个问题。在所描述的情况下,RedisPubSubServer 尝试重新启动(发送停止命令CTRL),但“僵尸订阅者”没有收到它并且没有重新订阅。
解决方案
推荐阅读
- python - 从python shell调用存储在mongodb中system.js集合中的函数
- c# - C# ASP.NET MVC 5 ViewModel 问题
- c# - PDF剪切矩形及其包含并添加到新的PDF文件IText
- javascript - 单击时如何获取表格相应单元格的值
- python - 使用数组匹配多列
- angular - 来自猫鼬模式的角度接口
- node.js - 无法从亚马逊获取访问令牌
- tcp - 在 Tokio 中使用 TcpStream 读取分段的 TCP 数据包
- wordpress - 在多语言网站中切换页脚
- javascript - 在 JavaScript 中解析非标准 JSON