redis-发布订阅-应用场景

利用redis发布订阅pub/sub的时候遇到了一个问题
需求
例如发布一条咨询,然后设置1小时过期
实现
利用redis发布订阅和expire key事件来做
但是发现如果web服务器是集群的话就会出现,多台服务器同时对订阅的模式/频道做出相应
那么一条数据会被重复更新
这时候应该如何控制?
或者想问问,java里的定时任务,定时跑的时候,不会多台服务器也会一起跑,导致结果重复吗?
求大神分享经验
#Java工程师#
全部评论
此贴终结,利用zookeeper的分布式锁的特性,充当注册中心来实现
1 回复
分享
发布于 2018-01-15 23:00
这个...对哦,多个redis-cli全部都订阅了,然后全部都收到了,然后都处理了😂,楼主我也想知道怎么处理
点赞 回复
分享
发布于 2018-01-13 23:53
联易融
校招火热招聘中
官网直投
可以用一台专门的服务器处理关于发布订阅的业务
点赞 回复
分享
发布于 2018-01-13 23:54
1web服务器集群一般都是业务集群 定时任务一般单做服务器 即使做成集群也不会做成任务重合的,分工是明确的2按照你的思路感觉集群没有什么意义了啊 nginx分发请求后只有一个服务器做redis订阅处理 其他就不管了啊
点赞 回复
分享
发布于 2018-01-14 10:53
以前实习做业务,集群的问题是用一张表来解决。。表字段是任务识别标识(唯一),服务器ip(默认0.0.0.0),更新时间。执行定时任务时会对ip字段进行抢占修改,抢占成功则执行下去,失败则退出。执行完毕后恢复默认ip。这个方案其实不太好,万一执行过程中那台服务器挂了就gg了。。之后也没怎么思考这个问题,有机会交流一下
点赞 回复
分享
发布于 2018-01-14 11:42

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务