消息中间件之AMQP

2019-03-05  本文已影响0人  林亚希

AMQP

开放标准,支持不同语言和不同的产品

AMQP与JMS区别

AMQP与JMS区别

AMQP模型

AMQP模型

1. 发布者:消息的创建者,发送到amqp的消息中间件
2. 消费者:连接到amqp的消息中间件,订阅到队列上,进行消息的消费。分为持续订阅(basicConsumer)和单条订阅(basicGet)
3. 消息:包括有效载荷和标签。有效载荷就是要传输的数据。标签描述有效载荷的属性,rabbitmq用标签来决定谁获得当前消息。消费者只能拿到有效载荷。
4. 信道:虚拟的连接,建立在真实的tcp连接之上的。信道的创建没有限制的。

交换器、队列、绑定、路由键

队列通过路由键(routing key,某种确定的规则)绑定到交换器,生产者把消息发送到了交换器,交换器根据绑定的路由键将消息路由到特定的队列,订阅了队列的消费者进行接收。

消费者在声明队列时,指定autoAck参数,true自动确认,false时rabbitmq会等到消费者显示的发回一个ack信号才会删除消息。
autoAck=false,有足够时间让消费者处理消息,直到消费者显示调用basicAck为止。Rabbitmq中消息分为了两部分:1、等待投递的消息;2、已经投递,但是还没有收到ack信号的。如果消费者断连了,服务器会把消息重新入队,投递给下一个消费者。未ack的消息是没有超时时间的。

四种交换器:

四种交换器

direct,fanout,topic,headers

上一篇 下一篇

猜你喜欢

热点阅读