如何让一个订阅者在 Radisson(redis-java 客户端)中处理消息(考虑有多个)

sha*_*ika 7 java publish-subscribe redis

在我的项目中,我使用 radisson ( https://github.com/redisson/redisson )创建了一个简单的发布/订阅主题。发布者会发布一些消息,并且会有多个订阅者在不同的机器上运行。当我发布时,所有订阅者都收到消息。但我希望订阅者中的任何人都可以处理该消息,即如果有人处理该消息,其他人应该直接忽略它。雷迪森可以吗?

听众:

RTopic topic = redisson.getTopic("topic2");
topic.addListener(Person.class, new MessageListener<Person>() {
    @Override
    public void onMessage(CharSequence charSequence, Person person) {
        System.out.println("PERSON : "+person.toString());
    }
});
Run Code Online (Sandbox Code Playgroud)

出版商:

 Person person = new Person("anyName","female");
 RedissonClient redisson = Redisson.create();
 RTopic topic = redisson.getTopic("topic2");
 topic.publish(person);
Run Code Online (Sandbox Code Playgroud)

是否可以放锁或其他东西,以便只有一个订阅者收听它。任何其他工具是否支持这种行为。

Raj*_*eev 0

Pub-Sub 并不是为此而设计的。了解 ActiveMQ/RabbitMQ 或 SQS 中的队列,这将满足您的场景