分布式消息中间件设计概述

消息中间件概述

什么是消息中间件

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

消息中间件的应用场景

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

常用的消息中间件

ActiveMQ,RabbitMQ,Kafka,RocketMQ

消息中间件核心设计

本质

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

5大核心组成

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

协议

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

协议3要素

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

常见协议

HTTP协议3要素
语法:http规定了请求报文和响应报文的具体格式。
语义:客户端主动发起的操作称为请求。
时序:一个请求对应一个响应。

消息中间件常用的协议:OpenWire、AMQp、MQTT、Kafka、OpenMessage

AMQP协议

AMQP.png

MQTT协议

MQTT.png

Open Message协议

Open Message

Kafka协议

Kafka.png

持久化

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

image.png

常用持久化方式

ActiveMQRabbitMQKafkaRocketMQ
文件系统支持支持支持支持
数据库支持///

消息分发

为什么要有消息分发策略

image.png

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

image.png

高可用

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

当业务量大时,一台消息中间件服务器可能无法满足需求,所以需要消息中间件能够集群部署,来达到高可用的目的。

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

image.png

Master-Slave 主从同步部署方式

image.png

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

image.png

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

image.png

Master-Slave与Broker-Cluster结合

image.png

高可靠

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

保证消息中间件的高可靠性,可用从以下几个方面考虑

消息传输可靠: 通过协议来保证系统间数据解析的正确性。

消息存储可靠: 通过持久化来保证消息的存储可靠性。

总结

想要设计和实现一个消息中间件,协议、持久化、消息分发、高可用、高可靠 这个5个核心点必须要实现

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值