MQ:Message Queue,消息队列,是一种应用程序对另一种应用程序的通信方法。应用程序通过读写出入队列的消息来通信
1、 演示环境:
IP:192.168.1.145
操作系统:CentOS 6.9 x86_64
Erlang版本:otp_src_20.1.tar.gz,下载地址http://erlang.org/download/
RabbitMQ版本:rabbitmq-server-generic-unix-3.6.12.tar.xz
下载地址http://www.rabbitmq.com/releases/rabbitmq-server/
附:RabbitMQ和Erlang版本的对应关系
![1.jpg 技术分享](https://i-blog.csdnimg.cn/blog_migrate/9367e960b8ef867cd8142f66a29d36bc.jpeg)
2、 服务器时间校对
3、 配置epel源
4、 安装依赖软件包:# yum -y install make gcc gcc-c++ zlib zlib-devel ncurses-develkernel-devel m4 openssl openssl-devel unixODBC-devel libgnomeui-develmesa-libGL-devel mesa-libGLU-devel java-devel fop
5、 编译安装wxWidgets(Erlang所依赖):
# tar -xf wxWidgets-3.0.3.tar.bz2 -C /usr/src
# cd /usr/src/wxWidgets-3.0.3
# ./configure --with-opengl --enable-debug
# make && make install
# ldconfig
6、 安装配置Erlang(RabbitMQ所依赖):
(1)编译安装Erlang:
# tar -xf otp_src_20.1.tar.gz -C /usr/src
# cd /usr/src/otp_src_20.1
# ./configure --prefix=/usr/local/erlang --enable-dirty-schedulers --enable-kernel-poll--enable-sctp --enable-hipe --enable-fips --with-termcap --with-javac--with-ssl
# make && make install
(2)配置Erlang环境变量:
# vim /etc/profile.d/erlang.sh --> export PATH=/usr/local/erlang/bin:$PATH
# . /etc/profile.d/erlang.sh
(3)测试Erlang是否正常工作:# erl
![2.jpg 技术分享](https://i-blog.csdnimg.cn/blog_migrate/45fdfceed56801cb111745c3d8bbcb36.jpeg)
7、 安装配置RabbitMQ:
(1)安装RabbitMQ:
# tar -xf rabbitmq-server-generic-unix-3.6.12.tar.xz -C /usr/local
# cd /usr/local
# ln -sv rabbitmq_server-3.6.12/ rabbitmq
(2)配置RabbitMQ环境变量:
# vim /etc/profile.d/rabbitmq.sh --> export PATH=/usr/local/rabbitmq/sbin:$PATH
# . /etc/profile.d/rabbitmq.sh
(3)配置RabbitMQ的man帮助文档:
# vim /etc/man.config,新增如下代码:
MANPATH /usr/local/rabbitmq/share/man
(4)后台运行RabbitMQ:# rabbitmq-server -detached
![3.jpg 技术分享](https://i-blog.csdnimg.cn/blog_migrate/bf02210332fe9ee961f9326feb56e6a0.jpeg)
备注:上述警告可忽略
(5)测试RabbitMQ是否正常工作:# ss -tnl | grep 5672
![4.jpg 技术分享](https://i-blog.csdnimg.cn/blog_migrate/0ba914204315b6cf1be7b58b2ab3dca3.jpeg)
(6)安装插件:
# rabbitmq-plugins enable rabbitmq_mqtt
![5.jpg 技术分享](https://i-blog.csdnimg.cn/blog_migrate/e2bf80e08240e382c3436dd619a2e6c2.jpeg)
# rabbitmq-pluginsenable rabbitmq_management
![6.jpg 技术分享](https://i-blog.csdnimg.cn/blog_migrate/112863934d2fe259835d14f9cfa9f1d1.jpeg)
(7)再次测试RabbitMQ是否正常工作:# ss -tnl | grep 5672
![7.jpg 技术分享](https://i-blog.csdnimg.cn/blog_migrate/c5d5873e1abc2491ee0785b940365d2b.jpeg)
(8)创建新账号admin,密码123456,用于登录Web管理界面:# rabbitmqctl add_user admin 123456
![8.jpg 技术分享](https://i-blog.csdnimg.cn/blog_migrate/a39fab71558349ad0081eac1311bf5a5.jpeg)
备注:由于guest账号具有所有操作权限,并且又是默认账号,所以出于安全因素的考虑,guest账号只能通过localhost登录使用,并建议修改guest账号的密码(默认密码guest)或创建其它账号管理使用RabbitMQ
(9)将admin的用户角色设置为administrator:#rabbitmqctl set_user_tags admin administrator
![9.jpg 技术分享](https://i-blog.csdnimg.cn/blog_migrate/4be84c617d015b2e05ca1e1d09e6269b.jpeg)
(10)为admin赋权:# rabbitmqctlset_permissions -p / admin ‘.*‘ ‘.*‘ ‘.*‘
![10.jpg 技术分享](https://i-blog.csdnimg.cn/blog_migrate/3738e55a0cf685f0ffc5de269c2ba258.jpeg)
(11)登录Web管理界面:浏览器中输入192.168.1.145:15672
![11.jpg 技术分享](https://i-blog.csdnimg.cn/blog_migrate/5669e7f511c4b4c0a29974c91ef32fb6.jpeg)
![12.jpg 技术分享](https://i-blog.csdnimg.cn/blog_migrate/975f6d2e8578fee488dc833a8fa80be1.jpeg)
8、 RabbitMQ常用操作:
(1)后台运行:# rabbitmq-server -detached
(2)关闭:# rabbitmqctl stop
(3)开启某个插件(需要重启服务):# rabbitmq-plugins enable XXX
(4)关闭某个插件(需要重启服务):# rabbitmq-plugins disable XXX
(5)创建用户:# rabbitmqctl add_user USERNAME PASSWORD
(6)删除用户:# rabbitmqctl delete_user USERNAME
(7)修改指定用户密码:# rabbitmqctl change_password USERNAME NEWPASSWORD
(8)查看当前用户列表:# rabbitmqctl list_users
(9)为指定用户赋权:# rabbitmqctl set_permissions -p / USERNAME ‘.*‘ ‘.*‘ ‘.*‘
(10)查看所有用户权限信息:# rabbitmqctl list_permissions
(11)查看指定用户权限信息:# rabbitmqctl list_user_permissions USERNAME
(12)清除指定用户权限信息:# rabbitmqctl clear_permissions USERNAME
(13)获取当前服务器状态信息:# rabbitmqctl status
环境:linux centos6.5
1.安装erlang
下载rpm仓库:wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
安装rpm仓库
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
安装erlang
yum -y install erlang
安装完成后,运行:
![](https://i-blog.csdnimg.cn/blog_migrate/47266c138e9dc29a642b70a85e5ca8d6.png)
安装成功。
2.安装RabbitMQ
下载RabbitMQ的rpm:wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el6.noarch.rpm
yum -y install rabbitmq-server-3.6.6-1.el6.noarch.rpm
注:
如果报:Requires: socat
更新源wget –no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo -O /etc/yum.repos.d/convirt.repo
yum install socat
启动rabbitmq服务:
前台运行:rabbitmq-server start (用户关闭连接后,自动结束进程)
后台运行:rabbitmq-server -detached
3.安装插件
启动web管理界面
rabbitmq-plugins enable rabbitmq-management
增加访问用户,默认用户guest只能本地访问。
rabbitmqctl add_user admin 123456
设置角色:
rabbitmqctl set_user_tags admin administrator
设置默认vhost("/")访问权限
rabbitmqctl set_permissions -p "/" admin "." "." ".*"
浏览器访问:http://IP:15672
用户名admin,密码123456进行登录
遇到问题参考:http://blog.csdn.net/qq315737546/article/details/53105418
4、好了,到这里rabbitmq已经配置好了,可以启动了:
- 我们再来查看看一下rabbitmq的默认监听端口5672:
- #netstat -tnlp|grep 5672
- 最好我们就可以在浏览器上输入http://ip:15672/登录管理界面了:
- 使用登录的名户名和密码默认都算guest,登录后的页面如下:
- 另一台机器访问rabbitmq(就是本机之外),需要打开15672端口
- #vi /etc/sysconfig/iptables 把15672端口加进去。然后重启service iptables restart
5、添加远程管理账户
如果要从远程登录怎么做呢?处于安全考虑,
guest这个默认的用户只能通过http://localhost:15672来登录,其他的IP无法直接用这个guest帐号。这里我们可以通过配置文件来实现从远程登录管理界面,只要编辑/etc/rabbitmq/rabbitmq.config文件(没有就新增),添加以下配置就可以了。
[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["asdf"]}]}
].
现在添加了一个新授权用户asdf,可以远程使用这个用户名。记得要先用命令添加这个命令才行:
$ cd /usr/lib/rabbitmq/bin/
#用户名与密码
$ sudo rabbitmqctl add_user asdf 123456
#用户设置为administrator才能远程访问
$ sudo rabbitmqctl set_user_tags asdf administrator
$ sudo rabbitmqctl set_permissions -p / asdf ".*" ".*" ".*"
其实也可以通过管理平台页面直接添加用户和密码等信息。
如果还不能远程访问或远程登录检查是不是5672, 15672端口没有开放!!!!!!
6. 用户管理
用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。
相应的命令
(1) 新增一个用户
rabbitmqctl add_user Username Password
(2) 删除一个用户
rabbitmqctl delete_user Username
(3) 修改用户的密码
rabbitmqctl change_password Username Newpassword
(4) 查看当前用户列表
rabbitmqctl list_users