为什么80%的码农都做不了架构师?>>>
在使用Spring集成RabbitMQ时,需要监听RabbiMQ消息。一般选择性实现下面俩接口:
MessageListener 只能获取到Message信息
ChannelAwareMessageListener 能获取到Message以及Channel信息
不同点在于channel可以手工确认消息以及拒绝
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20public class TestMessageListener implements ChannelAwareMessageListener { private static final Logger logger = LoggerFactory.getLogger(TraceAnalyzeListener.class); @Autowired private TraceAnalyzeService traceAnalyzeService; @Autowired private ElasticOperationService elasticOperationService; @Autowired private RedisTemplate<String, String> redisTemplate; @Autowired private TraceMessageSender traceMessageSender; @Override public void onMessage(Message message, Channel channel) throws Exception { //消息的标识,false只确认当前一个消息收到,true确认所有consumer获得的消息 //channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); //确认成功收到消息 //ack返回false,并重新回到队列,api里面解释得很清楚 //channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true); //拒绝消息 //channel.basicReject(message.getMessageProperties().getDeliveryTag(), true); } }
转载于:https://my.oschina.net/woter/blog/1806673
最后
以上就是土豪帽子最近收集整理的关于Spring-Amqp MessageListener详解的全部内容,更多相关Spring-Amqp内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复