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存在拼接错误,正确地址应为上述地址)

相关推荐
山甫aa3 小时前
锁一篇搞定:乐观锁、悲观锁、CAS、数据库锁与分布式锁【从零开始的 Web 后端学习】
java·数据库·分布式·后端·学习·web
严肃小白兔1 天前
Cloudflare Durable Objects 支持自动重试:分布式调用如何避免重复执行?
分布式
Pniubi1 天前
基于RabbitMQ实现延迟队列
rabbitmq
方方洛1 天前
ray教程-27-附录F-RayClient与runtime_env与多语言
人工智能·分布式·机器学习
方方洛2 天前
ray教程-25-附录E-端到端实战案例
人工智能·分布式·机器学习
一条泥憨鱼3 天前
【消息队列】ACK确认了什么:消息队列可靠投递的完整链路
java·后端·kafka·消息队列·rabbitmq
迅翼SwiftWing3 天前
编队系列(二)|固定翼如何依靠邻居信息保持队形?一致性控制、通信拓扑与分布式仿真实现,附仿真代码
分布式
ly76893 天前
幂等消费者与重试副作用:Kafka 端点接入时的去重边界
分布式·kafka·linq·apache camel·幂等消费者·重试副作用·去重边界
qq_452396233 天前
第三篇:《从 ZooKeeper 到 KRaft 的迁移实战:前置条件、三阶段流程与回滚策略》
分布式·zookeeper·云原生
真上帝的左手4 天前
30. 技术专题-‌应用框架组件-关系型数据库-MySQL-Mybatis
数据库·分布式·mysql·中间件·mybatis