RabbitMQ 《简单消息》

news/2024/7/7 22:21:49





package com.xzp.rabbitmq.simple;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.xzp.rabbitmq.util.ConnectionUtil;

/**
* "Hello World!"
* 简单消息
* 消息发送者  - R - 发送消息(生产者)
*
*/
public class Send {

    private final static String QUEUE_NAME = "simple_queue";

    public static void main(String[] argv) throws Exception {

        //获取到连接以及mq通道
        Connection connection = ConnectionUtil.getConnection();

        //从连接中创建通道
        Channel channel = connection.createChannel();

        //声明(创建)队列
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);

        //定义消息内容
        String message = "Hello World! My Name is suenpeng ! My Name is 2222 !";

        //采用队列订阅消息
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes());

        System.out.println();
        System.out.println("发送消息开始---");
        System.out.println(" [x] Send '" + message + "'");
        System.out.println("发送消息结束---");
        System.out.println();

        //关闭通道和连接
        channel.close();
        connection.close();
    }
}




package com.xzp.rabbitmq.simple;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.QueueingConsumer;
import com.xzp.rabbitmq.util.ConnectionUtil;

/**
* "Hello World!"
* 简单消息
* 消息接收者  - R - 接收消息(消费者)
*
*/
public class Recv {

    private final static String QUEUE_NAME = "simple_queue";

    public static void main(String[] argv) throws Exception {

        // 获取到连接以及mq通道
        Connection connection = ConnectionUtil.getConnection();

        //声明创建通道
        Channel channel = connection.createChannel();

        // 声明队列
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);

        // 定义队列的消费者
        QueueingConsumer consumer = new QueueingConsumer(channel);
        // 监听队列
        // 这里true表示"自动模式", 无需反馈,即拿走就认为消费成功。
        channel.basicConsume(QUEUE_NAME, true, consumer);

        // 获取消息
        while (true) {
            QueueingConsumer.Delivery delivery = consumer.nextDelivery();
            String message = new String(delivery.getBody());
            System.out.println();
            System.out.println("接收消息开始---");
            System.out.println(" [x] Received '" + message + "'");
            System.out.println("接收消息结束---");
            System.out.println();
        }
    }

}

package com.xzp.rabbitmq.util;

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


/**
 * Rabbit获取链接工具类
 */
public class ConnectionUtil {


    public static Connection getConnection() throws Exception {
        //定义连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        //设置服务地址
        factory.setHost("localhost");
        //端口
        factory.setPort(5672);
        //设置账号信息,用户名、密码、vhost
        factory.setVirtualHost("/baseup");
        factory.setUsername("baseup");
        factory.setPassword("wukong@123");
        // 通过工程获取连接
        Connection connection = factory.newConnection();
        return connection;
    }

}


http://lihuaxi.xjx100.cn/news/2125269.html

相关文章

【产品设计】数字化智慧空间(园区)的体验设计

要想做好智慧园区的体验设计,我们需要从多个维度出发去做考量,因为其业态内容是十分复杂的。从产品业务模式、需求层次、应用构成、典型需求四个方面展开论述,一起来看一下。 智慧城市的概念与前景已遍及生产生活的各个方面,园区作…

修改android11的默认桌面

要修改 Android 11 的默认桌面,通常需要使用第三方的启动器(Launcher)应用程序来替换系统默认的启动器。以下是一般步骤: 下载第三方启动器应用: 在 Google Play 商店或其他应用商店中搜索并下载你喜欢的第三方启动器应…

蓝桥杯练习题——博弈论

1.必胜态后继至少存在一个必败态 2.必败态后继均为必胜态 Nim游戏 思路 2 3,先手必赢,先拿 1,然后变成 2 2,不管后手怎么拿,先手同样操作,后手一定先遇到 0 0 a1 ^ a2 ^ a3 … ^ an 0,先…

界面控件DevExpress WinForms/WPF v23.2 - 电子表格支持表单控件

DevExpress WinForm拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任…

react之useContext

1. src文件夹下新建ctx/index.jsx import { createContext } from reactconst Ctx createContext({name: ,age: })export default Ctx 2. 在提供数据的组件使用Ctx.Provider组件包裹要接收数据的组件,并使用value值提供数据 import A from ./A import Ctx from ./ctx func…

EXCEL中利用VBA将16进制数据按照BIT进行解析,并按照BIT的数值分别显示不同的状态字符串

1、场景,在EXCEL导出数据中,经常存在BIT型变量数据的解析问题,按照每一个BIT进行处理,并将一列数值转化成多列的状态显示;例如:在EXCEL中 用 VBA实现 一个16进制数据 按照BIT进行拆解,分成多列进行显示,BIT0=0 显示ON BIT0=1 OFF BIT 1= 1 显示欠压 ,BIT1=0显示正常 …

Java毕业设计-基于springboot开发的休闲娱乐代理售票系统-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、后台登录2.1管理员功能2.2用户功能 四、毕设内容和源代码获取总结 Java毕业设计-基于springboot开发的休闲娱乐…

js在新页面打开一个链接

在JavaScript中,如果你想要在新页面(新的浏览器标签或窗口)中打开一个链接,你可以使用window.open()方法。这个方法接受一个URL作为参数,并尝试在新窗口或新标签中打开它。 下面是一个简单的示例: // 打开…