我对分布式和 redis 了解有限,所以还清大家帮忙看看。
服务启动时,每个实例尝试对 key 加锁,加锁成功的成为 leader 。加锁办法为 lua 脚本。有更好的加锁办法,请推荐。 leader 实例退出时,解锁,pub 消息通知其它实例,其它实例开始尝试加锁。 锁有超时时间,每次超时时间过半,leader 给 key 续时。如果 leader 非正常原因挂掉,key 会超时。 其它实例间隔随机时间尝试加锁, 或者收到 leader 退出消息时也尝试加锁,加锁成功的成为 leader 。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.