网站首页> 文章专栏> RabbitMQ-客户端-work模型
Java客户端-work模型
多个消费者绑定一个队列,共同消费队列中的消息
1,在控制台创建work.queue队列
2,创建两个work.queue队列消费者
@Slf4j
@Component
public class SpringRabbitListener {
@RabbitListener(queues = "simple.queue")
public void listenSimpleQueueMessage(String msg){
System.out.println("接收到消息:" + msg);
}
@RabbitListener(queues = "work.queue")
public void listenSimpleQueueMessage1(String msg){
System.out.println("消费者1 收到了 work.queue:" + msg);
}
@RabbitListener(queues = "work.queue")
public void listenSimpleQueueMessage2(String msg){
System.out.println("消费者2 收到了 work.queue:" + msg);
}
}
3,创建生产者
@Test void testWorkQueue() throws InterruptedException { String queuename = "work.queue"; for (int i = 50; i > 0; i--) { System.out.println(i); String message = "hell,work,messgae_" + i; rabbitTemplate.convertAndSend(queuename,message); Thread.sleep(20); } }
因此我们需要修改application.yml,设置preFetch值为1,确保同一时刻最多投递给消费者1条消息:
在消费者端配置:
spring: rabbitmq: host: 175.11.1.11 #主机名 username: hamll #创建的用户 password: hamll #用户的密码 port: 5672 virtual-host: /hamll listener: simple: prefetch: 1 #每次只能获取一条消息,处理完成才能获取下一条消息
2024-05-09 22:08:06 回复