返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java连接rabbitMQ(三步超简单)
  • 933
分享到

Java连接rabbitMQ(三步超简单)

java-rabbitmqjavarabbitmq 2023-09-20 20:09:49 933人浏览 安东尼
摘要

RabbitMQ安装教程网上特别多就不多赘述,这里主要说一下怎么去连接 第一步,创建工程添加依赖 创建一个Maven项目,打开pom.xml,添加两个依赖,并更新Maven。 4.0.0 org.example rabb

RabbitMQ安装教程网上特别多就不多赘述,这里主要说一下怎么去连接

第一步,创建工程添加依赖

创建一个Maven项目,打开pom.xml,添加两个依赖,并更新Maven。

    4.0.0    org.example    rabbitMQdemo    1.0-SNAPSHOT------------添加下面两个依赖------------                        com.rabbitmq            amqp-client            5.14.0                            org.slf4j            slf4j-nop            1.7.25            

第二步,配置连接

在src->main->java中新建一个文件夹utils,在此文件夹中添加class:rabbitMQUtils

package utils;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;public class RabbitMQUtils {    private static final ConnectionFactory factory;    static {        factory = new ConnectionFactory();        factory.setHost("126.239.25.24");  // 换成自己的ip        factory.setPort(5672);  // 一般默认端口为5672        factory.setUsername("root");          factory.setPassword("123456");        factory.setAutomaticRecoveryEnabled(true);  // 开启Connection自动恢复功能        factory.setNetworkRecoveryInterval(5000);        factory.setVirtualHost("/");        factory.setConnectionTimeout(30 * 1000);        factory.setHandshakeTimeout(30 * 1000);        factory.setShutdownTimeout(0);    }    // 定义提供连接对象的方法    public static Connection getConnection() {        try {            return factory.newConnection();        } catch (Exception e) {            e.printStackTrace();        }        return null;    }    // 定义关闭通道和连接的方法    public static void closeAll(Channel chan, Connection conn) {        try{            if(chan != null)  chan.close();            if(conn != null)  conn.close();        } catch (Exception e) {            e.printStackTrace();        }    }}

需要注意的是要将ip、用户名、密码更换成自己的,如果是在服务器上装的MQ记得在安全组中把端口放行,另外记得设置虚拟用户"/",或改成自己的虚拟用户名。

第三步,测试连接

使用直连测试连接效果,在src->main->java创建文件夹direct,添加两个class:consumer和producer。

package direct;import com.rabbitmq.client.*;import utils.RabbitMQUtils;import java.io.IOException;public class producer {    public static void main(String[] args) throws IOException {        Connection connection = RabbitMQUtils.getConnection();        assert connection != null;        final Channel channel = connection.createChannel();        // 声明交换机        channel.exchangeDeclare("direct_router", "direct", true, false, false, null);        // 声明消息队列        // 参数1: 队列名称        // 参数2: 定义是否需要持久化队列,true为持久化        // 参数3: 定义是否让当前连接独占队列,true为独占        // 参数4: 是否在消费完成后自动删除队列,true为删除        // 参数5: 额外附加参数,传入HashMap        channel.queueDeclare("direct_queue", false, false, false, null);        // 交换机与消息队列绑定        channel.queueBind("direct_queue", "direct_router", "Dir-RQ");        // 发送消息        // 参数1: 交换机名称        // 参数2: routingKey        // 参数3: 若为true,则当消息无法送达指定队列时会触发channel.BasicReturn事件否则broker会将消息直接丢弃        // 参数4: 传递消息的额外设置        // 参数5: 发送消息内容        String msg="direct producer message";        channel.basicPublish("direct_router", "Dir-RQ", true, null, msg.getBytes());        RabbitMQUtils.closeAll(channel, connection);    }}
package direct;import com.rabbitmq.client.*;import utils.RabbitMQUtils;import java.io.IOException;public class consumer {    public static void main(String[] args) throws IOException, InterruptedException {        Connection connection = RabbitMQUtils.getConnection();        assert connection != null;        final Channel channel = connection.createChannel();        DefaultConsumer consumer = new DefaultConsumer(channel){            @Override            public void handleDelivery(                    String consumerTag,                    Envelope envelope,                    AMQP.BasicProperties properties,                    byte[] body            ) throws IOException {                // 打印消息                String msg= new String(body, "utf-8");                System.out.println(msg);                // 应答机制 将队列中的消息删除掉,第二个参数为是否需要确认多个ACK                channel.basicAck(envelope.getDeliveryTag(), false);            }        };        // 接收消息        // 参数1: 队列名称        // 参数2: 是否自动签收消息,对应上面的应答机制,最好手动删,否则消费者多了可能会出问题        channel.basicConsume("direct_queue", false, "ConsumerTag", consumer);        Thread.sleep(20000);        RabbitMQUtils.closeAll(channel, connection);    }}

右键运行consumer,20s内运行producer就能看见控制台中接收到了producer发出的消息。

来源地址:https://blog.csdn.net/cris_tian/article/details/131531080

--结束END--

本文标题: Java连接rabbitMQ(三步超简单)

本文链接: https://lsjlt.com/news/413343.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java连接rabbitMQ(三步超简单)
    rabbitMQ安装教程网上特别多就不多赘述,这里主要说一下怎么去连接 第一步,创建工程添加依赖 创建一个Maven项目,打开pom.xml,添加两个依赖,并更新Maven。 4.0.0 org.example rabb...
    99+
    2023-09-20
    java-rabbitmq java rabbitmq
  • Java连接超时
    java.net.SocketTimeoutException: connect timed out 通常表示无法建立到远程服务器的连接,可能是由于网络问题或目标服务器不可用导致的。这种情况下,可以尝试以下几种解决方法: 检查网络连接:可...
    99+
    2023-09-02
    java
  • java连接oracle数据库简单实例
    package cn.com.login.dao; import java.sql.Connection; import java.sql.DriverManager; im...
    99+
    2024-04-02
  • 三步 用TreeWalk架DNS就这么简单
    TreeWalk是一种用于架设DNS服务器的工具,可以方便地实现DNS解析功能。以下是使用TreeWalk架设DNS服务器的三个简单...
    99+
    2023-08-17
    TreeWalk
  • DBeaver连接MySQL的超详细步骤
    目录一、DBeaver连接mysql二、Kettle连接DBeaver总结一、DBeaver连接MySQL 打开DBeaver软件,点击MySQL创建数据库连接 点击下一步 把需要连接的数据库名、用户名及密码填进去 ...
    99+
    2023-05-12
    dbeaver连接mysql dbeaver连接数据库 dbeaver连接数据库
  • Java实现简单连连看游戏
    本文实例为大家分享了Java实现连连看游戏的具体代码,供大家参考,具体内容如下 大二时做的Java课程设计,拿了个优秀,用了icon来模拟做了个简单的连连看,代码量不多,仅供参考。 ...
    99+
    2024-04-02
  • MySQL - 安装、连接、简单介绍
    1、安装 MySQL8.0 安装MySQL 8.0的步骤,以 Windows 为例: 1.1 下载MySQL Installer: 需要从MySQL官方网站下载MySQL Installer。在下载页面中,选择适用于Windows的MySQ...
    99+
    2023-08-16
    mysql 数据库
  • java实现简单三子棋游戏
    本文实例为大家分享了java实现简单三子棋游戏的具体代码,供大家参考,具体内容如下 JOptionPane类的使用 编写程序,实现简单的三子棋游戏。在三子棋中,双方在3×...
    99+
    2024-04-02
  • django连接数据库获取数据的简单步骤记录
    目录1、创建项目2、创建应用3、运行项目4、连接数据库5、创建数据库stu6、应用7、总结1、创建项目 执行代码 django-admin startproject myweb 2...
    99+
    2024-04-02
  • java远程连接调用Rabbitmq的实例代码
    本文介绍了java远程连接调用Rabbitmq,分享给大家,希望此文章对各位有所帮助。打开IDEA创建一个maven工程(Java就可以了)。  pom.xml文件如下<project xmlns="http://maven...
    99+
    2023-05-31
    java 远程 调用
  • adb 连接虚拟机简单操作
    环境构建请看上章   adb connect 127.0.0.1:7555    这个命令是Windows链接网易MuMu管理器的 adb connect localhost:22471 这个是mac的命令           点开这个链...
    99+
    2016-02-20
    adb 连接虚拟机简单操作 数据库入门 数据库基础教程
  • mysql连接查询的简单操作
    下文主要给大家带来mysql连接查询的简单操作,希望这些内容能够带给大家实际用处,这也是我编辑mysql连接查询的简单操作这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。1.innerjoin(内连...
    99+
    2024-04-02
  • 一个简单的JDBC连接程序
    package com;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import ja...
    99+
    2024-04-02
  • JAVA超级简单的爬虫实例讲解
    爬取整个页面的数据,并进行有效的提取信息,注释都有就不废话了:public class Reptile { public static void main(String[] args) { String url1=""; //传入...
    99+
    2023-05-30
    java 爬虫 ava
  • java对接Prometheus的简单示例
    Prometheus是由CNCF(Cloud Native Computing Foundation)维护的开源监控和警报系统。它最初由SoundCloud开发,并于2012年发布。Prometheus旨在帮助开发人员和运维团队监控和管理大...
    99+
    2023-09-12
    java prometheus 开发语言
  • Java Servlet异步请求开启的简单步骤
    目录1. 背景2. Servlet同步请求3. Servlet异步请求4. 异步Servlet使用方法5. Spring中的实现例子附:异步对象监听器总结1. 背景 在研究长轮询的实...
    99+
    2024-04-02
  • MySQL: SSL 连接简介及设置步骤
    MySQL: SSL 连接简介及设置步骤摘要:MySQL 提供了 SSL(Secure Sockets Layer)连接来加密在客户端和服务器之间传输的数据。本文将介绍 SSL 连接的概念和作用,并提供在 MySQL 中设置 SSL 连接的...
    99+
    2023-10-22
    ssl 设置 连接
  • 简单三步修改 实现Windows XP自动登录
    在进入Windows XP桌面之前,每次都会出现一个用脑登录界面,要求我们输入用户名与密码,可以加大了系统的安全性,也为多人共用一台电脑提供了方便,但如果是家用电脑,只有你一个人使用,这样每次密码,的确不有点不大方便。我...
    99+
    2023-05-24
    自动登录 Windows XP
  • java如何实现简单三子棋游戏
    本篇内容主要讲解“java如何实现简单三子棋游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java如何实现简单三子棋游戏”吧!JOptionPane类的使用编写程序,实现简单的三子棋游戏。在...
    99+
    2023-06-30
  • 简单学习SQL的各种连接Join
    SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。 最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)、SQL LEFT JOIN、SQL RIGH...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作