RabbitMQ从入门到精通(一) - 简介与安装(Docker和非Docker模式)
0. 什么是消息中间件
在开始介绍RabbitMQ的安装之前,我们有必要介绍一下什么是消息中间件。
消息队列中间件(Message Queue Middleware - MQ)是指利用高效可靠的消息传递机制进行数据交流,并基于数据通信来构建分布式系统。
消息传递的两种模式:
a. 点对点(P2P - Point-to-Point)
基于队列(消息生产者发送消息到队列, 消息消费者从队列接收消息)
b. 发布/订阅(Pub/Sub)
一对多广播(内容节点成为主题-Topic, 消息发布者发布某个主题, 消息订阅者从主题订阅消息)
1. 起源简介
RabbitMQ是采用Erlang语言实现的基于AMQP(Advanced Message Queuing Protocol)[高级消息队列协议]的消息中间件。
2006, AMQP标准公开。
RabbitMQ作为实现该标准的消息中间件产品登上历史舞台。
2010,RabbitMQ被SpringSource-VMWare的一个部门收购。
2013年5月, RabbitMQ并入Pivotal。
2. 传统原生安装
2-1) 下载安装socat
(RabbitMQ需要socat依赖,所以需要安装socat)
# 下载 wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm # 安装 rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
2-2) 下载安装Erlang
(由于RabbitMQ是基于Erlang语言开发,所以在安装RabbitMQ之前, 需要先安装Erlang)
下载包
https://github.com/rabbitmq/erlang-rpm/releases/tag/v23.1.1
# 安装
rpm -ivh erlang-23.1.1-1.el7.x86_64.rpm
2-3) 下载安装RabbitMQ
官方下载地址:https://dl.bintray.com/rabbitmq/all/rabbitmq-server/
选择版本3.8.0下载rpm安装包。
# 安装 rpm -ivh rabbitmq-server-3.8.0-1.el7.noarch.rpm
2-4) 启动和停止
# 启动 service rabbitmq-server start # 停止 service rabbitmq-server stop
3. RabbitMQ后台管理
3-1) 安装后台管理插件
rabbitmq-plugins enable rabbitmq_management
3-2) 放开访问端口
# RabbitMQ通讯端口 firewall-cmd --zone=public --add-port=5672/tcp --permanent # RabbitMQ后台管理页面端口 firewall-cmd --zone=public --add-port=15672/tcp --permanent # 重启防火墙 firewall-cmd --reload
3-3) 登录后台管理
浏览器访问页面http://ip:15672可以打开后台管理页面
默认自带的guest用户只允许本地机器访问登录(提示User can only log in via localhost)
可以通过以下步骤解决:
# 创建用户: rabbitmqctl add_user 用户名 密码 eg: rabbitmqctl add_user kg 123456 # 赋予角色: rabbitmqctl set_user_tags 用户名 administrator eg: rabbitmqctl set_user_tags kg administrator
或
1. cd /etc/rabbitmq 2. vi rabbitmq.config 3. 写入[{rabbit, [{loopback_users, []}]}].,保存退出。 4. 重启RabbitMQ,service rabbitmq-server restart 5. 用账号guest、密码guest登录。
登录后界面如下:
3-4) 解决后台管理页面打开特别慢
本人在刚好安装好以后,发现打开和登录管理页面特别慢,连接RabbitMQ有时候也会超时,后经排查发现是解析主机名的问题,在hosts文件中配上当前主机名即可解决。
vi /etc/hosts
在127.0.0.1 后追加当前主机名称
4. Docker方式安装
开启:管理页面 默认账号:guest 默认密码:guest
Docker启动时候可以指定账号密码对外端口
docker pull rabbitmq docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=admin \ -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 \ -p 61613:61613 -p 1883:1883 rabbitmq:management
访问地址:
http://ip:15672/
好了,rabbitmq的两种安装方式都介绍完毕了