概念: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