RabbitMQ(一)-概念

       RabbitMQ基于Erlang语言和AMQP高级消息队列协议,是一种开源的消息代理和队列服务器。

       AMQP协议模型 生产者只需要把消息放到虚拟主机的队列中,而不用关心是哪个队列,而消费者只需要监听队列,从队列中获取消息。架构图如下:

                           

    关于图中的概念解释:

           Server:又称Broker,接收客户端的连接,实现AMQP实体服务

           Connection:连接,应用程序与Broker的网络连接

           Channel:网络信道,几乎所有的操作都在Channer中进行,Channel是进行消息读写的通道,客户端可建立多个

                            Channel,每个Channel代表一个会话任务。

           Message:消息,服务器和应用程序之间传送的数据,由Properties和Body组成。Properties可以对消息进行修饰,比如                                 消息的优先级、延迟等高级特性;Body则是消息体内容。

           Virtual host:虚拟地址,用于进行逻辑隔离(隔离不同的项目),最上层的消息路由。一个Virtual Host里面可以有若干个                                 Exchange和Queue,同一个Virtual Host里面不能有相同名称的Exchange或Queue,生产者先把消息扔到                                     Virtual Host。 

            Exchange:交换机,接收消息,根据路由键转发消息到绑定的队列

            Binding:Exchange和Queue之间的虚拟连结,bingding中可包含Routing key

            Routing key:一个路由规则,虚拟机可用它来确定如何路由一个消息

            Queue:也称Message Queue 消息队列,保存消息并转发给消费者。

     如下图为消息流通图:生产者把消息扔给Virtual Host,并指定好Exchange和Routing Key,消费者只需要从队列中取消息即可

                                  

 

             

           
 

    

发布了17 篇原创文章 · 获赞 12 · 访问量 8315

猜你喜欢

转载自blog.csdn.net/Sun_Dean/article/details/103647734