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