SpringBoot实现RabbitMQ简单队列(附带实例)
简单队列是 RabbitMQ 中最简单的工作队列模式,也叫点对点模式,即一个消息的生产者对应一个消费者,它包含一个生产者、一个消费者和一个队列。生产者向队列中发送消息,消费者从队列中获取消息并消费。
如下图所示,简单队列有 3 个角色:一个生产者、一个队列和一个消费者,这样理解起来比较简单:
	
图 1 简单队列模式
下面根据示例来演示简单队列的工作模式。
1) 创建生产者。生产者示例代码如下:
2) 创建消费者。消费者示例代码如下:
3) 验证测试。下面设计一个发送者和一个接收者,连续发送 10 条消息,验证消息发送与接收效果:
	
图 2 简单队列模式单元测试的运行结果
通过上面的程序输出日志可以看到,消费者已经收到了生产者发送的消息并进行处理。由于是一对一的工作模式,它的缺点很明显,在实际的应用中,业务处理比较耗费时间,简单队列模式很难在并发环境下支撑并发处理的业务量。
	
如下图所示,简单队列有 3 个角色:一个生产者、一个队列和一个消费者,这样理解起来比较简单:

图 1 简单队列模式
下面根据示例来演示简单队列的工作模式。
1) 创建生产者。生产者示例代码如下:
@Component
public class Producer {
    @Autowired
    private RabbitTemplate rabbitTemplate;
    public void produce() {
        String message = new Date() + "Beijing";
        System.out.println("生产者生产消息=====" + message);
        rabbitTemplate.convertAndSend("rabbitmq_queue", message);
    }
}
2) 创建消费者。消费者示例代码如下:
@Component
public class Consumer {
    @RabbitHandler
    @RabbitListener(queuesToDeclare = @Queue("rabbitmq_queue"))
    public void process(String message) {
        Thread.sleep(1000)
        System.out.println("消费者消费消息111=====" + message);
    }
}
上面的生产者、消费者的示例代码和前面的示例是一样的。3) 验证测试。下面设计一个发送者和一个接收者,连续发送 10 条消息,验证消息发送与接收效果:
@RunWith(SpringRunner.class) @SpringBootTest public class ApplicationTests { @Autowired Producer producer; @Test public void contextLoads() throws InterruptedException { producer.produce(); Thread.sleep(1*1000); } }单击 Run Test 或在方法上右击,选择 Run 'contextLoads()',运行单元测试程序,查看后台输出情况,运行结果如下图所示:

图 2 简单队列模式单元测试的运行结果
通过上面的程序输出日志可以看到,消费者已经收到了生产者发送的消息并进行处理。由于是一对一的工作模式,它的缺点很明显,在实际的应用中,业务处理比较耗费时间,简单队列模式很难在并发环境下支撑并发处理的业务量。
相关文章
- SpringBoot实现RabbitMQ工作队列(附带实例)
- SpringBoot实现RabbitMQ广播模式(附带实例)
- SpringBoot集成RabbitMQ详解(附带实例)
- SpringBoot @PathVariable实现参数传递(附带实例)
- SpringBoot @Scheduled实现定时任务(附带实例)
- SpringBoot URL映射详解(附带实例)
- SpringBoot集成Redis详解(附带实例)
- SpringBoot传递参数的5种方法(附带实例)
- Spring Boot JPA分页查询的具体实现(附带实例)
- SpringBoot @Scheduled定时任务详解(附带实例)
 
	 ICP备案:
 ICP备案: 公安联网备案:
 公安联网备案: