RabbitMQ

一、RabbitMQ 基础概念

  1. 什么是 MQ (Message Queue)

    • 定义:消息队列,是一种消息中间件。

    • 作用:主要用于微服务架构中,作为服务之间通信的媒介。

    • 模型Sender (生产者)MQ (消息队列)Consumer (消费者)

  2. 什么是 AMQP 协议

    • 定义:Advanced Message Queuing Protocol(高级消息队列协议)。

    • 说明:文档中提到了该协议的定义,但关于"RabbitMQ的实现类"部分内容为空,未列出具体实现细节。

  3. 什么是 RabbitMQ

    • 定义:RabbitMQ 是使用 Erlang 语言编写的,一个实现了 AMQP 协议的开源消息中间件。
  4. 使用 RabbitMQ 的好处

    • 解耦:服务 A 只需将消息发送到 MQ,无需关心下游服务(B、C、D)。新增服务 D 时,无需修改服务 A 的代码。

    • 异步:服务 A 发送消息后即可返回,B、C 服务以异步方式处理消息,提高系统响应速度。

    • 削峰:在高并发场景下,消费者可以按照自身的处理能力从 MQ 中拉取消息,避免系统被瞬时流量冲垮。

  5. Spring Boot 启动器

    • 在 Spring Boot 项目中集成 RabbitMQ 使用的依赖是:spring-boot-starter-amqp

二、RabbitMQ 安装与配置

文档提供了在 Linux (CentOS) 环境下安装 RabbitMQ 3.4.1 版本的具体步骤:

  1. 安装 Erlang 环境

    • 进入上传目录:cd /usr/upload

    • 依次安装三个 RPM 包(强制且无依赖检查):

      复制代码
      rpm -ivh esl-erlang-17.3-1.x86_64.rpm --force --nodeps
      rpm -ivh esl-erlang_17.3-1~centos~6_amd64.rpm --force --nodeps
      rpm -ivh esl-erlang-compat-R14B-1.el6.noarch.rpm --force --nodeps
  2. 安装 RabbitMQ Server

    复制代码
    rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm
  3. 服务管理命令

    • 启动:service rabbitmq-server start

    • 查看状态:service rabbitmq-server status

    • 停止:service rabbitmq-server stop

    • 重启:service rabbitmq-server restart

    • 设置开机自启:chkconfig rabbitmq-server on

  4. 安装 Web 管理插件

    • 启用插件:rabbitmq-plugins enable rabbitmq_management

    • 重启服务生效:service rabbitmq-server restart

  5. 创建管理员账户

    • 添加用户(用户名 admin,密码 1111):rabbitmqctl add_user admin 1111

    • 设置用户标签为管理员:rabbitmqctl set_user_tags admin administrator

    • 授权(配置、写、读权限):rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

    • 查看用户列表:rabbitmqctl list_users

  6. 访问测试

    • 通过浏览器访问:http://192.168.61.137:15672

    • (注:文档末尾的链接 http://192.168.61.137:15672csdn存在拼接错误,正确地址应为上述地址)

相关推荐
中议视控1 小时前
展厅可视化网络中央控制系统:支持双向反馈,可视化播控,回显,状态显示,反向控制电脑,声光电网络视讯设备统一管理
网络·分布式·信息可视化
YOU OU4 小时前
RabbitMQ运维
java·rabbitmq·java-rabbitmq
Java成神之路-15 小时前
集群架构 vs 分布式微服务架构:核心区别通俗拆解
分布式·微服务·架构
运维行者_1 天前
企业带宽监控工具实战:网络流量分析与异常排查的5个关键能力
运维·服务器·开发语言·网络·分布式·后端·php
jeffwang1 天前
我把同一个压测做错了三次,第四次才发现真正的瓶颈
分布式·性能优化·rust
Blossom i1 天前
分布式编程实验二:Flink安装与编程实践(头歌云客)
大数据·分布式·flink
ai_coder_ai1 天前
事件驱动架构(EDA)在分布式业务系统中的应用
分布式·架构
蓝胖的四次元口袋1 天前
分布式知识梳理(4)
分布式
书香门第1 天前
系统设计练习 - 分布式黑名单服务(design a distributed denylist service)
分布式·系统架构·系统设计
江畔柳前堤2 天前
大语言模型分布式训练:从并行策略到万卡工程的系统梳理
人工智能·分布式·深度学习·算法·目标检测·机器学习·语言模型