1、AMQP与JMS
消息队列实现的主流方式有AMQP(应用层标准消息队列协议,标准为消息中间件设计。主要实现中间件有RabbitMQ)、JMS(Sun公司提供的消息统一操作,类似JDBC这种标准。主要实现中间件有ActiveMQ)。
2、安装与启动RabbitMQ
先安装Erlang 。需要注意的是Erlang 版本与RabbitMQ 版本需要匹配(https://www.rabbitmq.com/which-erlang.html),否则会出错。
举例:win系统安装完成后进入 rabbitmq_server\sbin目录,点击rabbitmq-server即可启动。
如图所示,可以通过任务管理器点击服务查看、管理。
在centos中的安装:
1、去官网(https://www.rabbitmq.com/)下载好安装包后上传至服务器。
2、安装Erlang
使用yum仓库安装。
1 yum install esl-erlang_17.3-1~centos~6_amd64.rpm
2 yum install esl-erlang-compat-R14B-1.el6.noarch.rpm
3、安装RabbitMQ
进入上传安装包的目录,然后输入命令
rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm
复制配置文件至etc 目录
cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
编辑修改etc下的配置文件
vim /etc/rabbitmq/rabbitmq.config
修改内容如下图,注意要去掉后面的逗号
ESC ,:wq!
设置RabbitMQ开机自启动,输入下面命令
chkconfig rabbitmq-server on
4.开启web管理界面
修改配置后,启动RabbitMQ服务。
service rabbitmq-server start
RabbitMQ提供了用来管理的web界面,不过默认是关闭的。使用命令开启web端管理界面。
rabbitmq-plugins enable rabbitmq_management
开启后使用命令重启
service rabbitmq-server restart
这时候还是访问不了,需要开启防火墙端口。RabbitMQ默认使用15672端口。
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
/etc/rc.d/init.d/iptables save
3、管理界面简介
1、查看登录界面
输入 ip:15672,进入登录页。使用默认的账号密码 guest/guest 登录。
2、主页
- Overview:概况总览,如图下面已经有15个交换机(Exchanges,交换机概念后续会写),0个队列(Queues)等。
- Connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况
- Channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。
- Exchanges:交换机,用来实现消息的路由
- Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列。
3、添加用户
上面的Tags选项,其实是指定用户的角色,可选的有以下几个:
- 超级管理员(administrator)
可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。 - 监控者(monitoring)
可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等) - 策略制定者(policymaker)
可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。 - 普通管理者(management)
仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。 - 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
4、设置虚拟主机 Virtual Hosts
每个用户的Virtual Hosts其实就是一个独立的访问路径,不同用户使用不同路径,各自有自己的队列、交换机,互相不会影响。