RabbtiMq消息确认机制学习

https://www.cnblogs.com/zhaoyansheng163/p/11745654.html

https://www.iteye.com/blog/uule-2439190

MQ消息确认机制:
生产者需求确认问题:
 一是确认是否到达交换器

二是确认是否到达队列
消费者需求确认问题:
一、如何防止消息丢失或未被成功处理;
    1、在启动MQ侦听服务时配置这个参数:
        acknowledge-mode :manual  //每条消息必须手工确认
    2、在真正接收到消息时,先不回复确认,而是先处理业务逻辑,处理成功后回复确认,
    此时MQ会将该消息删除;业务逻辑处理失败则回复拒绝,
    然后将消息登记到异常表,有专门的异常处理程序处理。
    
    
可以确保每个消息是需要消费者手工确认的。
    
二、如何防止消息被重复消费(尤其是在消费者服务集群的情况下);
 

注意:

MQ本身是基于异步的消息处理,前面的示例中所有的生产者(P)将消息发送到RabbitMQ后不会知道消费者(C)处理成功或者失败(甚至连有没有消费者来处理这条消息都不知道)。 

但实际的应用场景中,我们很可能需要一些同步处理,需要同步等待服务端将我的消息处理完成后再进行下一步处理。这相当于RPC(Remote Procedure Call,远程过程调用)。在RabbitMQ中也支持RPC。

【RabbitMQ开启手动ack机制保证消费端数据不丢失的时候,prefetch机制对消费者的吞吐量以及内存消耗的影响。

通过分析,我们知道了prefetch过大容易导致内存溢出,prefetch过小又会导致消费吞吐量过低,所以在实际项目中需要慎重测试和设置。】

 

//完整的mq学习文档

https://www.cnblogs.com/zwwhnly/p/10953388.html

https://www.liangzl.com/get-article-detail-140885.html

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值