jetcache icon indicating copy to clipboard operation
jetcache copied to clipboard

关于Redis PubSub可用性问题

Open dylan-tao opened this issue 1 year ago • 2 comments

Redis的Pub Sub在瞬时启动、停机、重启时订阅的消息均会丢失,且在消费失败时无法重复获取消息,会导致缓存不一致,这块有什么策略或兜底机制不?

dylan-tao avatar Sep 09 '22 09:09 dylan-tao

目前Redisson也没有做可用性完善补充

dylan-tao avatar Sep 09 '22 09:09 dylan-tao

你说的启动、停机指的是redis server吧,一般来说这样不能无脑无限重试,要保证消息的发送绝对成功是非常困难的。消费应该是不会失败的,因为没有IO。

如果内置的不满足需求,BroadcastManager可以自己更换的,比如换成使用专门的消息队列,即便如此,也很难保证强一致,一个简单的办法是把本地缓存的超时时间弄短点。

redisson是另一个同学贡献的,我其实也不是很熟悉,如果有具体的问题可以提PR。

areyouok avatar Sep 09 '22 09:09 areyouok

你说的启动、停机指的是redis server吧,一般来说这样不能无脑无限重试,要保证消息的发送绝对成功是非常困难的。消费应该是不会失败的,因为没有IO。

如果内置的不满足需求,BroadcastManager可以自己更换的,比如换成使用专门的消息队列,即便如此,也很难保证强一致,一个简单的办法是把本地缓存的超时时间弄短点。

redisson是另一个同学贡献的,我其实也不是很熟悉,如果有具体的问题可以提PR。

好的,我可能要2.7.x版本扩展堆外缓存,涉及到序列化可能会导致失败,缓存不一致问题。

dylan-tao avatar Oct 08 '22 16:10 dylan-tao