RabbitMQ学习系列(一): 介绍

  1. 介绍html

      RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue )协议的开源实现。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面都很是的优秀。是当前最主流的消息中间件之一。安全

      RabbitMQ的官网:http://www.rabbitmq.com服务器

 

  2. AMQP架构

    AMQP,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,一样,消息使用者也不用知道发送者的存在。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。分布式

 

  3. 系统架构spa

       

  消息队列的使用过程大概以下:设计

    (1)客户端链接到消息队列服务器,打开一个channel。htm

    (2)客户端声明一个exchange,并设置相关属性。中间件

    (3)客户端声明一个queue,并设置相关属性。blog

    (4)客户端使用routing key,在exchange和queue之间创建好绑定关系。

    (5) 客户端投递消息到exchange。exchange接收到消息后,就根据消息的key和已经设置的binding,进行消息路由,将消息投递到一个或多个队列里。

 

    以下图所示:AMQP 里主要要说两个组件:Exchange 和 Queue

    绿色的 X 就是 Exchange ,红色的是 Queue ,这二者都在 Server 端,又称做 Broker ,

    这部分是 RabbitMQ 实现的,而蓝色的则是客户端,一般有 Producer 和 Consumer 两种类型。

 

  4. 几个概念

    P: 为Producer,数据的发送方。

    C:为Consumer,数据的接收方。

    Exchange:消息交换机,它指定消息按什么规则,路由到哪一个队列。

    Queue:消息队列载体,每一个消息都会被投入到一个或多个队列。

    Binding:绑定,它的做用就是把exchange和queue按照路由规则绑定起来。

    Routing Key:路由关键字,exchange根据这个关键字进行消息投递。

    vhost:虚拟主机,一个broker里能够开设多个vhost,用做不一样用户的权限分离。

    channel:消息通道,在客户端的每一个链接里,可创建多个channel,每一个channel表明一个会话任务。

 

   PS: RabbitMQ 的一些基本的概念,就介绍完了,虽然都是些概念,可是了解他的一些原理,仍是很重要的,特别是exchange 和 路由的概念和做用。接下来会具体介绍他的安装和使用。

   查看RabbitMQ 系列其余文章,http://www.cnblogs.com/zhangweizhong/category/855479.html

相关文章
相关标签/搜索