參考資料:http://blog.csdn.net/yunfeng482/article/details/72853983java
1、rabbitmq簡介node
MQ全稱爲Message Queue, 消息隊列(MQ)是一種應用程序對應用程序的通訊方法。應用程序經過讀寫出入隊列的消息(針對應用程序的數據)來通訊,而無需專用鏈接來連接它們。消息傳遞指的是程序之間經過在消息中發送數據進行通訊,而不是經過直接調用彼此來通訊,直接調用一般是用於諸如遠程過程調用的技術。排隊指的是應用程序經過 隊列來通訊。隊列的使用除去了接收和發送應用程序同時執行的要求。其中較爲成熟的MQ產品有IBM WEBSPHERE MQ等等。python
RabbitMQ是一個在AMQP基礎上完成的,可複用的企業消息系統。他遵循Mozilla Public License開源協議。c++
2、安裝git
1. 依賴環境的安裝。github
[root@yeebian ~]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC unixODBC-devel httpd python-simplejson
2. erlang語言環境的安裝(rabbitMq是用erlang分佈式語言開發的)shell
三種方法安裝:編譯安裝,rpm安裝,yum安裝。我這裏下載的rpm包安裝的。json
wget http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el6.x86_64.rpm rpm -ivh erlang-18.1-1.el6.x86_64.rpm
erlang語言編譯配置選項:vim
–prefix 指定安裝目錄
–enable-smp-support啓用對稱多處理支持(Symmetric Multi-Processing對稱多處理結構的簡稱)centos
–enable-threads啓用異步線程支持
–enable-sctp啓用流控制協議支持(Stream Control Transmission Protocol,流控制傳輸協議)
–enable-kernel-poll啓用Linux內核poll
–enable-hipe啓用高性能Erlang –with-ssl 啓用ssl包 –without-javac
不用java編譯
配置erlang環境變量:
vim /etc/profile export PATH=$PATH:/usr/lib64/erlang/bin/ #erlang安裝路徑 source /etc/profil
測試erlang安裝是否成功:
[root@yeebian ~]# erl Erlang/OTP 17 [erts-6.2] [source] [smp:2:2] [async-threads:10] [kernel-poll:false] Erlang/OTP 18 [erts-7.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] Eshell V7.1 (abort with ^G) #erlang版本號
3. 安裝socat包
安裝socat依賴包,不然在安裝rabbitmq時會出現報錯信息以下:
[root@yeebian ~]# rpm -ivh rabbitmq-server-3.6.6-1.el6.noarch.rpm warning: rabbitmq-server-3.6.6-1.el6.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY error: Failed dependencies: erlang >= R16B-03 is needed by rabbitmq-server-3.6.6-1.el6.noarch socat is needed by rabbitmq-server-3.6.6-1.el6.noarch
yum安裝socat:
[root@yeebian ~]# yum -y install socat Loaded plugins: fastestmirror Setting up Install Process Loading mirror speeds from cached hostfile * base: mirrors.163.com * extras: mirrors.163.com * updates: mirrors.zju.edu.cn No package socat available. Error: Nothing to do
此時會報錯沒有socat包或是找不到socat包,解決方法安裝centos的epel的擴展源
[root@yeebian ~]# yum -y install epel-release [root@yeebian ~]# yum -y install socat #從新安裝socat
4. 安裝rabbitmq
[root@yeebian ~]# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_11/rabbitmq-server-3.6.11-1.el6.noarch.rpm [root@yeebian ~]# rpm -i –nodeps rabbitmq-server-3.6.6-1.el6.noarch.rpm #不作依賴檢查
生成配置文件
[root@yeebian ~]# cp /usr/share/doc/rabbitmq-server-3.6.6/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
啓動rabbitmq
[root@yeebian ~]# service rabbitmq-server start #報出錯誤信息 Starting rabbitmq-server: rmdir: failed to remove `/var/run/rabbitmq’: Directory not empty FAILED - check /var/log/rabbitmq/startup_{log, _err} rabbitmq-server.
解決方法:
[root@yeebian ~]# ln -s /usr/lib64/erlang/bin/erl /usr/bin/erl #並在/etc/hosts中加入一行:127.0.0.1 主機名
再次啓動rabbitmq:
[root@yeebian ~]# service rabbitmq-server start Starting rabbitmq-server: SUCCESS rabbitmq-server.
成功。
經常使用rabbitMq啓動命令:
service rabbitmq-server start service rabbitmq-server stop service rabbitmq-server status service rabbitmq-server rotate-logs| service rabbitmq-server restart service rabbitmq-server condrestart service rabbitmq-server try-restart service rabbitmq-server reload service rabbitmq-server force-reload ps -ef | grep rabbitmq 查看rabbitMq進程 netstat -anplt | grep LISTEN rabbitmq默認監聽端口15672/5672
開啓管理頁面插件:
[root@yeebian ~]# rabbitmq-plugins enable rabbitmq_management
添加管理員帳號 :
[root@yeebian ~]# rabbitmqctl add_user rabbitadmin 123456 Creating user "rabbitadmin" [root@yeebian ~]# rabbitmqctl set_user_tags rabbitadmin administrator #分配用戶標籤 Setting tags for user "rabbitadmin" to [administrator] [root@yeebian ~]# rabbitmqctl list_users #建立和賦角色完成後查看並確認 Listing users rabbitadmin [administrator] guest [administrator]
登陸rabbitmq管理界面:
瀏覽器輸入地址:http://服務器IP地址:15672/
用戶名密碼:rabbitadmin/123456
自此,整個rabbitmq-server消息中間件就搭建完成了。