RabbitMQ笔记-基础

2018-02-01  本文已影响0人  北山学者

AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,是一个异步消息传递所使用的应用层协议规范,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。

AMQP客户端能够无视消息来源任意发送和接受消息,Broker提供消息的路由、队列等功能。Broker主要由Exchange和Queue组成:Exchange负责接收消息、转发消息到绑定的队列;Queue存储消息,提供持久化、队列等功能。AMQP客户端通过Channel与Broker通信,Channel是多路复用连接中的一条独立的双向数据流通道。

RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

队列逻辑:
创建连接–>创建channel–>创建交换机–>创建队列–>绑定交换机/队列/路由键–>接收消息

ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。

1、Connection是RabbitMQ的socket链接,它封装了socket协议相关部分逻辑。
2、ConnectionFactory为Connection的制造工厂。
3、Channel是我们与RabbitMQ打交道的最重要的一个接口,我们大部分的业务操作是在Channel这个接口中完成的,包括定义Queue、定义Exchange、绑定Queue与Exchange、发布消息等。

Queue(队列)是RabbitMQ的内部对象,用于存储消息。

1、RabbitMQ中的消息都只能存储在Queue中,生产者生产消息并最终投递到Queue中,消费者可以从Queue中获取消息并消费。
2、多个消费者可以订阅同一个Queue,这时Queue中的消息会被平均分摊给多个消费者进行处理,而不是每个消费者都收到所有的消息并处理

参考
1、RabbitMQ-从基础到实战(1)— Hello RabbitMQ
2、RabbitMQ进程结构分析与性能调优
3、如何保证RabbitMQ的消息不丢失及其背后的原理
4、RabbitMQ的应用场景以及基本原理介绍
5、RabbitMQ基础概念详细介绍
6、RocketMQ与kafka对比(18项差异)

上一篇下一篇

猜你喜欢

热点阅读