RabbitMQ官方最新版,由 LShift 提供的一個 Advanced Message Queuing Protocol (AMQP) 的開源實現(xiàn),由以高性能、健壯以及可伸縮性出名的 Erlang 寫成,因此也是繼承了這些優(yōu)點。
RabbitMQ詳細介紹
RabbitMQ 是由 LShift 提供的一個 Advanced Message Queuing Protocol (AMQP) 的開源實現(xiàn),由以高性能、健壯以及可伸縮性出名的 Erlang 寫成,因此也是繼承了這些優(yōu)點。
AMQP 里主要要說兩個組件:Exchange 和 Queue (在 AMQP 1.0 里還會有變動),如下圖所示,綠色的 X 就是 Exchange ,紅色的是 Queue ,這兩者都在 Server 端,又稱作 Broker ,這部分是 RabbitMQ 實現(xiàn)的,而藍色的則是客戶端,通常有 Producer 和 Consumer 兩種類型:
RabbitMQ使用教程
1.下載并安裝
2.開啟web頁面管理工具。
lubby@ubuntu:/usr/bin$ rabbitmq-plugins enable rabbitmq_management
這個時候能在安裝的機器上面通過頁面http://localhost:15672 使用默認賬戶guest密碼guest來管理。
3.創(chuàng)建vhost
lubby@ubuntu:/usr/bin$ sudo rabbitmqctl add_vhost finance
二、創(chuàng)建用戶分配權限
如果想要在其他機器上面也能登錄rabbitmq manager頁面需要創(chuàng)建賬號,并且分配權限。
1.創(chuàng)建用戶
lubby@ubuntu:/usr/bin$ sudo rabbitmqctl add_user admin 123456
2.賦予賬戶角色
lubby@ubuntu:/usr/bin$ sudo rabbitmqctl set_user_tags admin administrator
3.賦予用戶權限
lubby@ubuntu:/usr/bin$ sudo rabbitmqctl set_permissions -p finance admin '.*' '.*' '.*'
RabbitMQ分別和生產(chǎn)者,消費者建立TCP鏈接,一個TCP鏈接會被多個channel復用,這樣就可以減少RabbitMQ服務器和連接者的TCP的建立。畢竟TCP鏈接的建立和銷毀很消耗性能。
RabbitMQ中分為exchange,routingkey, queue三個概念。exchange是負責把生產(chǎn)者的消息發(fā)給綁定的queue;queue就是存放消息的隊列,消費者從queue中取數(shù)據(jù);routingkey是exchange和queue綁定名稱,routingkey是標記exchange該把消息轉發(fā)給哪些隊列。多個queue和exchange綁定的routingkey可以一樣。
exchange可以分為direct,fanout,topic,header.其中header基本上很少用到。
direct:消息發(fā)給exchange之后直接被轉發(fā)到所有與其綁定的queue。當生產(chǎn)者發(fā)送的時候指定exchange和routingkey,消息會發(fā)給和指定exchange綁定且指定routingkey的queue。當生產(chǎn)者直接發(fā)送給queue不指定exchange和routingkey則消息會通過默認的direct exchange發(fā)送到queue。
fanout:這個就是類似廣播的交換器,生產(chǎn)者只需發(fā)送給fanout類型的exchange,則所有綁定了該exchange的queue都會收到一份消息,生產(chǎn)者發(fā)送的時候只需指定fanout類型的exchange即可。
topic:可以通過設置的routingkey帶有#或者*來進行匹配。只要生產(chǎn)者指定了routingkey,那么exchange會匹配和queue綁定的routingkey來把消息傳遞給queue。
- PC官方版
- 安卓官方手機版
- IOS官方手機版