RabbitMQ 這個消息中間件,其實公司最近的項目中有用到,但是一直沒有系統的整理,最近看完了《RabbitMQ實戰 高效部署分布式消息隊列》這本書,所以順便寫寫。
那么關於 RabbitMQ 是什么?大家可以首先參考官網:http://www.rabbitmq.com 。這里我大概的介紹一下:
RabbitMQ 是一個在AMQP協議標准基礎上完整的,可服用的企業消息系統。它遵循Mozilla Public License開源協議,采用 Erlang 實現的工業級的消息隊列(MQ)服務器。
①、AMQP,即Advanced Message Queuing Protocol,一個提供統一消息服務的應用層標准高級消息隊列協議,是應用層協議的一個開放標准,為面向消息的中間件設計。基於此協議的客戶端與消息中間件可傳遞消息,並不受客戶端/中間件不同產品,不同的開發語言等條件的限制。關於 AMQP 的介紹可以參考:https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol,還有官方網站:http://www.amqp.org/confluence/display/AMQP/Advanced+Message+Queuing+Protocol。
②、開源。
③、使用 Erlang 語言編寫,這是一種面向並發的編程語言,目的是創造一種可以應對大規模並發活動的編程語言和運行環境。
接下來我們介紹如何在 Linux 系統上安裝 RabbitMQ。
1、安裝 Erlang
就想我們編寫Java引用程序需要安裝 JDK一樣,安裝 RabbitMQ ,我們也需要安裝 Erlang 。
①、下載 erlang 安裝包
將安裝包下載到 /home/erlang 目錄下。
1 wget http://www.erlang.org/download/otp_src_R16B02.tar.gz
②、解壓
1 tar -zxvf otp_src_R16B02.tar.gz
③、編譯安裝
首先進入解壓的文件目錄,然后安裝如下插件
接着設置編譯目錄為 /usr/local/erlang
最后執行 make 和 make install 命令即可。
全部命令步驟為:
1、cd otp_src_R16B02 2、yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel 3、./configure --prefix=/usr/local/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll 4、make 5、make install
④、配置環境變量
通過 vim /etc/profile 命令進入文件,然后敲入如下代碼
最后通過如下命令使環境變量生效:
source /etc/profile
⑤、驗證
在任意目錄下輸入 erl 命令,出現如下情況,則 erlang 安裝成功:
2、安裝 RabbitMQ
①、下載安裝包
創建 /home/rabbitmq 目錄,在該目錄下執行如下命令:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.5/rabbitmq-server-3.1.5.tar.gz
②、解壓
tar -zxvf rabbitmq-server-3.1.5.tar.gz
③、編譯安裝
1 cd rabbitmq-server-3.1.5 2 yum -y install xmlto 3 make 4 make install TARGET_DIR=/opt/mq/rabbitmq SBIN_DIR=/opt/mq/rabbitmq/sbin MAN_DIR=/opt/mq/rabbitmq/man
將rabbitmq編譯到/opt/mq/rabbitmq目錄。
④、開啟 web 插件
1 cd /opt/mq/rabbitmq/sbin 2 mkdir /etc/rabbitmq/ 3 ./rabbitmq-plugins enable rabbitmq_management
3、啟動和關閉RabbitMQ
1 啟動監控管理器:rabbitmq-plugins enable rabbitmq_management 2 關閉監控管理器:rabbitmq-plugins disable rabbitmq_management 3 啟動rabbitmq:rabbitmq-service start 4 關閉rabbitmq:rabbitmq-service stop 5 查看所有的隊列:rabbitmqctl list_queues 6 清除所有的隊列:rabbitmqctl reset 7 關閉應用:rabbitmqctl stop_app 8 啟動應用:rabbitmqctl start_app
通過第 3 條命令啟動rabbitmq 服務,然后在瀏覽器上輸入
ip:15672
出現如下界面即可。其中 ip 是安裝 rabbitmq 的機器ip地址,15672 是rabbitmq的默認端口。
ps:如果不能打開如下畫面,可能是防火牆沒有關閉。centos6 關閉防火牆命令:
關閉命令: service iptables stop
永久關閉防火牆:chkconfig iptables off
查看防火牆狀態:service iptables status
默認用戶名和密碼都是 guest。我們可以用 guest 登錄: