RabbitMQ 消费者
消息获取:
Basic.Get-轮询模型


Basic.Consume-推送模型

消费者性能:

no_ack 模式(no_ack=true )
当 RabbitMQ 通过打开的连接发送消息时,它使用 TCP 套接字连接与客户端进行通信 。如果这个连接是打开且可写的,那么 RabbitMQ 假定一切都处于正常工作状态并且成功投递了消息。如果当 RabbitMQ 尝试写入套接字 以投递消息时出现了网络问题,操作系统将触发套接字 错误从而让 RabbitMQ 知道出现了问题
服务质量(QualityOfService, QoS)设置控制消费者预取(ack=true && prefetch=50)
在确认消息接收之前,消费者可以预先要求接收一定数量的消息。
同时确认多个消息,所有以前未确认的消息
消费者使用事务
消息拒绝

Base.Reject: 通知代理服务器无法对所投递的消息进行处理
Base.Nack: 否定确认, (negative acknowledgement)
死信交换器:( Dead-LettereXchange , DLX)
备用交换器:
过期或被拒绝的消息通过死信交换器进行投递,而备用交换器则路由那些无法由 RabbitMQ 路由的信息 。

控制队列:
临时队列
自动删除队列
只允许单个消费者
自动过期队列
永久队列
队列持久性
队列中消息自动 过期
最大长度队列
任意队列设置

评论