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版本的对应关系

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

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

备注:上述警告可忽略
(5)测试RabbitMQ是否正常工作:# ss -tnl | grep 5672

(6)安装插件:
# rabbitmq-plugins enable rabbitmq_mqtt

# rabbitmq-pluginsenable rabbitmq_management

(7)再次测试RabbitMQ是否正常工作:# ss -tnl | grep 5672

(8)创建新账号admin,密码123456,用于登录Web管理界面:# rabbitmqctl add_user admin 123456

备注:由于guest账号具有所有操作权限,并且又是默认账号,所以出于安全因素的考虑,guest账号只能通过localhost登录使用,并建议修改guest账号的密码(默认密码guest)或创建其它账号管理使用RabbitMQ
(9)将admin的用户角色设置为administrator:#rabbitmqctl set_user_tags admin administrator

(10)为admin赋权:# rabbitmqctlset_permissions -p / admin ‘.*‘ ‘.*‘ ‘.*‘

(11)登录Web管理界面:浏览器中输入192.168.1.145:15672


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
安装完成后,运行:

安装成功。
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.youkuaiyun.com/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