文章目录
五大核心组成
- 协议
- 持久化机制
- 消息分发机制
- 高可用设计
- 高可靠设计
协议
三要素
- 语法
- 语义
- 时序(同步)
消息中间件常见协议: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 的组合
高可靠
高可靠即系统可以无故障地持续运行。
消息中间件的高可靠性,一般考虑两个方面:
- 消息传输可靠:通过协议来保证系统间数据解析的正确性
- 消息存储可靠:通过持久化来保证消息的存储可靠性
来源:CSDN
作者:Jacobbzx
链接:https://blog.csdn.net/bzxxzb/article/details/103903302