最近公司在用mqtt协议做推送,所以研究了下RabbitMq,据说这个可以支持百万级的并发量,查了一些资料,发现有的地方还是存在坑的,所以把这些坑列出来,以防后面的童鞋也踩这个坑。(主要针对刚接触Linux的小白来说,大神勿喷)
首先附上RabbitMq的官网:
http://www.rabbitmq.com/
不了解RabbitMq是什么东西的先自行了解一下。英语不错的同学还是推荐阅读英文资料,官方的文档比网络上文档更为准确。
我是用的阿里云的centos7.2的服务器搭建rabbitmq的服务器,然后用的是Xshell5,大家也可以在linux windows等系统搭建,此处不做描述!
进入正题:
1.先安装 Erlang
有 EPEL 源的情况(需要安装的内容较多,宽带要能跟上):
sudo yum install erlang
在github上还提供了另一种方式的安装,想了解的移步github搜索rabbitmq,我是用的第一种。
2.安装 RabbitMQ
首先安装下面这个要引入的依赖:
rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
然后下载rabbit,注意这个wget命令是下载链接
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
我是linux小白,没仔细看linux命令就开始搞了,这个命令只是下载rabbitmq,并不进行安装,在xshell上通过ll命令查看,下载完成有一个rpm文件;
然后用下面的命令进行安装:
yum install -y rabbitmq-server-3.6.5-1.noarch.rpm
启动服务:
----->先看下自己的主机名:hostname,比如我的主机名是:test;
----->先修改一下 host 文件:vim /etc/hosts,添加一行:127.0.0.1 test(必须这样做),这里顺便说一下vim的安装命令:
yum install vim-enhanced
注意:如果下面的命令执行失败,自己去检查一下是否安装成功rabbitmq
----->启动:service rabbitmq-server start
,启动一般都比较慢,所以别急
----->停止:service rabbitmq-server stop
----->重启:service rabbitmq-server restart
---- >设置开机启动:chkconfig rabbitmq-server on
3.配置
查找默认配置位置:
find / -name "rabbitmq.config.example"
,
我这边搜索结果是:
/usr/share/doc/rabbitmq-server-3.6.5/rabbitmq.config.example
复制默认配置的结果
cp /usr/share/doc/rabbitmq-server-3.6.5/rabbitmq.config.example /etc/rabbitmq/
修改配置文件名:
cd /etc/rabbitmq ; mv rabbitmq.config.example rabbitmq.config
编辑配置文件,开启用户远程访问:
vim rabbitmq.config
在 64 行,默认有这样一句话:
%% {loopback_users, []},
,注意,该语句最后有一个逗号,等下是要去掉的
我们需要改为:
{loopback_users, []}
开启 Web 界面管理:
rabbitmq-plugins enable rabbitmq_management
重启 RabbitMQ 服务:
service rabbitmq-server restart
开放防火墙端口:
sudo iptables -I INPUT -p tcp -m tcp --dport 15672 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 5672 -j ACCEPT
我看到网上有的资料是说接下来用这两句命令,
sudo service iptables save
sudo service iptables restart
我没有成功,然后我直接把防火墙关闭了,使用如下命令:
systemctl stop firewalld.service
systemctl disable firewalld.service
这个时候浏览器访问:
http://你的主机名:15672
这时候会调出来一个网页如下:
这个时候我试了下guest帐号是不能登录的,然后使用如下命令添加一个账户:
增加用户admin,名字可以自己定义
rabbitmqctl add_user admin admin
设置admin用户的管理员权限
rabbitmqctl set_user_tags admin administrator
显示用户列表和权限
rabbitmqctl list_users
好了,到此结束。过几天可能会写一些mqtt推送的东西...有兴趣的童鞋欢迎一起探讨