首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用redis-ha集群的Redlock

使用redis-ha集群的Redlock
EN

Stack Overflow用户
提问于 2020-06-27 04:53:06
回答 1查看 490关注 0票数 4

我一直在尝试通过helm chart stable/redis-ha针对kubernetes中安装的redis集群配置分布式RedLock。理想情况下,我希望集群有多个副本(主/辅助复制)。

我将遵循使用StackExchangeRedis和Redlock.Net进行设置的标准示例

代码语言:javascript
复制
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost:6379");

var multiplexers = new List<RedLockMultiplexer>
{
    redis
};

var redlockFactory = RedLockFactory.Create(multiplexers);

var resource = "the-thing-we-are-locking-on";
var expiry = TimeSpan.FromSeconds(30);

using (var redLock = await redlockFactory.CreateLockAsync(resource, expiry))
{
    //This is almost always false and the lock status is NoQuorum
    if (redLock.IsAcquired)
    {
        
    }
    
}

我看到的行为是,锁通常永远不会被获取,即使在单用户环境中也是如此。状态是NoQuorum,这表明RedLock .Net无法获得多数,但在我当前的测试集群中,我只有一个副本。我已经让它工作过几次了,但它通常是不稳定的,并且随机停止工作。

我已经找到了关于在clusters https://github.com/samcook/RedLock.net中锁定的部分

基本上,我的理解是有基本的支持,但您必须直接连接到集群中的所有副本。

以前有没有人针对集群成功配置过分布式锁定?

EN

回答 1

Stack Overflow用户

发布于 2020-07-05 00:57:52

我曾与Polly一起开发过他们的重复请求折叠器(https://github.com/Polly-Contrib/Polly.Contrib.DuplicateRequestCollapser)。我还使用redis (https://github.com/Polly-Contrib/Polly.Contrib.DuplicateRequestCollapser.RedisDistributedLock)创建了一个分布式锁版本。

我对redis集群不是很熟悉,但是如果涉及到某种分片,那么在继续操作之前,您需要获取集群的每个分片上的分布式锁。

这两个包都应该有nuget包。如果这有任何帮助,请让我知道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62602686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档