AMQP高级消息队列协议

AMQP高级消息队列协议

目的:

amqp出现之前,有很多的消息中间件,各个消息中间件的接口协议不一样,客户端需要根据不同的消息中间件接口,编写不同的逻辑,这就造成了应用与中间件的耦合,限制产品的选择。为了统一消息中间件的接口,就出现了amqp。

AMQP高级消息队列协议_第1张图片
amqp架构

主要概念:

message:由header和body组成,body存放的是二进制的消息。header主要存放的是routing key,告诉broker把消息发到哪个queue。

exchange:接收消息生产者(Message Producer)发送的消息根据不同的路由算法将消息发送往Message queue。exchange里有一张路由表,这张表里记录着每个queue接受哪种消息。根据routing key和Bingdingkey之间的关系,发送到某个queue。常用的类型有:direct (点对点), topic (发布-订阅) 、fanout (广播)。

例如topic

routing keyBingdingkey    queue

topic1   topic1--queue1    queue1

topic2   topic2--queue2    queue2

topic3   topic3--queue3     queue3

queue:将消息转发到consumer。

Binding:建立exchange和queue的关联。将queue接受哪种消息的条件绑定到Exchange,这个条件叫做bingding key.

消息发送和接收过程

生产者将消息发送到broker,exchange根据消息头中的路由key(routing key)到路由表里查询对应的binding,然后把消息发送到对应的message queue,消费者从queue中读取消息。

你可能感兴趣的:(AMQP高级消息队列协议)