RabbitMQ消息队列+安装+工具介绍
1.MQ为Message Queue,消息队列是应用程序和应用程序之间的通信方法
2.
多种开发语言支持,其实就是一个驱动,如连接数据库的mysql驱动,oracle驱动等.
3.
4.采用以下语言开发:
java是面向对象的;c是面向过程的;Erlang是面向并发的;
5.官网
rabbitMQ.com
6.安装
1. 下载
下载地址:http://www.rabbitmq.com/download.html
2. windows下安装
2.1. 安装Erlang
下载:http://www.erlang.org/download/otp_win64_17.3.exe
安装:
1.先安装erlang
2.后安装rabbitMQServer
最好安装在C盘,安装在其他盘服务有可能启动不了.
2.2. 安装RabbitMQ
安装失败原因:
- 推荐使用默认路径安装
- 系统用户名必须是英文
- 计算机名必须是英文
- 系统当前用户必须是管理员
如果安装失败,解决方法:
- 电脑开一个linux虚拟机,安装到虚拟机中
- 使用公用的RabbitMQ服务,在192.168.50.22
启动、停止、重新安装等。
2.3. 启用管理工具
1、 点击
2、 输入命令:
启用enable
rabbitmq-plugins enable rabbitmq_management
3、 在浏览器中输入地址查看:http://127.0.0.1:15672/
4、 使用默认账号登录:guest/ guest
这个账户权限最大.
3. Linux下安装
3.1. 安装Erlang
3.1.1. 添加yum支持
cd /usr/local/src/
mkdir rabbitmq
cd rabbitmq
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
rpm --import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc
sudo yum install erlang
3.2. 安装RabbitMQ
上传rabbitmq-server-3.4.1-1.noarch.rpm文件到/usr/local/src/rabbitmq/
安装:
rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm
3.2.1. 启动、停止
service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server restart
3.2.2. 设置开机启动
chkconfig rabbitmq-server on
3.2.3. 设置配置文件
cd /etc/rabbitmq
cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/
mv rabbitmq.config.example rabbitmq.config
3.2.4. 开启用户远程访问
vi /etc/rabbitmq/rabbitmq.config
注意要去掉后面的逗号。
3.2.5. 开启web界面管理工具
rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart
3.2.6. 防火墙开放15672端口
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
/etc/rc.d/init.d/iptables save
4. 添加用户
4.1. 用户角色
1、 超级管理员(administrator)
可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
2、 监控者(monitoring)
可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
3、 策略制定者(policymaker)
可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
4、 普通管理者(management)
仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
5、 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
4.2. 创建Virtual Hosts
设置权限:
4.3节点
4.3. Ports and contents
5672:amqp协议端口
15672:管理工具端口
25672:集群端口
Java程序交互使用端口:5672