0、消息协议
0.1 OpenWire
它是 Apache 的一种跨语言的协议,允许从不同的语言和平台访问 ActiveMQ,是 ActiveMQ 4.x 之后默认的传输协议。
0.2 AMQP(Advanced Message Queuing Protocol)
特点:事务支持,消息持久化支持,可靠性高
支持:RabbitMQ,ActiveMQ
0.3 MQTT(Message Queuing Telemetry Transport)
是 IBM 开发的即时通讯协议,也是物联网系统架构中的重要组成部分
特点:轻量,结构简单,传输快,不支持事务,不支持持久化
支持:RabbitMQ,ActiveMQ
适用场景:适用于计算能力有限、低带宽、网络不稳定的场景
0.4 Open Message
由多个公司共同参与创立的分布式消息中间件、流处理领域的应用开发标准。
特点:结构简单,解析快,事务支持,持久化支持
支持:RocketMQ
0.5 Kafka:基于 TCP 的二进制协议
特点:结构简单,解析快,不支持事务持久化支持
支持:Kafka
1、各种消息中间件对持久化的支持
2、消息分发策略
3、高可用策略
3.1 主从复制
数据会被主服务器写到文件系统/数据库中,其他的从服务器从文件系统/数据库中读取数据
3.2 主从同步
数据的写入会写到主服务器上,接着主服务器会将数据同步到其他从服务器上
3.3 多主集群同步模式
多个主服务器可以进行读写,服务器之间进行数据同步
3.4 多主集群转发模式
转发的是各个服务器上保存的队列/主题等元数据信息,这样的话,请求任何一个服务器都可以拿到数据。这种模式也有两种工作方式,第一种是直接将请求转发到存在有数据的服务器,第二种是从存有数据的服务器上读取数据到当前服务器,然后将数据返回给客户端
3.5 主从复制+多主集群相结合
主从之间保证服务器高可用,多主之间保证负载均衡
4、高可靠
高可靠分为消息传输高可靠和消息存储高可靠。消息传输高可靠即表示消息在传输的过程中不会丢失,而消息存储高可靠即消息不会在服务器重启之后丢失。