最近公司在用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 这时候会调出来一个网页如下:
rabbitmqctl add_user admin admin
设置admin用户的管理员权限
rabbitmqctl set_user_tags admin administrator
显示用户列表和权限
rabbitmqctl list_users
好了,到此结束。过几天可能会写一些mqtt推送的东西...有兴趣的童鞋欢迎一起探讨