前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux Centos7 安装配置RabbitMQ

Linux Centos7 安装配置RabbitMQ

作者头像
I Teach You 我教你
发布2023-07-18 18:12:29
6160
发布2023-07-18 18:12:29
举报
文章被收录于专栏:王二麻子IT技术交流园地
一、什么是RabbitMQ

在开始演示安装RabbitMQ前,小编决定先介绍一下前置知识,想看安装步骤的小伙伴可以直接跳过这个章节,本篇博客算是小编学习RabbitMQ的笔记,部分内容都是摘录的,如果有感兴趣的小伙伴可以私信小编,后续小编将会更新更多的关于RabbitMQ的知识,感兴趣的小伙伴可以点个订阅。

1.1 什么是MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖MQ,不用依赖其他服务。 主要还是用来实现 流量消峰,应用解耦,异步处理 等系统优化方案。

1.2 RabbitMQ RabbitMQ 是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是一个快递站,一个快递员帮你传递快件。RabbitMQ 与快递站的主要区别在于,它不处理快件而是接收,存储和转发消息数据,更多的详细内容可以参考官网 点击跳转。

1.3 RabbitMQ四大核心概念 生产者:产生数据发送消息的程序是生产者。 交换机:交换机是 RabbitMQ 非常重要的一个部件,一方面它接收来自生产者的消息,另一方面它将消息推送到队列中。交换机必须确切知道如何处理它接收到的消息,是将这些消息推送到特定队列还是推送到多个队列,亦或者是把消息丢弃,这个得有交换机类型决定。 队列:队列是 RabbitMQ 内部使用的一种数据结构,尽管消息流经 RabbitMQ 和应用程序,但它们只能存储在队列中。队列仅受主机的内存和磁盘限制的约束,本质上是一个大的消息缓冲区。许多生产者可以将消息发送到一个队列,许多消费者可以尝试从一个队列接收数据。这就是我们使用队列的方式。 消费者:消费与接收具有相似的含义。消费者大多时候是一个等待接收消息的程序。请注意生产者,消费者和消息中间件很多时候并不在同一机器上。同一个应用程序既可以是生产者又是可以是消费者。

1.4 几种常见的MQ技术对比

RabbitMQ

ActiveMQ

RocketMQ

Kafka

公司/社区

Rabbit

Apache

阿里

Apache

开发语言

Erlang

Java

Java

Scala&Java

协议支持

AMQP,XMPP,SMTP,STOMP

OpenWire,STOMP,REST,XMPP,AMQP

自定义协议

自定义协议

可用性

一般

单机吞吐量

一般

非常高

消息延迟

微秒级

毫秒级

毫秒级

毫秒以内

消息可靠性

一般

一般

追求可用性:Kafka、 RocketMQ 、RabbitMQ 追求可靠性:RabbitMQ、RocketMQ 追求吞吐能力:RocketMQ、Kafka 追求消息低延迟:RabbitMQ、Kafka

1.5 RabbitMQ基本结构

RabbitMQ中的一些角色: publisher:生产者 consumer:消费者 exchange:交换机,负责消息路由 queue:队列,存储消息 virtualHost:虚拟主机,隔离不同租户的exchange、queue、消息的隔离

二、安装RabbitMQ

环境准备,RabbitMQ是一个开源的遵循AMQP协议实现的基于Erlang语言编写,所以一会还要安装Erlang环境,下面是本篇博客演示采用的环境,其他版本的安装也是大同小异的。

代码语言:javascript
复制
1CentOS-7-x86_64-Minimal-1708 //   这里采用的是Minimal版 没有图形化界面
2erlang-21.3-1.el7.x86_64
3rabbitmq-server-3.8.8-1.el7.noarch

首先RabbitMQ的版本需要和Erlang版本匹配才行,否则容易产生冲突,关于适配版本对照可以参考官方给出的信息,点击跳转

2.1 安装包准备 下载RabbitMQ安装包,可以在官网进行下载,选择对应版本下载后会得到.rpm文件,RabbitMQ下载

在Github可以下载RabbitMQ,点击跳转。这个el8,代表是Centos8才能安装的,高版本的RabbitMQ有些不支持Centos7,但是本篇博客用来演示的是Centos7的系统环境,所以小编在这只能带大家安装低版本的RabbitMQ了

下载Erlang安装包可以在Erlang官网进行下载点击跳转,当然细心的小编已经给各位小伙伴准备好了安装包,大家可以直接下载点击下载

代码语言:javascript
复制
1链接:https://pan.baidu.com/s/1PiBwNQQGDQhriqngPqyI5Q 
2提取码:2c8i 
3--来自百度网盘超级会员V4的分享

2.2 上传安装包 将上面的安装包下载完毕后依次上传到CentOS,/opt 目录下创建一个 software 的文件夹用来存放安装包,再进入这个文件夹。

2.3 开始安装 执行以下命令解压安装erlang

代码语言:javascript
复制
1rpm -ivh erlang-21.3-1.el7.x86_64.rpm

在RabiitMQ安装过程中需要依赖socat插件 再执行以下命令安装该插件

代码语言:javascript
复制
1yum install socat -y

然后再执行以下命令解压安装RabbitMQ的安装包

代码语言:javascript
复制
1rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
三. 启动RabbitMQ

在进行完以上的步骤后,RabbitMQ就算是安装完成了,它会自动帮我们注册为系统服务,服务名就叫rabbitmq-server 可以执行以下命令来启动RabbitMQ的服务。

代码语言:javascript
复制
1systemctl start rabbitmq-server

再执行以下命令查看RabbitMQ的服务状态

代码语言:javascript
复制
1systemctl status rabbitmq-server

可以看到RabbitMQ的正常运行的状态,如图:

最后建议执行以下命令将RabbitMQ的服务设置为开启自启动

代码语言:javascript
复制
1systemctl enable rabbitmq-server
四. 配置Web管理界面

默认情况下,rabbitmq没有安装web端的客户端软件,需要安装才可以生效。可以执行以下命令安装远程的Web管理界面

代码语言:javascript
复制
1rabbitmq-plugins enable rabbitmq_management

要想远程访问web管理界面还需要开放防火墙的 5672 和 15672两个端口,可以依次执行下面两条命令开放,最后再重启一下防火墙,使配合生效。

代码语言:javascript
复制
1// 开放5672端口
2firewall-cmd --zone=public --add-port=5672/tcp --permanent 
3// 开放15672端口
4firewall-cmd --zone=public --add-port=15672/tcp --permanent 
5// 重启防火墙
6firewall-cmd --reload 

然后我们就可以直接通过 http://IP地址:15672 就可以访问远程的web管理界面。这时还是没办法进行登陆的,即使使用默认的用户和密码也无法登陆,可以执行以下流程实现登陆。

创建账号: 用户名为root 密码为 123456 各位用户朋友可以自定义

代码语言:javascript
复制
1rabbitmqctl add_user root 123456

设置用户角色:

代码语言:javascript
复制
1rabbitmqctl set_user_tags root administrator

设置用户权限:用户 user_admin 具有/vhost1 这个 virtual host 中所有资源的配置、写、读权限,相当于超级管理员权限。

代码语言:javascript
复制
1rabbitmqctl set_permissions -p "/" root ".*" ".*" ".*"

完成后我们就可以用 账号: root 密码: 123456 进行登陆。也可以在/etc/rabbitmq目录下编辑rabbitmq.config配置文件,达到默认用户登陆。

五. 常用命令

到这里咋们的安装配置已经接近尾声了,最后小编给大家准备了一些常用的命令,如果觉得小编贴心的话不要忘记给小编点个赞点个关注,感谢各位读者朋友的阅读,如果有问题或者有遗漏的地方各位读者朋友可以在评论区提出。

代码语言:javascript
复制
 1rabbitmqctl list_users  // 列出当前系统的用户
 2rabbitmqctl list_user_permissions [用户名] // 查看用户权限
 3rabbitmqctl delete_user [用户名] // 删除用户
 4rabbitmqctl change_password [用户名] [密码] // 修改用户密码
 5rabbitmq-plugins enable rabbitmq_management  // 开启web远程管理界面
 6rabbitmq-plugins disable rabbitmq_management // 关闭web远程管理界面
 7systemctl start rabbitmq-server // 启动rabbitmq-server服务
 8systemctl stop rabbitmq-server  // 停止rabbitmq-server服务
 9systemctl restart rabbitmq-server // 重启rabbitmq-server服务
10systemctl reload rabbitmq-server // 重载rabbitmq-server服务 (推荐使用)
11systemctl status rabbitmq-server  // 查看rabbitmq-server状态
12systemctl enable rabbitmq-server // 设置为开机启动rabbitmq-server服务
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023/06/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、什么是RabbitMQ
  • 二、安装RabbitMQ
  • 三. 启动RabbitMQ
  • 四. 配置Web管理界面
  • 五. 常用命令
相关产品与服务
消息队列
腾讯云消息队列 TDMQ 是分布式架构中的重要组件,提供异步通信的基础能力,通过应用解耦降低系统复杂度,提升系统可用性和可扩展性。TDMQ 产品系列提供丰富的产品形态,包含 CKafka、RocketMQ、RabbitMQ、Pulsar、CMQ 五大产品,覆盖在线和离线场景,满足金融、互联网、教育、物流、能源等不同行业和场景的需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档