运维管理 ·

Centos 7 下 安装 RabbitMQ 与初始配置

RabbitMQ 是一个免费的开源企业消息代理软件,它是用Erlang编写的,MQ 全称为 Message Queue。它提供所有主要编程语言的客户端库。是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信 ,它支持多种消息传递协议,消息队列,传送确认,灵活的路由到队列,多种交换类型。它还提供易于使用的HTTP-API,命令行工具和用于管理 RabbitMQ 的 Web UI,RabbitMQ 是一个在 AMQP 基础上完整的,可复用的企业消息系统。他遵循 Mozilla Public License 开源协议。

RabbitMQ WIKI:https://zh.wikipedia.org/zh/RabbitMQ
RabbitMQ 百科:http://baike.baidu.com/view/4095865.htm
RabbitMQ 官网:http://www.rabbitmq.com/
RabbitMQ 官网下载:http://www.rabbitmq.com/download.html
RabbitMQ 官网安装文档:http://www.rabbitmq.com/install-rpm.html
RabbitMQ 文档:
优先:http://www.rabbitmq.com/getstarted.html
次要:http://www.rabbitmq.com/documentation.html

注意安装完 RabbitMQ 后不要修改主机名,否则 RabbitMQ 可能会崩掉

安装erlang依赖环境

配置 Erlang 源

配置 RabbitMQ 源

添加EPEL源:

导入GPG密钥:

yum 安装 socat 软件包

上传安装包到服务器的 或者使用下面地址下载

因为rabbitMQ是Erlang语言编写的,所以我们首先需要安装 Erlang

访问RabbitMQ Web管理控制台:

将RabbitMQ文件的所有权提供给RabbitMQ用户

检查Erlang版本

配置 RabbitMQ
RabbitMQ 默认guest默认用户不可以在非本地环境登录,做如下配置后可以在分本地环境登录:

编辑 rabbitmq.config

改为:

启动 RabbitMQ 服务

开机启动 rabbitMQ 服务

检查 RabbitMQ 服务器的状态

查看rabbitmq进程

显示当前所有用户

新增 rabbitmq 用户

设置 admin 用户权限为超级管理员权限

默讣用户名和密码: guest/guest 。guest 用户仅允许从在服务器以 localhost 戒 127.0.0.1 作为 ip 登录.

添加防火墙规则

加载防火墙配置

显示开启防火墙端口列表

或者:

rabbitmqctl 基础命令介绍
查看命令:

关闭应用

启动应用,和上述关闭命令配合使用,达到清空队列的目的

清除所有队列

用户名: admin
密码:    fooher.com
访问 RabbitMQ 的管理面板 http://www.fooher.com:15672

更多用法及参数,可以执行如下命令查看

(1)首先关闭rabbitmq: rabbitmqctl stop_app
(2)还原: rabbitmqctl reset
(3)启动: rabbitmqctl start_app
(4)添加用户: rabbitmqctl add_user root root
(5)设置权限:rabbitmqctl set_permissions -p / root "." "." ".*"
(6)查看用户: rabbitmqctl list_users
(7)删除用户:rabbitmqctl delete_user root
(8)修改密码:rabbitmqctl change_password root 123456
(9)清除密码:rabbitmqctl clear_password root

几个概念说明:
Broker:简单来说就是消息队列服务器实体。
Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
Producer:消息生产者,就是投递消息的程序。
Consumer:消息消费者,就是接受消息的程序。
Channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。

消息队列的使用过程:
1、客户端连接到消息队列服务器,打开一个channel。
2、客户端声明一个exchange,并设置相关属性。
3、客户端声明一个queue,并设置相关属性。
4、客户端使用routing key,在exchange和queue之间建立好绑定关系。
5、客户端投递消息到exchange。
6、exchange接收到消息后,就根据消息的key和已经设由binding,进行消息路里,将消息投递到一个或多个队列里
ps:通过durable参数来进行exchang、queue、消息持久化

评论已关闭