栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

RabbitMQ的一些笔记

RabbitMQ的一些笔记

1.死信队列: 如何会变成死信

死信交换机 -> 死信队列

    发送消息超过消息队列的长度

    消费者拒收消息并且不会把消息返回给消息队列

    消息设置超时时间,消息到达时间并且未被消费者消费

2. RabbitMQ如何实现延迟队列?

实现 : TTL + 死信队列

延迟队列:消息进入队列后不会被立即消费,只有到达指定时间后才会被消费

TTL 设置超时时间 + 死信队列 接收死信

3.Rabbitmq 的优势

    应用解耦

    任务异步式处理

    削峰填谷

    名词介绍

        AMQP --- Advanced Message Queuing protocol 高级消息队列协议

        Connection : --> producer 和 broker broker 和 consumer 之间的tcp连接

        channel : ---> 如果每一次访问rabbitmq都要建立connection连接,花销会非常巨大 ,         channel 是connection内部建立的逻辑连接,如果应用程序支持多线程,那么每一个线程都会创建单独的channel 来通讯, AMQP method 包含了 channel id 来帮助客户端和 message broker来识别channel ,所以 channel 之间是互相隔离的 ,channel作为轻量级的connection极大的减少了系统的开销

        exchange: 消息到达message broker的第一站 ,然后会匹配查询表的routing key ,然后 把消息分发给queue,常用的类型为 topic (publish - subscribe),direct (point to point ), fanout (multicast)

        queue: 消息被传送到这里,等待被消费者取走

        binding : exchange 和 queue 之间的虚拟连接 ,binding可以包含routing key,被保存到exchange中的查询表中,用于message的分发

RabbitMQ的6种模式

简单模式、work模式、publish/subscribe发布与订阅模式,routing路由模式,topic主题模式,rpc远程调用模式

topic 模式 : producer 只需要 往 交换机里发送数据

消息的可靠传递

confirm 确认模式

return 退回模式

rabbitmq的消息传递路径:

producer -> rabbitmq broker -> exchange -> queue -> consumer

消息从producer 到 exchange 会返回 一个/confirm/iCallback

消息从 exchange -> queue 投递失败会返回一个 returnCallback

利用这两个callback 控制消息的可靠性投递

Consumer Ack

三种确认方式:

1. 自动确认 acknowledge = "none" : 消息一旦被consumer接收到,会自动确认,并把rabbitmq中的消息缓存删除,但是实际业务中可能会出现异常,那么该消息就会丢失

2. 手动确认 acknowledge = "manual" 如果业务出现异常,手动让其重新发送消息

3. 根据异常情况确认 acknowledge = "auto"

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/758732.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号