之前的消费者
在之前的消费端,我们是如何消费的呢?
1 | // 消费者 |
创建一个QueueingConsumer
,然后循环消费,将接收到的消息信息打印出来。
可以发现,这种方式耦合严重,并且不美观,那么有没有别的方式,更简单的进行消费呢?
就需要使用到接下来要说的自定义消费者
自定义消费者
为了改善之前while循环的情况,我们可以使用自定义的消费者,它更加方便,解耦性更强,实际工作中也更常用(当然不整合框架的话)。
使用方法
- 创建一个类实现
Consumer
接口,并重新一系列的方法,这种方式比较繁琐,需重写所有抽象方法。 - 创建一个类继承
DefaultConsumer
,这样只需要重写handleDelivery
方法即可,这种方式更简单,只需重新你所需要的方法即可。
代码实现
自定义Consumer
1 | public class MyConsumer extends DefaultConsumer { |
生产端
1 | public class Provider { |
消费端
1 | public class Consumer { |
测试
先开启Consumer,然后查看15672
可视化界面,是否创建对应的exchange,queue
再开启Provider,观察Consumer的控制台
正确展示出信息,并且还在运行,监听消息队列