概述
RabbitMQ 的特性
RabbitMQ使用Erlang语言编写,使用Mnesia数据库存储消息。
- 可靠性,RabbitMQ 使用一些机制来保证可靠性,如持久化、传输确认、发布确认
- 灵活的路由 ,在消息进入队列之前,通过 Exchange 来路由消息的。
- 消息集群 ,多个RabbitMQ服务器可以组成一个集群,形成一个逻辑Broker
- 高可用,队列可以再集群中的机器上进行镜像,使得部分节点出问题的情况下队列仍然可用
- 多种协议,支持AMQP,STOMP,MQTT
- 管理界面,提供了一个易用的用户界面,使得用户可以监控和管理消息,集群中的节点
- 插件机制
工作模型
概念 | 解释 |
---|---|
Broker | 即RabbitMQ的实体服务器。提供一种传输服务,维护一条从生产者到消费者的传输线路,保证消息数据能按照指定的方式传输。 |
Exchange | 消息交换机。指定消息按照什么规则路由到哪个队列Queue。 |
Queue | 消息队列。消息的载体,每条消息都会被投送到一个或多个队列中。 |
Binding | 绑定。作用就是将Exchange和Queue按照某种路由规则绑定起来。 |
Routingkey | 路由关键字。Exchange根据Routing Key进行消息投递。定义绑定时指定的关键字称为Binding Key。 |
Vhost | 虚拟主机。一个Broker可以有多个虚拟主机,用作不同用户的权限分离。一个虚拟主机持有一组Exchange、Queue和Binding。 |
Producer | 消息生产者。主要将消息投递到对应的Exchange上面。一般是独立的程序。 |
Consumer | 消息消费者。消息的接收者,一般是独立的程序。 |
Connection | Producer 和 Consumer 与Broker之间的TCP长连接。 |
Channel | 消息通道,也称信道。在客户端的每个连接里可以建立多个Channel,每个Channel代表一个会话任务。在RabbitMQ Java Client API中,channel上定义了大量的编程接口。 |
安装 RabbitMQ
安装环境 Centos-7
安装 Erlang
wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el6.x86_64.rpm
rpm -ivh erlang-19.0.4-1.el6.x86_64.rpm
安装 RabbitMQ
下载rabbitmq 并 安装
wget https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/rabbitmq-server-3.6.12-1.el6.noarch.rpm
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
rpm -ivh rabbitmq-server-3.6.12-1.el6.noarch.rpm
问题解决
如果出现 依赖检测失败:
error: Failed dependencies:
socat is needed by rabbitmq-server-3.6.12-1.el6.noarch
或者
error: Failed dependencies:
erlang >= R16B-03 is needed by rabbitmq-server-3.6.12-1.el6.noarch
解决报错:
wget –no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo -O /etc/yum.repos.d/convirt.repo
yum makecache -y
yum install socat -y
如果出现 yum 源有问题,
无法安装:将CentOS的yum源更换为国内的阿里云源
File contains no section headers.
file: file:///etc/yum.repos.d/convirt.repo, line: 1
'<html>rn'
解决报错
rm -f /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
配置
创建rabbitmq的配置文件,并允许guest进行登录
vi /etc/rabbitmq/rabbitmq.config
[{rabbit, [{loopback_users, []}]}].
更改rabbitmq的环境变量
vi /etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_MNESIA_BASE=/guaoran/rabbitmq/mnesia
RABBITMQ_LOG_BASE=/guaoran/rabbitmq/log
创建数据目录和log目录
mkdir -pv /guaoran/rabbitmq/log
chown -R rabbitmq:rabbitmq /guaoran/rabbitmq
启用management插件
rabbitmq-plugins enable rabbitmq_management
如果报错
Plugin configuration unchanged.
Applying plugin configuration to rabbit@localhost... failed.
* Could not contact node rabbit@localhost.
Changes will take effect at broker restart.
* Options: --online - fail if broker cannot be contacted.
--offline - do not try to contact broker
解决方案
vi /etc/selinux/config
SELINUX=disabled
重启系统 reboot
问题解决
sestatus
查看是否已修改成功
添加用户 root
rabbitmqctl add_user guaoran guaoran
rabbitmqctl set_user_tags guaoran administrator
rabbitmqctl set_permissions -p / guaoran '.*' '.*' '.*'
最后
以上就是寂寞草莓为你收集整理的Centos-7 安装 RabbitMQ安装 RabbitMQ的全部内容,希望文章能够帮你解决Centos-7 安装 RabbitMQ安装 RabbitMQ所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复