A simple redis message queue for Java.
一个易于使用的基于redis的消息队列, 不支持集群消费.
-
添加依赖
<dependency> <groupId>com.github.lkqm</groupId> <artifactId>disque4j</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency>
-
生产者
MessageProducers.publish("order", "add", "Add one order.");
-
消费者
@RedisListener(topic="order", tags="add") public class OrderConsumer implements MessageListener { @Override public void onMessage(Message message) { System.out.println("receive message: " + message); } }
-
配置
disque.enabled=true # 开启, 默认: false disque.key-prefix=disque # 设置key前置, 默认: disque disque.pool.core-size=1 # 核心线程数量, 默认: 1 disque.pool.max-size=8 # 最大线程数量, 默认: 8 disque.topics.YOUR_TOPIC.pool.core-size=1 # 配置指定队列的线程池 disque.topics.YOUR_TOPIC.pool.max-size=8 # 配置指定队列的线程池 disque.topics.YOUR_TOPIC.pool.keep-alive= # 配置指定队列的线程池 disque.topics.YOUR_TOPIC.pool.queue-capacity= # 配置指定队列的线程池
请确保redis连接超时 > 5秒(bpop阻塞时间), 否则会出现消息丢失, 默认redis连接不会超时。