初始RabbitMq
MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据机构。指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递——生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由MQ服务端给其推送消息。RabbitMQ是MQ的主要产品之一。
1、什么是RabbitMQ?
RabbitMq基于AMQP
协议,erlang语言开发,是部署最广泛的开源消息中间件,是最受欢迎的开源消息中间件之一。
AMQP(advanced message queuing protocol)`在2003年时被提出,最早用于解决金融领不同平台之间的消息传递交互问题。顾名思义,AMQP是一种协议,更准确的说是一种binary wire-level protocol(链接协议)。这是其和JMS的本质差别,AMQP不从API层进行限定,而是直接定义网络交换的数据格式。这使得实现了AMQP的provider天然性就是跨平台的。以下是AMQP协议模型:
2 、RabbitMQ在Windows中的安装:
在安装RabbitMQ之前,我们需要查看RabbitMQ版本及其所对应的Erlang版本,我选择的RabbitMQ版本为3.8.3;Erlang版本是22.3。
2.1、Erlang的安装
2.1.1、下载地址:http://www.erlang.org/downloads
2.1.2、Erlang安装
下载Erlang安装包:重复next即可,安装成功后,设置环境变量,敲入erl查看eshell的版本号(不是erlang的版本号)确认安装ok
设置环境变量:ERLANG_HOME=D:\worksoftware\erl10.7
在path中添加%ERLANG_HOME%\bin;
查看版本号,确认是否安装成功:
2.2、RabbitMQ的安装
2.2.1、下载地址:http://www.rabbitmq.com/download.html
2.2.2、下载RabbitMQ,并安装
安装结束后windows开始菜单会出现RabbitMQ图标:
启用rabbitmq_management插件,rabbitmq_management是管理后台的插件、我们要开启这个插件才能通过浏览器访问登录页面。
通过 http://serverip:15672 访问 RabbitMQ 的 Web 管理界面,默认用户名密码都是 guest
- connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况
- channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。
- Exchanges:交换机,用来实现消息的路由
- Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列。
3、RabbitMQ在Centos6.8中的安装:
安装前还是要注意查看RabbitMQ及其对应的Erlang版本,我本次安装的RabbitMQ版本为3.8.5,Erlang版本为22.0.7
3.1、Erlang的安装
3.1.1、下载地址:https://github.com/rabbitmq/erlang-rpm/releases
3.1.12、Erlang安装
3.2、RabbitMQ的安装
3.2.1、下载地址:https://www.rabbitmq.com/download.html
3.2.2、RabbitMQ的安装
3.2.3、rabbitmq_management插件的启用及RabbitMQ 服务的启动
启动RabbitMQ服务:service rabbit-server start
启用rabbitmq_management:rabbitmq-plugins enable abbitmq_management
3.2.4、解决guest无法登录的问题
服务启动后无法登录,3.8.5版本的RabbitMq安装后,在/etc/rabbitmq/目录下没有rabbitmq.conf文件,新建rabbitmq-conf文件把https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.conf.example网址的内容复制到rabbitmq-conf中,把loopback_users.guest = false这行注释放开,重启RabbitMQ服务即可。
在/etc/rabbitmq/目录下没有rabbitmq.conf文件,新建rabbitmq-conf文件:
把loopback_users.guest = false这行注释放开:
重启RabbitMQ服务
再次访问可以登录: