扩大
缩小

组件系列之RabbitMQ

官网: https://www.rabbitmq.com/getstarted.html

1.四种交换机

TODO...

2.消费者获取消息方式:推 和 拉

拉取:每次拉取一条,循环拉取需要的条数在批处理;

3.集群模式:普通模式和镜像模式

镜像模式,消息广播流程如下:

(1)Master 节点发出消息,顺着镜像队列循环列表发送;

(2)所有 Slave 节点收到消息会对消息进行缓存(Slave 节点缓存消息用于在广播过程中,有节点失效或者新增节点,这样左侧节点感知变化后会重新将消息推送给右侧节点);

(3)当 Master 节点收到自己发送的消息后意味着所有节点都收到了消息,会再次广播 Ack 消息;

(4)Ack 消息同样会顺着循环列表经过所有 Slave 节点,通知 Slave 节点可以清除缓存消息;

(5)当 Ack 消息回到 Master 节点,对应消息的广播结束。
————————————————

4.消息存在持久化

消息经过交换器进入队列就可以完成消息的持久化,但如果消息在没有到达broker之前出现意外,那就造成消息丢失

5.集群节点:内存节点和磁盘节点(持久化保存集群中的配置信息)

6.死信队列

1)消息被拒绝(basic.reject 或者 basic.nack),并且requeue=false; 
2)消息的过期时间到期了; (3)队列长度限制超过了。

7.延迟队列

根据消息TTL或队列的TTL, 过期后通过死信转发器,路由到指定的队列

8.RPC模式

原理:2个队列,(互相订阅)Client通过一个队列推送给Server,Server将结果通过一个回调队列推送给Client,实现通信

9.高级特性

RabbitMQ高级特性-消息可靠性投递
RabbitMQ高级特性-幂等性保障
RabbitMQ高级特性-Confirm确认消息
RabbitMQ高级特性-Return消息机制
RabbitMQ高级特性-消费端自定义监听
RabbitMQ高级特性-消费端限流
RabbitMQ高级特性-消费端ACK与重回队列
RabbitMQ高级特性-TTL队列/消息
RabbitMQ高级特性-死信队列(DLX)

10.确认模式

发送方确认模式、消费房确认模式

11.消息的顺序性保证

推送端:(变动日志表,只记录该表变动的EID等简单信息)按表分组,再按操作,依次推增加、修改、删除记录
消费端:一个queue只对应一个consumer,一次只消费一条消息,手动确认模式

 

posted on 2019-09-04 14:27  禅道  阅读(300)  评论(0)    收藏  举报

导航