RabbitMQ

理解AMQP协议
AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是一个进程间传递异步消息的网络协议。

工作过程
1.发布者(Publisher)发布消息(Message),经由交换机(Exchange)。
2.交换机根据路由规则将收到的消息分发给与该交换机绑定的队列(Queue)。
3.最后AMQP代理会将消息投递给订阅了此队列的消费者,或者消费者按照需求自行获取。

Exchange交换机
交换机是用来发送消息的 AMQP 实体。
交换机拿到一个消息之后将它路由给一个或零个队列。
它使用哪种路由算法是由交换机类型和绑定(Bindings)规则所决定的。
四种类型:直连交换机(Direct)、扇形交换机(Fanout)、主题交换机(Topic)、头交换机(Headers)。
交换机可以有两个状态:持久(durable)、暂存(transient)。
持久化的交换机会在消息代理(broker)重启后依旧存在,而暂存的交换机则不会(它们需要在代理再次上线后重新被声明)。

直连交换机(Direct):默认,严格匹配,私聊场景
扇形交换机(Fanout):广播模式
主题交换机(Topic):模糊匹配
头交换机(Headers):属性匹配

参考资料:https://blog.csdn.net/weixin_37641832/article/details/83270778


正常情况下,如果消息经过交换器进入队列就可以完成消息的持久化,但如果消息在没有到达broker之前出现意外,那就造成消息丢失,有没有办法可以解决这个问题?
RabbitMQ有两种方式来解决这个问题:
1.通过AMQP提供的事务机制实现;
2.使用发送者确认模式实现;

参考资料:https://www.cnblogs.com/vipstone/p/9368106.html

 

rabbitmq

posted @ 2019-12-26 16:08  hot小热  阅读(135)  评论(0编辑  收藏  举报