RabbitMQ简介

RabbitMQ简介,第1张

RabbitMQ是目前非常热门的一款消息中间件,不管是互联网行业还是传统行业都在大量地使用。RabbitMQ凭借其高可靠、易扩展、高可用及丰富的功能特性受到越来越多企业的青睐。

1.消息中间件

消息(Message)是指在应用间传送的数据。

消息队列中间件(Message Queue Middleware,简称MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。

消息队列中间件,也可称为消息队列或消息中间件,一般分为两种传递模式:点对点模式和发布/订阅模式。

点对点模式(P2P,Point-to-Point): 是基于队列的,消息生产者发送消息到队列,消息消费者从队列中接收消息,队列的存在使得消息的异步传输成为可能。

发布/订阅模式(Pub/Sub):定义了如何向一个内容节点发布和订阅消息,这个内容节点称为主题(topic),主题可以认为是消息传递的中介,消息发布者将消息发布到某个主题,而消息订阅者则从主题中订阅消息。主题使得消息的发布者和订阅者保持相互独立,不需要进行接触即可保证消息的传递,发布/订阅模式在消息的一对多广播时采用。

目前开源的消息中间件有很多,比较主流的有RabbitMQ、Kafka、ActiveMQ、RocketMQ等。面向消息的中间件提供了以松散耦合的灵活方式集成应用程序的一种机制。它们提供了基于存储和转发的应用程序之间的异步数据发送,即应用程序彼此不直接通信,而是与作为中介的消息中间件通信。

消息中间件适用于需要可靠的数据传送的分布式环境。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可将消息进行传送或者存储转发,这也是比远程过程调用(RPC)更进步的原因。

2.消息中间件的作用 1.解耦

消息中间件在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口,这允许你独立地扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束即可。

 2.冗余(存储)

消息中间件可以把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。在把一个消息从消息中间件删除之前,需要你的处理系统明确地指出该消息已经被处理完成,从而确保你的数据被安全地保存直到你使用完毕。

 3.扩展性

消息中间件解耦了应用的处理过程,提高消息入队和处理的效率很容易,只需要另加处理过程,不需要改代码,也不需要调参数。

4.削峰

使用消息中间件能够使关键组件支撑突发访问压力,不会因为突发的超负荷请求而完全崩溃。

5.可恢复性

当系统一部分组件失效时,不会影响到整个系统。

6.顺序保证

大部分消息中间件支持一定程度上的顺序性。

7.缓冲

消息中间件通过一个缓冲层来帮助任务最高效率的执行,写入消息中间件的处理会尽可能快速。该缓冲层有助于控制和优化数据流经过系统的速度。

8.异步通信

消息中间件提供了异步处理机制,允许应用把一些消息放入消息中间件中,但并不立即处理它,在之后需要的时候再慢慢处理。

3.RabbitMQ的特点

RabbitMQ是采用Erlang语言实现AMQP的消息中间件,最初起源于金融系统,用于在分布式系统中存储转发消息。

特点  1.可靠性

RabbitMQ使用一些机制来保证可靠性,如持久化、传输确认及发布确认等。

2.灵活的路由

在消息进入队列之前,通过交换器来路由消息,对于典型的路由功能,RabbitMQ已经提供了一些内置的交换器来实现。针对更复杂的路由功能,可以将多个交换器绑定在一起,也可以通过插件机制来实现自己的交换器。

3.扩展性

多个RabbitMQ节点可以组成一个集群,也可根据实际业务动态扩展集群中节点。

4.高可用性

队列可以在集群中的机器上设置镜像,使得在部分节点出现问题的情况下队列仍然可用。

5.多种协议

RabiitMQ除了原生支持AMQP协议,还支持STOMP、MQTT等多种消息中间件协议。

6.多语言客户端

几乎支持所有常用语言,如Java、Python、Ruby、PHP、C#、JavaScript等。

7.管理界面

提供了易用的用户界面,使得用户可以监控和管理消息、集群中的节点等。

8.插件机制

提供了很多插件,以实现从多方面进行扩展,当然也可以编写自己的插件。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/719351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存