消息中间件有哪些

  1. 语义。语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息以及完成的动作与做出什么样的响应。

  2. 时序。时序是对时间发生顺序的详细说明。

五、为什么消息中间件不直接使用http协议呢?


  1. 因为http请求报文头和响应报文头是比较复杂的,包含了cookie,数据的加密解密,状态码,响应码等附加的功能,但是对于一个消息而言,我们并不需要这么复杂,也没有这个必要性,它其实就是负责数据传递,存储,分发就行,一定要追求高性能,尽量简洁,快速。

  2. 大部分情况下http都是短连接,在实际的交互过程中,一个请求到响应很有可能会中断,中断以后就不会进行持久化,就会造成请求的丢失。这样就不利于消息中间件的业务场景,因为消息中间件可能是一个长期的获取消息的过程,出现问题和故障要对数据或消息进行持久化,目的是为了保证消息和数据的高可靠性和稳健的运行。

六、AMQP协议


AMQP:全称Advanced Message Queuing Protocol,是高级消息队列协议。由摩根大通集团联合其他公司设计,是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息中间件设计,基于此协议的客户端和消息中间件可传递消息,并不受客户端或中间件或不同的开发条件的限制。

特性:

  1. 分布式事务支持

  2. 消息的持久化支持

  3. 高性能和高可靠的消息处理优势

七、消息的分发策略


1、MQ消息队列有如下几个角色

  1. 生产者

  2. 存储消息

  3. 消费者

在发送消息的过程中可能出现异常,或者网络抖动,故障等等原因,从而造成消息无法消费,比如用户下订单,消费MQ接受,订单系统出现故障,导致用户支付失败,那么这个时候就需要消息中间件支持消息重试机制策略。也就是支持:出现问题和故障的情况下,消息不丢失还可以进行重发。

2、消息分发策略的机制和对比

ActiveMQRabbitMQKafkaRocketMQ
发布订阅支持支持支持支持
轮询分发       支持支持支持/
公平分发/支持支持/
重发支持支持/支持
消息拉取/支持支持支持

八、消息队列高可用和高可靠


1、什么是高可用机制

高可用是指产品在规定的条件和规定的时刻或时间内处于可执行规定功能的能力。

当业务量增加时,请求也过大,一台消息中间件服务器会触及硬件(CPU、内存、磁盘)的极限,一台消息服务器已经无法满足业务的需求,所以消息中间件必须支持集群部署,来达到高可用的目的。

2、集群模式

(1)Master-slave主从共享数据的部署模式

生产者消费发送到Master节点,所有的都连接这个消息队列共享这块数据区域,Master节点负责写入,一旦Master挂掉,slave节点继续服务,从而形成高可用。

(2)Master-slave主从同步部署方式

![](https://img-blog.csdnimg.cn/2021081310283642.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cH 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 M6Ly9ibG9nLmNzZG4ubmV0L2d1b3J1aV9qYXZh,size_16,color_FFFFFF,t_70)

这种模式写入消息同样在Master主节点上,但是主节点同步数据到slave节点形成副本,和zookeeper或者redis主从机制很类似。这样可以达到负载均衡的效果,如果消费者有多个这样就可以取不同的节点进行消费,消息的拷贝和同步会占用很大的宽带和网络资源,在后续的rabbitmq中也会使用。

(3)多主集群同步部署模式

(4)多主集群转发部署模式

如果插入的数据在broker1中,元数据信息会存储数据的相关描述和记录存放的位置。

它会对元数据信息进行同步,如果消费者在broker2中进行消费,但没有找到对应的信息,可以从对应的元数据信息中去匹配,如果得到了,可以直接返回,如果匹配不到,则转发这个请求到别的服务器询问,直到寻找到为止。

好处是减少数据资源的存储,不造成空间的浪费。

(5)Master-slave与Broker-cluster组合方案

总结:

  1. 要么消息共享

  2. 要么消息同步

  3. 要么元数据共享

九、什么是高可靠机制


1、通过协议来保证系统间数据解析的正确性。

2、通过持久化保证消息的可靠性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值