消息队列服务器
什么是消息队列操作系统
消息队列是消息中间件的一种实现方式。3d
什么是消息中间件?日志
将消息中间件须要理解一下什么是消息和中间件?中间件
消息是指软件对象之间进行交互做用和通信利用的一种方式。对象
百度百科的介绍:blog
中间件(Middleware)是处于操做系统和应用程序之间的软件,也有人认为它应该属于操做系统中的一部分。队列
这介绍的个人不是很明白,下面我就讲解一下个人理解,什么是中间件:get
首先,中间件 顾名思义 介于二者之间的一个技术:消息队列
为了更好的理解中间件技术,我有了这样的一个设想的概念,如图:
信息:这是一个抽象的个体,能够表明一个软件、计算机、或者一个系统等等。
联系:则是进行通讯、相互操做等等的抽象
中间件则是将 信息与信息之间的联系践行一种存储或者管理的技术,这就是中间件技术。
根据其应用的不一样,中间件分为:
一类是底层中间件,用于支撑单个应用系统或解决一类问题,包括交易中间件(TPM)、应用服务器、消息中间件(MOM)、数据访问中间件(UDA),远程调用中间件(RPC)等等;
另外一类是高层中间件,更多的用于系统整合,包括企业应用集成中间件、工做流中间件、门户中间件等,他们一般会与多个应用系统打交道,在系统中层次较高,并大多基于前一类的底层中间件运行。
总结:消息中间件则是将软件与软件之间的交互方式进行存储和管理的一种技术,也能够看作是一种容器。
### 深刻理解消息队列:
消息队列,是消息中间件的一种实现方式
下面是消息队列传递服务的模型:
消息队列的传递模型一共有两中形式:
即一个生产者和一个消费者一一对应;
点对点模型的特色:
1,每一个消息只有一个消费者
2,发送者和接受者没有时间依赖
3,接受者确认消息接受和处理成功
发布/ 订阅模式,即一个生产者产生消息并进行发送后,能够由多个消费者进
行接收。
发布-订阅模型特色:
1,每一个次消息能够有多个消费者
2,客户只有订阅后才能接收消息(只有创建订阅关系才能够接收消息 )
3,持久订阅和非持久订阅
订阅关系创建后(关系保存在消息中间件中),无论消费者(也就是订阅者)是否在线消息都不会消失。
创建一种相似长链接关系式的订阅模式,订阅者为了接收消息必须保持一直链接的状态,若是断开链接则丢失消息。
消息队列的分类:
消息生产者将消息发送给消息中间件,消息中间件又将消息推送给消费者。
消费者请求 消息中间件接收消息,消费者从消息中间件拉取消息。
特色:
目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等 。
消息队列的应用案例:
1,用户注册
2,日志收集分析
3,数据复制
4,延迟消息发送和暂存
5,消息广播