RabbitMQ 入门:1. Message Broker(消息代理)

MessageBroker作为中介程序,负责在发送方和接收方之间转化和路由消息,允许不同协议间的通信。RabbitMQ是实现AMQP协议的消息代理,它在客户端和服务器之间提供解耦,支持服务器的扩展和容错。Messagebroker的存在解决了系统扩展性和高可用性的问题,确保数据传输的可靠性,常用于分布式应用架构中。
摘要由CSDN通过智能技术生成

Message Broker(消息代理)

维基百科对 Message Broker 的定义是:Message broker是一种中介程序模块,它把消息从发送方的正式消息传递协议转化为接收方的正式消息传递协议。

这个定义略繁琐,下面看看 RabbitMQ 官网对 Message broker 的定义:

Message broker 接收来自发布者的消息并将其路由到消费者。

 

上面两个定义说的都是同一件事情,但是 RabbitMQ 官网的定义里缺少了“转换”这部分。

 

RabbitMQ 实现了一个加  AMQP(Advanced Message Queuing Protocol)的协议。

AMQP 如同互联网的 HTTP 协议,它更注重于如何传输数据,并不关心发送的数据是什么。这也就意味着需要消息的发送者和接收者来协调消息的格式。

 

为什么需要 Message broker?

看下图,有这样一个应用,客户端需要与服务器进行通信,传递数据。最简单的情况就是客户端通过HTTP 类协议直接与服务器连接,并发送数据。

目前一切都很简单明了。

但是,如果服务器因为维护或其它原因发生了停机,或者你想对其横向扩展,添加更多的服务器来进行响应,那么问题就来了:客户端目前是与这台服务器紧密的耦合在一起了,而随着系统的增长和进化,这种紧耦合就开始让人头疼。

 

如果,我们在客户端与服务器之间放置一个 Message broker,那么情况就不一样了:

客户端首先将数据发送给 Message broker。Message broker 会对数据进行检验,并将其发送给服务器。

但在这种简单的情景下,感觉好像没带来什么好处。

但是,Message broker 可以通过简单的设置来允许多种场景,从而让后端服务器的横向扩展或停机维护等工作变得轻松,并且客户端并不会感知到任何的变化。

这种解耦的架构在分布式应用中非常的常见,这意味着一切所唯一依赖要求可用的东西就是 Message broker。

而因为 Messagebroker 唯一的工作就是传输数据,也没有必要经常对其进行改动,所以它是一个相对安全可依赖的组件。

 

对于像 RabbitMQ 这样可以设置集群来支持高可用的 Message broker,更是这样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值