什么是RabbitMQ?

2020.06.13 -

   

RabbitMQ是使用最广泛的开源消息代理之一。它最初基于高级消息队列协议(AMQP)。后来,对它进行了修改,以支持消息队列遥测传输(MQTT),流文本定向消息协议(STOMP)和其他几种常见协议。

RabbitMQ被设计用于过去25年中开发的各种消息传递方案。它以可靠性和互操作性而闻名。它已经以多种语言实现;因此,它是构建可靠的,大规模的,群集的,有弹性的消息传递基础结构的最佳选择之一。

为什么我们使用RabbitMQ?

RabbitMQ是一种消息传递代理,广泛用于从Web服务器获取快速响应,而不是执行占用大量资源的操作,从而使用户等待结果。它还适用于在多个使用方之间分发消息或在高负载下在使用方之间进行负载平衡。

以下是一些希望使用RabbitMQ的方案:

  • 您的应用程序需要结合使用不同的消息传递协议,例如STOMP,AMQP,MQTT等。
  • 您需要针对每个消息进行更好,更一致的控制。
  • 您的应用程序需要多种消息传递技术,例如pub / sub,点对点,请求/回复等。
  • 当我们需要在特定服务器,一组服务器或所有服务器上运行同一作业时,此功能很有用。应用程序发送一条消息,交换将路由它。由于RabbitMQ具有强大的路由功能,因此这是可能的。
  • 如果您需要将您的消息传递代理与现有的IT基础架构集成在一起,RabbitMQ就是一个不错的选择。

如果您的应用程序需要在流历史记录上运行,RabbitMQ也可以与No-SQL一起使用,如果您的应用程序需要使用Infinite Queue,则还可以使用LevelDB插件。

RabbitMQ能做什么?

消息传递允许应用程序进行连接和扩展。应用程序可以作为大型应用程序的一部分相互连接,也可以与最终用户的设备和数据相互连接。RabbitMQ是消息传递代理-消息传递的中间实体。它为您的应用程序发送和接收消息提供了一个通用平台,并为您的消息在被使用之前一直存在提供了安全的地方。

它具有以下功能:

用RabbitMQ做
  • 可靠性:它提供了许多功能,这些功能使您可以权衡性能与可靠性,交付确认,包括持久性,高可用性和发布确认。
  • 灵活的路由:消息到达交换机,然后路由到队列。RabbitMQ为各种用例提供​​了许多预定义的交换。您可以通过将交换绑定在一起或将自己的交换类型定义为插件来定义更复杂的路由。
  • 群集:可以将本地网络上的两个或更多RabbitMQ服务器群集在一起,从而形成一个大型代理。
  • 联合:在某些使用情况下,服务器的连接需要不可靠且松散,而不是集群允许的。RabbitMQ为此类情况提供了联合模型。
  • 高可用性队列:队列可以在群集的多个节点之间复制,即使在硬件故障的情况下,也可以确保消息是安全的。
  • 多协议: RabbitMQ支持多种消息传递协议。
  • Management-UI: RabbitMQ配备了易于使用的管理UI,可帮助平滑控制和监视代理的各个方面。
  • 跟踪:万一系统出现异常,RabbitMQ提供跟踪支持,以找出破坏系统的原因。
  • 插件系统: RabbitMQ附带各种插件,您也可以编写自定义插件以满足要求。

RabbitMQ支持复杂路由,因此在行业中得到了广泛使用。它已被JP Morgan,NASA(适用于星云云计算)和Google等许多大公司/组织采用。实际上,它还在印度的Aadhar项目中得到了使用,该项目是世界上最大的生物特征数据库。

本站文章禁止转载,违者必究
阅 124
0

RabbitMQ是使用最广泛的开源消息代理之一。它最初基于高级消息队列协议(AMQP)。后来,对它进行了修改, […]

湘公网安备 43011102001693号

    湘ICP备19003021号-1