美文网首页
AMQP高级消息队列协议

AMQP高级消息队列协议

作者: iamrenpeng | 来源:发表于2018-05-28 15:07 被阅读107次

    AMQP高级消息队列协议

    目的:

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

    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高级消息队列协议

          本文链接:https://www.haomeiwen.com/subject/vbdgjftx.html