RabbitMQ是實現了AMQP協議的消息隊列框架,基于Erlang這個最正確的并發處理語言基礎開發。支持消息持久化,高并發。由淘寶運用與實踐,推薦使用。
Reference 參考
https://github.com/rabbitmq ?RabbitMQ github地址
http://www.rabbitmq.com/install-rpm.html ?Rabbit官方安裝文檔
http://www.linuxidc.com/Linux/2014-12/110449.htm Rabbit安裝文檔
本機環境:Centos7,Erlang 19
以下是具體的安裝操作
先參考官網安裝文檔,Installing on RPM-based Linux(RHEL,CentOS,Fedora,openSUSE)
由于我的Centos版本是7.x選擇對應的rpm(6.x與7.x是有區別的)
#cd /usr/local
安裝Erlang環境
由于以前安裝EMQTT時也安裝了erlang環境,結果就沒安裝,之后報了錯,現在重新安裝一次
#wget https://github.com/Gsantomaggio/esl-erlang-compat/releases/download/1.4.0/esl-erlang-compat-19.0-1.noarch.rpm
#yum install esl-erlang-compat-19.0-1.noarch.rpm
安裝RabbitMQ
下載rpm文件
#wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
下載key
#rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
Erlang環境ok后就可以安裝rabbitmq
#yum install rabbitmq-server-3.6.10-1.el7.noarch.rpm
如果順利的話,就基本成功了。
啟動服務
#service rabbitmq-server start | stop | restart ? ?//提供了start,stop,restart
#chkconfig rabbitmq-server on ?//開機啟動,可不設置
配置
#find / -name "rabbitmq.config.example" ? //查找rabbitmq的配置文件
搜索結果/usr/share/doc/rabbitmq-server-3.6.10/rabbitmq.config.example
將該文件拷貝到/etc/rabbitmq下并重命名rabbitmq.config
#mv /usr/share/doc/rabbitmq-server-3.6.10/rabbitmq.config.example ?/etc/rabbitmq/rabbitmq.config
修改rabbitmq.config,開啟遠程用戶訪問 vi命令打開省略
搜索到%%{loopback_users,[]}, ?去掉%%和最后的逗號并保存
添加rabbitmq management插件
#rabbitmq-plugins enable rabbitmq_managerment
#service rabbitmq-server restart
我的防火墻沒限制端口,如果限制了端口的,請打開15672和5672
#iptables -I INPUT -p tcp -m tcp --dport 15672 -j ACCEPT
#iptables -I INPUT -p tcp -m tcp --dport 5672 -j ACCEPT
#service iptables save
#service iptables restart
//centos7沒有iptables,可以額外安裝iptables
rabbbitmq啟用了管理插件后,就可以使用web訪問rabbit。
http://ip:15672 ? 默認用戶名密碼都是guest
rabbitmqctl? stop/status
rabbitmq3.6.12
erlang和rabbitmq相關rpm包可以在 https://packagecloud.io/rabbitmq 下載相關rpm包
#yum install xxx.rpm? //完成包安裝
最好添加/etc/yum.repos.d/rabbbitmq-erlang.repo
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
一般在rabbitmq啟動后,會在${home}或者/var/lib/rabbitmq下生成一個.erlang.cookie的文件,由于erlang的all or no的問題,所以.erlang.cookie下的文件需要一致,不然授權會有問題..
#rabbitmqctl add_user? user_superadmin? passwd_superadmin? ?//添加一個管理員賬號
#rabbitmqctl set_user_tags user_superadmin? administrator? ?//設置用戶的標簽..
#rabbitmqctl set_permissions -p /? user_superadmin?".*" ".*" ".*"? //設置virtural hosts