Java中配置RabbitMQ基本步骤

news2025/1/15 21:06:05

在Java中配置RabbitMQ,需要遵循以下步骤:

1.添加依赖

在项目的pom.xml文件中添加RabbitMQ的Java客户端依赖:

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

2.创建连接工厂

创建一个连接工厂,用于创建与RabbitMQ服务器的连接:

import com.rabbitmq.client.ConnectionFactory;

public class RabbitMQConfig {

    public static ConnectionFactory createConnectionFactory() {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost"); // 设置RabbitMQ服务器地址
        factory.setPort(5672); // 设置RabbitMQ服务器端口
        factory.setUsername("guest"); // 设置用户名
        factory.setPassword("guest"); // 设置密码
        return factory;
    }
}

3.创建生产者和消费者 

创建一个生产者,用于发送消息到RabbitMQ队列:

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class Producer {

    public static void main(String[] args) throws Exception {
        ConnectionFactory factory = RabbitMQConfig.createConnectionFactory();
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();

        String queueName = "test_queue";
        channel.queueDeclare(queueName, false, false, false, null);
        String message = "Hello, RabbitMQ!";
        channel.basicPublish("", queueName, null, message.getBytes("UTF-8"));
        System.out.println("Sent: '" + message + "'");

        channel.close();
        connection.close();
    }
}
创建一个消费者,用于从RabbitMQ队列中接收消息:4
import com.rabbitmq.client.*;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class Consumer {

    public static void main(String[] args) throws IOException, TimeoutException {
        ConnectionFactory factory = RabbitMQConfig.createConnectionFactory();
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();

        String queueName = "test_queue";
        channel.queueDeclare(queueName, false, false, false, null);
        System.out.println("Waiting for messages...");

        DeliverCallback deliverCallback = (consumerTag, delivery) -> {
            String message = new String(delivery.getBody(), "UTF-8");
            System.out.println("Received: '" + message + "'");
        };
        channel.basicConsume(queueName, true, deliverCallback, consumerTag -> {});
    }
}

4.运行生产者和消费者 

分别运行Producer和Consumer类的main方法,生产者将消息发送到RabbitMQ队列,消费者将从队列中接收并处理消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1127438.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搜维尔科技:Varjo-最自然和最直观的互动

创建真实生活虚拟设计 Varjo让你沉浸在最自然的混合和虚拟现实环境中。 世界各地的设计团队可以聚集在一个摄影现实的虚拟空间中,以真实的准确性展示新的概念-实时的讨论和迭代。这是一个充满无限创造潜力的新时代,加速了人类前所未有的想象力。 虚拟现实、自动反应和XR设计的…

虹科案例 | 2016款别克昂科拉车发动机偶尔无法起动

作者&#xff1a;建辉汽车诊断中心 梁建辉 梁建辉&#xff0c;TechGear汽车诊断学院优秀学员&#xff0c;从事汽车维修工作15年&#xff0c;现自营“建辉汽车诊断中心”门店。 故障现象 一辆2016款别克昂科拉车&#xff0c;搭载LFF发动机&#xff0c;累计行驶里程约为8.6万km。…

【LeetCode每日一题】——1379.找出克隆二叉树中的相同节点

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目注意】六【题目示例】七【题目提示】八【题目进阶】九【解题思路】十【时间频度】十一【代码实现】十二【提交结果】 一【题目类别】 广度优先搜索 二【题目难度】 简单 三【题目编号】 1379.找…

分享一下微信小程序的文章中怎么添加营销活动

在数字化时代&#xff0c;小程序已经成为企业营销的重要工具。通过小程序&#xff0c;企业可以提供更加便捷、高效的服务&#xff0c;吸引更多的用户和客户。本文将以小程序营销活动为主题&#xff0c;介绍如何在小程序文章中加入营销活动&#xff0c;提高品牌知名度和销售额。…

DAY32 122. 买卖股票的最佳时机 II + 55. 跳跃游戏 + 45.跳跃游戏 II

122. 买卖股票的最佳时机 II 题目要求&#xff1a;给定一个数组&#xff0c;它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;。 注意&#xff1a;你不能同时…

基于springboot实现漫画网站管理系统项目【项目源码+论文说明】计算机毕业设计

基于Springboot实现漫画网站管理系统演示 摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包括…

Docker从入门到实战

Docker基本概念 1、解决的问题 1、统一标准 应用构建 ○ Java、C、JavaScript ○ 打成软件包 ○ .exe ○ docker build … 镜像应用分享 ○ 所有软件的镜像放到一个指定地方 docker hub ○ 安卓&#xff0c;应用市场应用运行 ○ 统一标准的 镜像 ○ docker run 容器化技术 …

Snowflake雪花算法

文章目录 分布式ID一、雪花算法起源二、雪花算法的原理三、java实现雪花算法四、常见问题总结 分布式ID 分布式ID&#xff0c;也称为全局唯一ID&#xff0c;是在分布式系统中用于标识数据的唯一标识符。随着业务量的不断扩展&#xff0c;传统的UUID和数据库自增ID无法满足需求…

Linux下的IMX6ULL——IMX6ULL Pro开发板基本操作(二)

目录&#xff1a; 前面我们已经配置好了环境&#xff0c;下载好了软件&#xff0c;下面让我们对我们使用的开发板有给简单的了解吧&#xff0c;IMX6ULL Pro开发板基本操作是必不可少的一大环节&#xff0c;下面让我们从它的硬件资源&#xff0c;软件资源等一系列开发板的基础操…

医院多维度综合绩效考核系统源码 商业项目源码,支持二次开发

医院多维度综合绩效考核系统源码 商业项目源码&#xff0c;支持二次开发 采用多维度综合绩效考核的形式&#xff0c;针对院内实际情况分别对工作量、KPI指标、科研、教学、管理等进行全面考核。医院可结合实际需求&#xff0c;对考核方案中各维度进行灵活配置&#xff0c;对各维…

Kubernetes-进阶(Pod生命周期/调度/控制器,Ingress代理,数据存储PV/PVC)

Kubernetes-进阶 Pod详解 每个Pod中都可以包含一个或多个容器&#xff0c;这些容器可以分两类 用户程序所在容器&#xff0c;数量用户决定Pause容器&#xff0c;这是每个Pod都会有的一个根容器&#xff0c;它的作用有两个 可以以它为依据&#xff0c;评估整个Pod的健康状态可以…

打印机提示“需要用户干预”解决方法

在计算机管理中&#xff0c;点击“服务和应用程序”中的“服务”&#xff1b; 3、在右侧找到“Print Spooler”服务&#xff0c;点击停止此服务&#xff08;不要退出此页面&#xff0c;后面会用&#xff0c;最小化即可&#xff09;&#xff1b; 4、按WINR&#xff0c;输入“spo…

海信商用显示出海提速,在参与共建“一带一路”中成长

2023年是中国“一带一路”倡议提出十周年。十年来&#xff0c;“一带一路”建设取得了实打实、沉甸甸的重大历史性成就&#xff0c;成为深受欢迎的国际公共产品和国际合作平台。丰硕成果的背后&#xff0c;离不开广大企业的积极参与与担当作为。作为较早出海的中国品牌之一&…

发现一款好用的数据库安全风险扫描工具-DPEasy,推荐给大家!

数据库安全治理是确保企业数据安全的关键任务&#xff0c;然而&#xff0c;许多企业在实际操作中面临着多种挑战。通过深入沟通交流和实地分析&#xff0c;我们发现企业在数据库安全治理过程中主要受到以下问题困扰&#xff1a;外部人员风险、账号权限管理困难、内部业务复杂以…

安美数字酒店宽带运营系统SQL注入漏洞复现 [附POC]

文章目录 安美数字酒店宽带运营系统SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 安美数字酒店宽带运营系统SQL注入漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从事非…

教你看懂Web 3.0:未来的互联网

众所周知&#xff0c;互联网已经成为我们日常生活的一部分&#xff0c;我们用它来搜索信息、社交、购物&#xff0c;甚至观看视频和听音乐。但你是否曾经想过&#xff0c;未来的互联网会是什么样子&#xff1f;让我们来谈谈Web 3.0&#xff0c;它是互联网的下一个大版本&#x…

BUGKU - 渗透测试1

场景1 源代码 场景2 admin 进入后台 账号密码admin admin 场景3 这里确实没想到。。。。 去php执行的地方 然后打开开发者工具进行抓包 发现执行后是存入php文件 我们写入一句话即可 这里我上传哥斯拉链接即可 场景4 根据提示 去找到数据库链接功能 场景5 PWN题目。…

k8s安装可视化界面

执行以下命令&#xff08;需要翻墙&#xff09;&#xff1a; kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml 或者用我文章提供的文件&#xff0c;执行 kubectl apply -f dashboard.xml 添加可访问地址 此时可…

融云AIGC专题:高知识密度与大数据处理双向奔赴的「金融大模型」

融云出海方案全线升级 点击上方小程序报名「爱嗨游」线上发布会 “怎么用大语言模型去提升生产效率和服务表现&#xff1f;”在时代交替之际&#xff0c;这是每个行业都要回答的问题。关注【融云 RongCloud】&#xff0c;了解协同办公平台更多干货。 而新技术的渗透不会在所有…

达芬奇MacOS最新中文版 DaVinci Resolve Studio 18中文注册秘钥

DaVinci Resolve Studio 18是一款专业的视频编辑软件&#xff0c;它具有多种强大的功能。首先&#xff0c;它提供了丰富的视频剪辑工具&#xff0c;如剪切、复制、粘贴、剪辑、缩放和移动等&#xff0c;使用户可以轻松地剪辑和组合视频素材。其次&#xff0c;该软件还支持多个轨…