初识消息中间件(一)

什么是中间件?

中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务监控器和消息队列软件。

为什么使用中间件?

中间件是为了解决复杂程序通讯的及数据一致性问题的手段,它可以帮我们很好的屏蔽底层操作系统的复杂性,还可以解决服务之间的通讯,特别在分布式系统中,服务之间的通讯尤为重要。

基于消息中间件的分布式系统架构

在这里插入图片描述

  1. 利用可靠的消息传递机制进行系统与系统之间的通讯;
  2. 通过提供消息传递与消息排队的机制,它可以在分布式系统之间扩展服务的通讯。

消息中间件的使用场景

  1. 跨系统跨语言的数据传递
  2. 高并发的流量削峰
  3. 数据的分发与异步处理
  4. 大数据分析与传递分布式事物
比如你有一个数据要进行迁移或者请求并发数过高的情况下,如10w的请求下订单,我们可以在这些订单入库之前,将其堆积到消息队列中,让它稳健可靠的的执行入库,同时减少数据库的压力及防止高并发问题。

常见的消息中间件

RabbitMQ、ActiveMQ、kafka、RocketMQ等。

消息中间件的本质及设计

生产者生产信息—》发送消息----》MQ存储消息----》接收消息—》消费者消费消息

消息中间件的核心组成部分(CAP)

  1. 消息的协议 基于TCO/IP协议基础的再次封装

常见的消息中间件协议有:openWire、AMQP、MQTT、kafka、OpenMessage协议等。

  1. 消息的持久化机制

数据存储在磁盘中,以文件的方式备份,而非内存中随着服务器的重启就消失,进而达到永久保存的效果,除了activeMq还可以存储到数据库中,其它几个均以文件的方式存储。

  1. 消息的分发策略
  2. 消息的高可用
  3. 消息的容错性

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

因为http协议的请求头和响应报文头是比较复杂的,包含了cookie,数据的加解密、状态码、响应码等附加的功能、但是对于一个消息而言,我们并不需要那么复杂,也没有这个必要性,它主要是负责数据传递、存储、分发就行,一定要追求的是高性能、尽量简洁、快速。
大部分情况下http大部分都是短链接,在实际的交互过程中,一个请求到相应很有可能会中断,中断以后就不会进行持久化,就会照成数据的丢失,这样就不利于消息中间件的业务场景,因为消息中间件可能是一个长期的获取消息的过程,出现问题和故障要对数据或消息进行持久化处理,目的是为了保证消息和数据的高可用及程序的稳健允许。

消息分发策略机制对比

在这里插入图片描述

消息队列的高可用模式

集群模式1-Master-Salve主从共享模式

在这里插入图片描述

此模式主要适用于master节点负责写入消息,从节点负责读取消息,主从节点共享同一数据区域,从而形成高可用,缺点是若是消息文件服务器丢失,那么所有节点都没用。

集群模式2-Master-Salve主从同步

在这里插入图片描述

这种模式,消息由生产者发送消息到主节点,主节点会同步数据到从节点,这样形成数据的副本,类似于zk和redis的主从机制,这样可以达到负载均衡及高可用的效果,若是消费者很多可以从不同节点进行读取消息,缺点就是消费和拷贝消息会受到贷款和网络的影响,所以部署环境最好在同一网段。

集群模式3-多主集群同步部署模式

在这里插入图片描述

这个模式和上面的模式没有太多区别,但改善了只有主节点进行写入消息的策略,这种模式所有节点都可以读写消息。

集群模式4-多主集群转发部署模式

在这里插入图片描述

节约空间,不造成服务器资源的浪费

集群模式5-Master-salve与broker-cluster组合模式

在这里插入图片描述
高可用小结:

  1. 要么消息共享
  2. 要么消息同步
  3. 要么元数据共享
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值