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
yum 安装rabbitMQ
环境: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服务:
前台运行:rabbitmq-server start (用户关闭连接后,自动结束进程)
3.安装插件
遇到问题参考: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、添加远程管理账户
{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 ".*" ".*" ".*"
6. 用户管理
用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。
相应的命令
(1) 新增一个用户
rabbitmqctl add_user Username Password
(2) 删除一个用户
rabbitmqctl delete_user Username
(3) 修改用户的密码
rabbitmqctl change_password Username Newpassword
(4) 查看当前用户列表