RabbitMQ消息中间件学习2:消息队列协议、持久化、分发策略等

消息中间件的应用场景

1、跨系统数据传递
2、高并发的流量削峰
3、数据的分发与异步处理
4、大数据分析与处理
5、分布式事务

协议

只有把协议定好了才能进行工作。

网络协议的三个要素
1、语法。
2、语义。
3、时序。

为什么消息队列不使用HTTP协议呢?
1、因为MQ是追求极致的体验,但是HTTP是没办法完成的,是比较复杂的,HTTP包含了请求报文等cookie、状态码、响应码什么的,所以为了追求性能,只需要接收消息即可。
2、大部分HTTP的请求都是短连接,实际交互过程中,一个请求到相应很有可能会中断,中断以后就不会进行持久化,就会造成请求的丢失。这样不利于消息中间件的业务场景,因为消息中间件可能是一个长期的获取消息的过程。

AMQP协议

特性:
1、分布式事务支持。
2、消息的持久化支持。。
3、高性能和高可靠的消息处理优势。

持久化

简单来说就是存入磁盘,而不是在内存中随服务器重启断开而消失 ,使数据能够永久保存。

常见的持久化方式:
ActiveMQ 支持文件存储和数据库存储。
RabbitMQ支持文件存储。不支持数据库存储

消息的分发策略

MQ有几个角色:
1、生产者。
2、存储消息。
3、消费者。

在这里插入图片描述

消息分发策略机制和对比

在这里插入图片描述
发布订阅:就是只要订阅了,有消息了就能收到信息。
轮询分发:当消息到消息队列了,讲究的是一个公平的机制(理解成平等最好)。无论你的服务器性能怎么样都会是公平的。(后面会有一个指标QS)但是是没有顺序的,
在这里插入图片描述
公平分发是能者多劳的,多劳多得。

重发:
在这里插入图片描述
当订单系统没有反馈,即中间件没有收到订单系统的反馈,那么就会重发消息,保证消息的可靠性期。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员洲洲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值