抄了一些关于消息中间件件的概念..
消息中间件
利用高效可靠的消息传递机制进行平台无关的数据交流
并基于数据通信来进行分布式系统的集成
通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
消息中间件应用场景,
跨系统数据传递,高并发高流量削峰,数据异步处理。。。等等
常用的消息中间件
ActiveMQ , RabbitMQ ,Kafka , RocketMQ
本质:
一种具备接收请求,保存数据,发送数据等功能的网络应用.
和一般网络应用程序的区别是它主要负责数据的接收和传递, 所以性能一般高于普通的程序
5大核心组成
协议
持久化机制
消息分发机制
高可用设计
高可靠设计
协议是什么?
协议是计算机之间通信时共同遵从的一组约定, 都遵守相同的约定,计算机之间才能相互交流.
是对数据格式和计算机之间数据交换时必须遵守的规则的正则描述
协议的三要素:
语法:即数据与控制信息的结构或格式
语义:即需要发出何种控制信息,完成何种动作以及做出何种响应
时序:即事件实现顺序的详细说明
AMQP(Advaced Message Queuing Protocol )是高级消息队列协议.
MQTT(Message Queuing Telemtry Transport)消息队列遥测传输是IBM开发的一个即时通讯协议,物联网系统架构中重要组成部分.
OpenMessaging 是近一两年由阿里发起,与雅虎,滴滴出行Streamlio等公司共同参与创立的分布式消息中间件,流处理领域的应用
开发标准.
Kafka协议是基于TCP的二进制协议.消息是通过长度分隔,由一些基本数据类型组成.
常用的消息分发策略
发布订阅 轮询分发 公平分发 重发 消息拉去
高可用性:是指产品在规定的条件和规定的时刻或时间区域处于可执行规定功能状态的能力
业务量大时, 一台消息中间件服务器可能无法满足需求,所以需要消息中间件能够集群部署,来达到高可用的目的.
高可靠性是什么
高可靠性是指系统可以无故障地持续运行.比如一个系统从来不崩溃,报错,或或者崩溃,报错的几率很低,那就是高可靠.
保证消息中间件的高可靠,可以从以下几个方面考虑
消息传输的可靠:通过协议保证系统间数据解析的正确性
消息存储的可靠:通过持久化来保证消息的存储可靠性