消息中间件RabbitMQ安装和架构

举报
tea_year 发表于 2025/08/26 12:15:48 2025/08/26
【摘要】 RabbitMQ安装RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。RabbitMQ官方地址:http://www.rabbitmq.com/ 目标:按照文档在本机安装windows版本RabbitMQ,并配置其用户和Virtua...

RabbitMQ安装

RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。

RabbitMQ官方地址:http://www.rabbitmq.com/

目标:按照文档在本机安装windows版本RabbitMQ,并配置其用户和Virtual Hosts

3.1. 安装说明

详细查看 资料/安装Windows RabbitMQ.pdf 文档。

3.2. 用户以及Virtual Hosts配置

3.2.1. 用户角色

角色说明: 1、 超级管理员(administrator) 可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。 2、 监控者(monitoring) 可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等) 3、 策略制定者(policymaker) 可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。 4、 普通管理者(management) 仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。 5、 其他 无法登陆管理控制台,通常就是普通的生产者和消费者。

RabbitMQ在安装好后,可以访问http://localhost:15672 ;其自带了guest/guest的用户名和密码;

如果需要创建自定义用户;那么也可以登录管理界面后,如下操作:

image-20210917090148183.png


3.2.2. Virtual Hosts配置

像mysql拥有数据库的概念并且可以指定用户对库和表等操作的权限。RabbitMQ也有类似的权限管理;在RabbitMQ中可以虚拟消息服务器Virtual Host,每个Virtual Host相当于一个相对独立的RabbitMQ服务器,每个VirtualHost之间是相互隔离的。exchange、queue、message不能互通。 相当于mysql的db之间。Virtual Name一般以/开头。

  1. 创建Virtual Hosts

  2. 设置Virtual Hosts权限

分析

  1. 安装erlang;

  2. 安装rabbitMQ;

    以服务方式启动(安装完之后在任务管理器中服务一栏能看到RabbtiMq)

    rabbitmq-service install 安装服务

    rabbitmq-service start 开始服务

    Rabbitmq-service stop 停止服务

    Rabbitmq-service enable 使服务有效

    Rabbitmq-service disable 使服务无效

    rabbitmq-service help 帮助

    当rabbitmq-service install之后默认服务是enable的,如果这时设置服务为disable的话,rabbitmq-service start就会报错。

  3. 安装RabbitMQ的图形管理界面插件;

    rabbitmq-plugins.bat enable rabbitmq_management

  4. 创建管理用户;

    image-20210917101616126.png


  5. 创建虚拟主机Virtual Hosts

    image-20210917101652589.png

    image-20210917101751384.png

小结







安装erlang
安装RabbitMQ
安装管理插件
创建用户
创建虚拟主机

安装上述的组件时候都需要使用以管理员身份运行。


四、RabbitMQ架构

RabbitMQ提供了6种模式:

简单模式,work-queue工作队列模式,Publish/Subscribe发布与订阅模式,Routing路由模式,Topics主题模式,RPC远程调用模式(远程调用,不太算MQ;不作介绍);

官网对应模式介绍:https://www.rabbitmq.com/getstarted.html

官网文档:https://www.rabbitmq.com/getstarted.html

image-20210917085812307.png


4.1 官方的简单架构图

  • Publisher - 生产者:发布消息到RabbitMQ中的Exchange

  • Consumer - 消费者:监听RabbitMQ中的Queue中的消息

  • Exchange - 交换机:和生产者建立连接并接收生产者的消息

  • Queue - 队列:Exchange会将消息分发到指定的Queue,Queue和消费者进行交互

简单架构图

1587703812776.png



4.2 RabbitMQ的完整架构图


完整架构图

完整架构图

1587705504342.png



关键注意事项

  1. 版本兼容性:严格匹配 Erlang 与 RabbitMQ 版本,避免启动失败;
  2. 端口开放:生产环境需开放 5672(AMQP)、15672(Web 管理)、25672(集群通信)端口(Linux 用 firewall-cmd 开放,Windows 用防火墙设置);
  3. 持久化配置:若需消息不丢失,需开启 “交换机持久化 + 队列持久化 + 消息持久化”;
  4. 集群配置:集群节点间需保证网络互通,镜像队列需合理设置同步策略(如同步到所有节点或指定节点);
  5. 性能优化:高并发场景可调整 vm_memory_high_watermark(内存阈值)、disk_free_limit(磁盘空间阈值),避免因资源不足导致服务降级。


通过以上架构解析和安装步骤,可快速掌握 RabbitMQ 的核心原理并完成部署,满足分布式系统的消息通信需求。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。