概念:html
交换机(exchange type)把消息推送到队列的方法:
python
fanout:不处理路由键,转发到全部绑定的队列上json
direct:处理路由键,必须彻底匹配,即路由键字符串相同才会转发缓存
topic:路由键模式匹配,此时队列须要绑定要一个模式上。符号“#”匹配一个或多个词,符号“*”匹配很少很多一个词。所以“audit.#”可以匹配到“audit.irs.corporate”,可是“audit.*” 只会匹配到“audit.irs”app
消息处理的基本流程tcp
producer:生产者,是消息产生的源头。oop
exchange:交换机,能够理解为具备路由表的路由规则。post
queues:队列,装载消息的缓存容器。spa
consumer:消费者,链接到队列并取走消息的客户端。.net
注释:RabbitMQ消息模型的核心理念是:发布者(producer)不会直接发送任何消息给队列。事实上,发布者(producer)甚至不知道消息是否已经被投递到队列。
发布者(producer)只须要把消息发送给一个交换机(exchange)。交换机很是简单,它一边从发布者方接收消息,一边把消息推送到队列。交换机必须知道如何处理它接收到的消息,是应该推送到指定的队列仍是是多个队列,或者是直接忽略消息。这些规则是经过交换机类型(exchange type)来定义的
channel:通道,amqp支持一个tcp链接上启用多个mq通讯通道,每一个通道均可以被做为通讯流。
binding:绑定,实际上能够理解为交换机的路由规则。每一个消息都有一个称为路由键的属性(routing key),就是一个简单的字符串。一个绑定将【交换机,路由键,消息送达队列】三者绑定在一块儿,造成一条路由规则。
注释: 绑定(binding)是指交换机(exchange)和队列(queue)的关系。能够简单理解为:这个队列(queue)对这个交换机(exchange)的消息感兴趣. 绑定的时候能够带上一个额外的routing_key参数。为了不与basic_publish的参数混淆,咱们把它叫作绑定键(binding key). 绑定键的意义取决于交换机(exchange)的类型。咱们以前使用过的扇型交换机(fanout exchanges)会忽略这个值
图解:
rabbitMQ 很不错的中文介绍: http://rabbitmq-into-chinese.readthedocs.org/zh_CN/latest/tutorials_with_python/[3]Publish_Subscribe/
安装:
rabbitmq
下载地址:
http://www.rabbitmq.com/releases/rabbitmq-server/v3.4.1/rabbitmq-server-3.4.1.tar.gz
一:安装须要的包
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
yum -y install erlang
yum -y install xmlto
yum -y install python-simplejson
yum -y install python
yum -y install zip unzip
二:下载rabbitMQ并安装rabbitmq与插件
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.4.1/rabbitmq-server-3.4.1.tar.gz
tar zxvf rabbitmq-server-3.4.1.tar.gz
make TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/sbin MAN_DIR=/usr/local/rabbitmq/man DOC_INSTALL_DIR=/usr/local/rabbitmq/doc install
rabbitmq 安装 完成 而后添加插件
先建立一个目录: mkdir /etc/rabbitmq/
而后执行命令: /usr/local/rabbitmq/sbin/rabbitmq-plugins enable rabbitmq_management
若是不报错rabbitmq 与 插件就安装好了
三启动 rabbitmq
/usr/local/rabbitmq/sbin/rabbitmq-server & 之后太运行方式启动
启动后本机直接访问http://127.0.0.1:15672 使用guest账号登录便可密码也是guest
若是不是本机直接访问须要修改/usr/local/rabbitmq/ebin/rabbit.app文件里的内容
把 {loopback_users,[<<"guest">>]} 改为 {loopback_users,[]}
而后重启rabbitmq 就能够经过http://IP:15672 访问插件的页面了 初始帐户与密码都是guest
/usr/local/sbin/rabbitmqctl stop 中止
以上文字有拷贝有手打,参考文章以下:
http://valleu87.blog.163.com/blog/static/1967034322013101355739758/
http://my.oschina.net/jackwanger/blog/207898
http://www.cnblogs.com/shanyou/p/3902905.html