首页 > 编程语言 > 详细

SpringBoot与工作队列的两种分发方式

时间:2019-09-12 17:10:42      阅读:101      评论:0      收藏:0      [点我收藏+]

工作队列轮循分发

创建队列配置文件类
@Configuration
public class RabbitConfig {

//多个队列名称
private final static String QUEUE_NAME = "test_work_queue";
private final static String QUEUE_NAME1 = "test_work_queue1";

@Bean
public Queue queue() {
return new Queue(RabbitConfig.QUEUE_NAME);
}
@Bean
public Queue queue1() {
return new Queue(RabbitConfig.QUEUE_NAME1);
}
}

1.生产者和简单队列的一样

2.消费者1
@RabbitListener(queues = "test_work_queue")
public class Received1 {

@RabbitHandler
public void process(String hello) {
System.out.println("获取消息1:" + hello);
// 休眠
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
3.消费者2和消费者1一样
@RabbitListener(queues = "test_work_queue")
public class Received2 {

@RabbitHandler
public void process(String hello) {
System.out.println("获取消息2:" + hello);
// 休眠
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

工作队列公平分发


1.application.properties配置文件
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=123
spring.rabbitmq.virtual-host=member
#公平分发:在发送确认消息之前,消费队列只会发一条消息给消费者
spring.rabbitmq.listener.simple.prefetch=1



生产者和消费者和轮循分发的代码一样

 

SpringBoot与工作队列的两种分发方式

原文:https://www.cnblogs.com/lazhaoqian/p/11394777.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!