五大核心组成

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

协议

三要素

  • 语法
  • 语义
  • 时序(同步)

消息中间件常见协议:OpenWire、AMQP、MQTT、Kafka、OpenMessage

为什么消息中间件不用 HTTP 协议
—— HTTP 太大,并且是短连接

AMQP

高级消息队列协议即 Advanced Message Queuing Protocol(AMQP)
特性:
支持事务、持久化,可靠性好

MQTT

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

OpenMessage协议

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

Kafka协议

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

持久化

消息中间件设计思路

消息分发

消息中间件设计思路

高可用

主从共享

消息中间件设计思路

主从同步

消息中间件设计思路

多主集群同步部署

消息中间件设计思路
相比于主从同步模式,集群不仅开放了读功能,还开放了写功能。

多主集群转发部署模式

消息中间件设计思路
虽然 broker-1 没有该数据信息,通过同步的元数据,它知道 broker-2 上有相关信息,并把相应请求转发给 broker-2.

Master-Slave 和 Broker-Cluster 的组合

消息中间件设计思路

高可靠

高可靠即系统可以无故障地持续运行。

消息中间件的高可靠性,一般考虑两个方面:

  • 消息传输可靠:通过协议来保证系统间数据解析的正确性
  • 消息存储可靠:通过持久化来保证消息的存储可靠性

相关文章:

  • 2021-11-02
  • 2021-12-04
  • 2022-01-28
  • 2021-11-21
  • 2021-10-13
猜你喜欢
  • 2021-08-15
  • 2021-06-25
  • 2021-06-18
  • 2021-09-29
  • 2022-02-07
  • 2021-04-08
  • 2021-10-09
相关资源
相似解决方案