跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

RabbitMQ 快速入门

介绍 RabbitMQ 在 Java 环境下的快速入门。包含引入 amqp-client 依赖,编写生产者代码(连接、信道、队列声明、发送消息)及消费者代码(连接、消费、资源释放)。示例演示了使用内置交换机的点对点通信流程,涵盖基本配置与异常处理。

邪神洛基发布于 2026/3/21更新于 2026/10/22107 浏览

RabbitMQ 快速入门

引入依赖

<dependency>
    <groupId>com.rabbitmq</groupId>
    <artifactId>amqp-client</artifactId>
    <version>5.22.0</version>
</dependency>

编写生产者代码

具体步骤:

  1. 建立连接
  2. 开启信道
  3. 声明交换机
  4. 声明队列
  5. 发送消息
  6. 释放资源
public static void main(String[] args) throws IOException, TimeoutException {
    //1.建立连接
    ConnectionFactory connectionFactory = new ConnectionFactory();
    connectionFactory.setHost("localhost");
    connectionFactory.setPort(5672);
    connectionFactory.setUsername("admin");
    connectionFactory.setPassword("admin");
    connectionFactory.setVirtualHost("study");
    Connection connection = connectionFactory.newConnection();
    //2.开启信道
    Channel channel = connection.createChannel();
    
    
    
    channel.queueDeclare(,,,,);
    
    
     (   ; i < ; i++) {
            + i;
        channel.basicPublish(,,,msg.getBytes());
    }
    System.out.println();
    
    channel.close();
    connection.close();
}
//3.声明交换机 使用内置的交换机
//4.声明队列
/** * Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, * Map<String, Object> arguments) throws IOException; * * 参数说明: * queue:队列名称 * durable:可持久化 * exclusive:是否独占 * autoDelete:是否自动删除 * arguments:额外参数 */
"hello"
true
false
false
null
//5.发消息
/** * void basicPublish(String exchange, String routingKey, BasicProperties props, byte[] body) throws IOException; * * 参数声明: * exchange:交换机名称,不写代表使用内置交换机 * routingKey:路由名称,routingKey = 队列名称(使用内置交换机,routingKey 与队列名称保持一致) * props:属性配置 * body:消息 */
for
int
i
=
0
10
String
msg
=
"hello rabbitmq ~"
""
"hello"
null
"消息发送成功~"
//6.资源释放

编写消费者代码

具体步骤:

  1. 建立连接
  2. 创建信道
  3. 声明队列
  4. 消费消息
  5. 释放资源
public static void main(String[] args) throws IOException, TimeoutException, InterruptedException {
    //1.建立连接
    ConnectionFactory connectionFactory = new ConnectionFactory();
    connectionFactory.setHost("localhost");
    connectionFactory.setPort(5672);
    connectionFactory.setUsername("admin");
    connectionFactory.setPassword("admin");
    connectionFactory.setVirtualHost("study");
    Connection connection = connectionFactory.newConnection();
    //2.创建 Channel
    Channel channel = connection.createChannel();
    //3.声明队列(可以省略)
    channel.queueDeclare("hello",true,false,false,null);
    //4.消费消息
    DefaultConsumer consumer = new DefaultConsumer(channel){
        //从队列中收到消息,就会执行的方法
        @Override
        public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
            System.out.println("接收到消息:" + new String(body));
        }
    };
    /**
     * String basicConsume(String queue, boolean autoAck, Consumer callback) throws IOException;
     * 参数说明:
     * queue:队列名称
     * autoAck:是否自动确认
     * callback:接收到消息后,执行的逻辑
     */
    channel.basicConsume("hello",true,consumer);
    //等待程序完成
    Thread.sleep(5000);
    //5.释放资源
    channel.close();
    connection.close();
}

目录

  1. RabbitMQ 快速入门
  2. 引入依赖
  3. 编写生产者代码
  4. 编写消费者代码

更多推荐文章

查看全部
  • Linux 常见指令(下)
  • Unity 与 Python 互通入门:点击按钮调用 Python
  • DeepSeek 深度使用指南与高效提示词技巧
  • C++ 多线程同步:原子操作 atomic 实战
  • 2026 年 6 款主流免费 AI 写作工具实测与去 AI 味方案
  • 使用微 PE 启动 U 盘在 2017 MacBook Pro 上安装 Windows 单系统
  • OpenClaw v2026.3.8 全平台部署与配置指南
  • 利用大疆 SRT 数据实现高精度 AR 视频投射
  • Java 对象比较详解:equals、Comparable 与 Comparator
  • 6 年自研纯 C# UI 引擎:轻量跨平台与高性能渲染实践
  • 基于 Leaflet 和天地图的免费运动场所 WebGIS 可视化
  • DALL·E 3 体验笔记:从生成到 API 调用的实践
  • OpenClaw 飞书机器人配置:群消息免@自动回复
  • 前端函数防抖详解与手写实现
  • 用 ImGui 快速搭一个 C++ 调试面板
  • Java NIO 核心:Buffer 与 Channel 原理及与传统 IO 对比
  • 用 WebGIS 展示身份证首位数字与六大区域
  • OpenClaw 智能体框架入门:环境搭建、模型配置与远程访问
  • 程序员 Python 副业方向与接单实战建议
  • Android APP 性能优化实战指南:稳定、流畅、省电与瘦身

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online