centos安装rabbitmq

服务器

浏览数:229

2019-10-7

RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发。RabbitMQ据说具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较大规模的分布式系统中使用,具体特性还在验证中,待检验。由于项目需要,安装并配置了RabbitMQ,服务器操作系统是CentOS7。

v基础知识

什么是消息队列(Message Queue)?

消息(Message)

网络中的两台计算机或者两个通讯设备之间传递的数据。例如说:文本、音乐、视频等内容。

队列(Queue)

一种特殊的线性表(数据元素首尾相接),特殊之处在于只允许在首部删除元素和在尾部追加元素。入队、出队。

消息队列(MQ)

消息+队列,保存消息的队列。消息的传输过程中的容器;主要提供生产、消费接口供外部调用做数据的存储和获取。

MQ分类

MQ主要分为两类:点对点(p2p)、发布订阅(Pub/Sub)

共同点:

消息生产者生产消息发送到queue中,然后消息消费者从queue中读取并且消费消息。

不同点:

p2p模型包括:消息队列(Queue)、发送者(Sender)、接收者(Receiver)

一个生产者生产的消息只有一个消费者(Consumer)(即一旦被消费,消息就不在消息队列中)。比如说打电话。

Pub/Sub包含:消息队列(Queue)、主题(Topic)、发布者(Publisher)、订阅者(Subscriber)。每个消息可以有多个消费者,彼此互不影响。比如我发布一个微博:关注我的人都能够看到。

那么在大数据领域呢,为了满足日益增长的数据量,也有一款可以满足百万级别消息的生成和消费,分布式、持久稳定的产品——RabbitMQ。

v安装依赖项

RabbitMQ使用erlang语言开发,所以我们首先安装erlang.

rpm -Uvh http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el7.centos.x86_64.rpm

RabbitMQ是基于erlang的,所以RabbitMQ和erlang版本要对应,要不然有可能安装失败。 RabbitMQ Erlang Version Requirements — RabbitMQ

vInstall RabbitMQ-Server

rpm -Uvh http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.6/rabbitmq-server-3.5.6-1.noarch.rpm

安装好了之后,验证是否安装成功。rpm -qa|grep rabbitmq

启动MQ:service rabbitmq-server start

重启MQ:service rabbitmq-server restart

关闭MQ:service rabbitmq-server stop

查看状态:rabbitmqctl status

v维护插件

先启动MQ,然后安装维护插件。rabbitmq-plugins enable rabbitmq_management

这个命令的作用是安装RabbitMq的一个管理插件

查看安装的插件rabbitmq-plugins list

安装好了以后就可以通过在浏览器访问 http://ip:15672进入一个管理界面。

v远程访问

这时候登录会提示login failed

需要开启远程访问授权。

cd /etc/rabbitmq

cp /usr/share/doc/rabbitmq-server-3.5.6/rabbitmq.config.example /etc/rabbitmq/

mv rabbitmq.config.example rabbitmq.config

vim /etc/rabbitmq/rabbitmq.config

在rabbitmq.config中添加 {loopback_users, []}

用户名和密码默认都是guest,登录后显示如下:

关于RabbitMQ Management更多介绍,可以看看这里。 SpringBoot(二十三)集成RabbitMQ—浅谈RabbitMQ Management

v用户管理

新增一个用户 rabbitmqctl add_user Username Password

设置admin rabbitmqctl set_user_tags Username administrator

用户角色大致可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。

超级管理员(administrator):

可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。

监控者(monitoring)

可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

策略制定者(policymaker)

可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。与administrator的对比,administrator能看到这些内容

普通管理者(management)

仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。

其他

无法登陆管理控制台,通常就是普通的生产者和消费者。

删除一个用户 rabbitmqctl delete_user Username

修改用户的密码 rabbitmqctl change_password Username Newpassword

查看当前用户列表 rabbitmqctl list_users

其他参考资料:

作  者:请叫我头头哥
出  处:http://www.cnblogs.com/toutou/
关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!

作者:请叫我头头哥