分布式消息中间件设计篇

什么是分布式消息中间件

在这里插入图片描述
代码模块,全部放在一起,某一个模块升级,所有的代码,都需要升级。耦合度高,所有代码都在一起,代码可能比较难管理,
在这里插入图片描述
把一个大的系统,按照业务模块,功能模块,技术等,进行划分。
独立部署,可以单独升级部署,不影响其他系统。
多系统协同处理一个请求,就是分布式系统
在这里插入图片描述

消息中间件概述

什么是消息中间件

利用高效可靠的消息传递机制,进行平台无关的数据交流;
并基于数据通信来进行分布式系统的集成;
通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信;

消息中间件的应用场景

跨系统数据传递、高并发流量削峰、数据异步处理等等

常用的消息中间件

ActiveMQ、RabbitMQ、Kafka、RocketMQ

消息中间件核心设计

本质

一种具备接受请求、保存数据、发送数据等功能的网络应用。
和一般网络应用程序的区别是它主要负责数据的接收和传递,所以性能一般都高于普通程序

5大核心组成

  • 协议
  • 持久化机制
  • 消息分发机制
  • 高可用设计
  • 高可靠设计

协议

协议是什么

协议是计算机之间通信时,共同遵从的一组约定,都遵守相同的约定,计算机之间才能相互交流。
是对数据格式和计算机之间交换数据时,必须遵守的规则的正式描述。

协议三要素

语法:即数据与控制信息的结构或格式;
语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
时序(同步):即事件实现顺序的详细说明;

常见协议

在这里插入图片描述
1、使用http协议,比较复杂,包含请求头,cookie,状态码等等,对于消息功能比较单一,并且需要高性能。
2、http请求然后中断,消息不适合这种短连接。

AMQP协议

AMQP(Advanced Message Queuing Protocol)是高级消息队列协议
04年JPMorgan Chase(摩根大通集团)联合其他公司共同设计。
特性:
事务支持、持久化支持,出生于金融行业,在可靠性消息处理上具备天然的优势。
在这里插入图片描述

MQTT协议

MQTT(Message Queuing Telemetry Transport)消息队列遥测传输是IBM开发的一个即时通讯协议,物联网系统架构中的重要组成部分。
特性:
轻量、结构简单、传输快、没有事务支持、没有持久化相关设计
应用场景:
适用于计算能力有限,低带宽、网络不稳定的场景。
在这里插入图片描述

Open Message

OpenMessaging是近一两年由阿里发起,与雅虎、滴滴出行、Streamlio等公司共同参与创立的分布式消息中间件、流处理领域的应用开发标准。
是国内首个在全球范围内发起的分布式消息领域国际标准
特性:
结构简单、解析快、有事务设计、有持久化设计
在这里插入图片描述

Kafka协议

Kafka协议是基于TCP的二进制协议。消息内部是通过长度来分割,由一些基本数据类型组成。
特性:
结构简单、解析快、无事务设计、有持久化设计
在这里插入图片描述

持久化

持久化是什么

简单来说就是将数据存入磁盘,而不是存在内存中随服务重启而消失,使数据能够永久保存叫做持久化。
在这里插入图片描述

常用持久化方式

在这里插入图片描述

消息分发

为什么要有消息分发策略

在这里插入图片描述
前台系统,创建订单,传递给消息中间件,根据某种策略,把消息分发给不同系统。
在这里插入图片描述
下订单,支付失败(支付系统处理失败),支持重试的机制

常用的消息中间件发布策略

在这里插入图片描述

高可用

高可用机制

高可用性是指产品在规定的条件和规定的时刻,或时间区间内处于可执行规定功能状态的能力。
当业务量大时,一台消息中间件服务器可能无法满足需求,所以需要消息中间件能够集群部署,来达到高可用的目的。

Master-Slave主从共享数据的部署方式

共享数据,数据只有一份
在这里插入图片描述

Master-Slave主从同步部署方式

数据不仅在master中,还会同步到slave中,把数据放在多个地方,可以进行负载均衡。
数据的插入、修改只能在主服务器上进行。
同步会占用,网络带宽
在这里插入图片描述

Broker-Cluster多主集群同步部署方式

读写,都可以实现负载均衡
在这里插入图片描述

Broker-Cluster多主集群转发部署方式

当数据存放到broker1中,只有broker1中有数据,没有复制,没有分布式存储。会有描述信息(存放位置,数据对应的队列,),描述信息会在多个broker中进行同步。
缺点:如果broker挂掉,则该broker中的数据,就没了
在这里插入图片描述

Master-Slave与Broker-Cluster结合

即实现负载均衡,也实现备份
在这里插入图片描述

高可靠

高可靠是什么

高可靠性是指系统可以无故障地持续运行。比如一个系统从来不崩溃、报错,或者崩溃、报错的几率低,就是高可靠。
在高并发业务场下,如果不能保证系统的高可靠,那造成的损失将会是非常严重。
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值