消息中间件可使分布式系统模块之间进行通信,而RabbitMQ因其并发能力强,延时低的特性广受欢迎,本文介绍RabbitMQ的安装及其图形化界面的操作。
消息队列(Message Queue,简称MQ):是在消息的传输过程中保存消息的容器。用于分布式系统之间进行通信。
RabbitMQs是由Rabbit公司使用Erlang开发的产品,它基于AMQP协议,单机吞吐量为万级,消息延迟为微秒级,并发能力很强,延时很低。其中,中小型软件公司一般使用RabbitMQ,大型软件公司,根据具体使用在rocketMq和kafka之间选择。RabbitMQ组成如图所示:
提示:这里安装Linux版本RabbitMQ,安装前需要有一台虚拟机
官方下载地址:http://www.rabbitmq.com/download.html
打开官网,点击图标位置
点击downloading
提示:RabbitMQ是Erlong语言开发,需先在虚拟机中安装Erlang
rpm -ivh esl-erlang-17.3-1.x86_64.rpm --force --nodeps
rpm -ivh esl-erlang_17.3-1~centos~6_amd64.rpm --force --nodeps
rpm -ivh esl-erlang-compat-R14B-1.el6.noarch.rpm --force --nodeps
每次执行结果依次如图所示:
命令如下:
service rabbitmq-server start #启动服务
service rabbitmq-server stop #关闭服务
service rabbitmq-server restart #重启服务
service rabbitmq-server status #查看状态
chkconfig rabbitmq-server on #设置开机启动
提示:系统中防火墙未生效的无需进行此操作
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
/etc/rc.d/init.d/iptables save
命令如下:
rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart
执行结果如图所示:
提示:这里以创建个admin帐号,密码1111为例,创建一个账号并支持远程ip访问。
rabbitmqctl add_user admin 1111
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
rabbitmqctl list_users
设置完成后,效果如图所示:
注意:账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆
connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况
channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。
Exchanges:交换机,用来实现消息的路由
Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列。
5672: rabbitMq的编程语言客户端连接端口
15672:rabbitMq管理界面端口
25672:rabbitMq集群的端口
如果不使用guest,我们也可以自己创建一个用户
1、 超级管理员(administrator)
可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
2、 监控者(monitoring)
可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
3、 策略制定者(policymaker)
可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
4、 普通管理者(management)
仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
5、 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
虚拟主机:类似于mysql中的database。他们都是以“/”开头
本文简要说明了RabbitMQ的组成及使用,详细介绍了其安装步骤,以及图形化界面的访问及操作,下篇会使用IDEA创建Java整合RabbitMQ的案例。