我正在使用Redisson分布式执行器服务。任务类A被设计用来处理由队列ID标识的给定队列。有多个这样的队列。我需要确保在集群中的任何时候,在同一队列上工作的任务类A的实例不超过一个。
Task class A instance1 working on queue1
Task class A instance2 working on queue2
不允许:
Task class A instance1 working on queue1
Task class A instance2 working on queue1
有大量这样的队列,并且它们是动态变化的。因此,任务实例的预分配不是
我有一个主redis集群,3个(node1,node2,node3)。我正在使用客户端进行跨虚拟机的分布式锁定。现在,根据Redission实现的算法,它试图获取大多数节点(在我的例子中是2个节点)的锁,并使用轮询算法进行负载均衡。现在,如果我们阻塞node2或节点3的网络,这种锁定机制可以很好地工作。
Exception in thread "main" org.redisson.client.RedisNodeNotFoundException: No node for slot: 15087 and command (EVAL)
at org.redisson.conne
我正在尝试创建一个基础设施,不同的机器通过Redisson获得共享锁。一旦获得锁,就会完成一些异步任务,最后,当我完成任务时,我将通过当前正在运行的线程释放Redisson锁--但我收到以下错误
java.lang.IllegalMonitorStateException: attempt to unlock lock, not locked by current thread by node id: xxxxx thread-id: 57
因此,我理解这一点的意义,但由于我想执行异步工作,所以不能使用获取线程来执行发布。
我不应该用Redisson锁吗?对于这样的异步工作,什么是最好的匹配?
我们使用redisson的分布式锁来避免分布式环境中的并发问题,但是在获取锁的同时,我也想保存一些元数据,比如userId (随机UUID),以知道谁获得了锁,,但意外情况是,我不能将userId作为密钥的一部分。
因此,如果我们可以在redis分布式锁中存储一些带有锁键的自定义元数据,或者如果有任何类似的结果,请帮助我。
RLock lock = redisson.getFairLock("anyLock");//if we can store some custom data with the lock key.
lock.lock();
try {
...
} ca
我已经在Java应用程序中创建了singleton redisson实例,用于与redis服务器通信。现在使用这个redisson实例,我正在获取一个锁,在完成一些任务后,我将释放它。但是在调用unlock方法后,我仍然看到redis拥有锁,而其他线程无法获得锁。下面是我正在使用的代码片段: class RedisInstance
{
static RedisInstance ins;
private RedisInstance()
{
ins = new RedisInstance();
}
public static RedisInst
当我尝试使用Redisson连接Redis Server时,它有时会显示内存泄漏错误。我怎么才能解决这个问题。重现代码在下面。
预期行为
它不应该有内存泄漏。
实际行为
[main] ERROR io.netty.util.ResourceLeakDetector - LEAK: HashedWheelTimer.release() was not called before it's garbage-collected. See http://netty.io/wiki/reference-counted-objects.html for more information.
Rec
我刚刚下载了Redisson,但我不断得到以下异常
Exception in thread "main" java.lang.NoSuchFieldError: WRITE_BIGDECIMAL_AS_PLAIN
at org.redisson.codec.JsonJacksonCodec.<init>(JsonJacksonCodec.java:48)
at org.redisson.Config.<init>(Config.java:44)
at org.redisson.Redisson.create(Redisson.ja
val redisson = Redisson.create(config)
val redissonRx = redisson.rxJava()
redisson.getLocalCachedMap<String, User>("users", LocalCachedMapOptions.defaults()) // works
redissonRx.getLocalCachedMap<String, User>("users", LocalCachedMapOptions.defaults()) // there is no such