jetcache
jetcache copied to clipboard
关于Redis PubSub可用性问题
Redis的Pub Sub在瞬时启动、停机、重启时订阅的消息均会丢失,且在消费失败时无法重复获取消息,会导致缓存不一致,这块有什么策略或兜底机制不?
目前Redisson也没有做可用性完善补充
你说的启动、停机指的是redis server吧,一般来说这样不能无脑无限重试,要保证消息的发送绝对成功是非常困难的。消费应该是不会失败的,因为没有IO。
如果内置的不满足需求,BroadcastManager可以自己更换的,比如换成使用专门的消息队列,即便如此,也很难保证强一致,一个简单的办法是把本地缓存的超时时间弄短点。
redisson是另一个同学贡献的,我其实也不是很熟悉,如果有具体的问题可以提PR。
你说的启动、停机指的是redis server吧,一般来说这样不能无脑无限重试,要保证消息的发送绝对成功是非常困难的。消费应该是不会失败的,因为没有IO。
如果内置的不满足需求,BroadcastManager可以自己更换的,比如换成使用专门的消息队列,即便如此,也很难保证强一致,一个简单的办法是把本地缓存的超时时间弄短点。
redisson是另一个同学贡献的,我其实也不是很熟悉,如果有具体的问题可以提PR。
好的,我可能要2.7.x版本扩展堆外缓存,涉及到序列化可能会导致失败,缓存不一致问题。