什么是分布式消息中间件:
利用高效可靠的消息传递机制进行平台无关的数据交流;
并基于数据通信来进行分布式系统的集成;
通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信;
消息中间件的应用场景:
跨系统数据传递、高并发流量削峰、数据异步处理。。。等。
常用的消息中间件:
ActiveMQ、RabbitMQ、Kafka、RocketMQ
消息中间件核心设计:
本质:
一种具备接收请求、保存数据、发送数据等功能的网络应用。
和一般网络应用的区别是它主要负责数据的接收和传递,所以性能一般都高于普通程序。
5大核心组成:
协议、持久化机制、消息分发机制、高可用设计、高可靠设计
协议是什么?
协议是计算机之间通信时共同遵从的一组约定,都遵守相同的约定,计算机之间才能相互交流。
是对数据格式和计算机之间交换数据时必须遵守的规则的正式描述。
常见协议:
http协议三要素举例:
语法:http规定了请求报文和响应报文的具体格式。
语义:客户端主动发起的操作称为请求;
时序:一个请对应一个响应;
消息中间件常用的协议:OpenWire、AMQP、MQTT、Kafka、OpenMessage
为什么消息中间件不直接使用Http协议?
1.请求报文和响应报文比较复杂
2.MQ要求单一,简洁做数据传输
3.http大都是短链接,不利于消息中间件场景
持久化是什么?
简单来说就是将数据存入磁盘,而不是存在内存中随服务器的重启而消失,使数据能够永久的保存,就叫做持久化。
市面上常用的消息中间件持久化支持方式:
消息分发机制:
消息分发:
消息重发:
高可用机制:
高可用性是指产品在规定的条件和规定的时刻或时间区间内处于可执行规定功能状态能力。
当业务量大时,一条消息中间件服务器可能无法满足需求,所以需要消息能够集群部署,来达到高可用的目的。
解决高可用的方式:
MQ,主从共享数据的部署方式:
MQ,主从同步的部署方式:
MQ,多主集群转发部署方式:
高可靠:
高可靠性是指系统可以无故障地持续运行。比如一个系统从来不崩溃、报错,或者崩溃报错的几率较低,那就是高可靠。
在搞并发业务场景下,如果不能保证系统的高可靠,那造成的损失将会非常严重。
保证消息中间件的高可靠性,可以从以下几方面考虑:
消息传输可靠:通过协议来保证系统间数据解析的正确性。
消息存储可靠:通过持久化来保证消息的存储可靠性。