首页 > 其他分享 >RabbitMq简单模式

RabbitMq简单模式

时间:2022-11-15 10:24:08浏览次数:40  
标签:String zjh 队列 factory 模式 RabbitMq 简单 public 消息

RabbitMq简单模式

定义一个生产者,负责发送消息到队列中

/**
 * @author zjh
 * 生产者发信息
 */
public class Producer {

    /**
     * 队列名称
     */
    public static final String QUEUE_NAME = "hello";

    /**
     * 发消息
     */
    public static void main(String[] args) throws Exception {
        // 创建一个连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        // 工厂IP 连接RabbitMq的队列
        factory.setHost("localhost");
        // 用户名
        factory.setUsername("zjh");
        // 密码
        factory.setPassword("zjh");

        // 创建连接
        Connection connection = factory.newConnection();
        // 获取信道
        Channel channel = connection.createChannel();
        /*
            生成一个队列
            1.队列名称
            2.队列里面的消息是否持久化,默认情况消息存储在内存中
            3.该队列是否只提供一个消费者进行消费 是否进行消息共享,true可以多个消费者消费
            4.是否自动删除 最后一个消费者断开连接以后 该队列是否自动删除 true自动删除 false不自动删除
            5.其他参数
         */
        channel.queueDeclare(QUEUE_NAME, true, false, false, null);
        // 发消息 初次使用
        String message = "hello world";

        /*
            发送一个消费
            1.发送到哪个交换机
            2.路由的Key是哪个,本次队列的名称
            3.其他的参数信息
            4.发送消息的消息体
         */
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
        System.out.println("消息发送完毕");
    }
}

定义消费者,消费指定队列

/**
 * @author zjh
 * 消费消息
 */
public class Consumer {

    /**
     * 队列名称
     */
    public static final String QUEUE_NAME = "hello";

    /**
     * 接收消息
     */
    public static void main(String[] args) throws Exception {
        // 创建一个连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        // 工厂IP 连接RabbitMq的队列
        factory.setHost("192.168.10.119");
        // 用户名
        factory.setUsername("zjh");
        // 密码
        factory.setPassword("zjh");

        // 创建连接
        Connection connection = factory.newConnection();
        // 获取信道
        Channel channel = connection.createChannel();

        // 声明接收消息回调
        DeliverCallback deliverCallback = (consumerTag, message) -> System.out.println(new String(message.getBody()));

        // 声明取消接收消息回调
        CancelCallback cancelCallback = consumerTag -> System.out.println("消息消费被中断");

        /*
            消费者消费信息
            1.消费哪个队列
            2.消费成功之后是否要自动应答 true代表自动应答 false代表手动应答
            3.消费者未成功消费的回调
            4.消费者取消消费的回调
         */
        channel.basicConsume(QUEUE_NAME, true, deliverCallback, cancelCallback);
    }
}

标签:String,zjh,队列,factory,模式,RabbitMq,简单,public,消息
From: https://www.cnblogs.com/zjh0420/p/16891513.html

相关文章

  • Pikachu-一些简单的题
    目录遍历漏洞这题直接查找你想要的核心文件,比较简单敏感信息泄露查看网页源代码发现有账号和密码,直接登录PHP反序列化根据概述提示得知classS{public$......
  • Qt音视频开发02-海康sdk解码(支持句柄/回调/gpu模式/支持win/linux)
    一、前言为何还要选用使用海康sdk,之前不是ffmpeg已经牛皮吹上天了吗?这个问题问得好,那是因为无论ffmpeg也好还是vlc/mpv之类的,都是实现的播放相关,不同的监控硬件厂家对应设......
  • 【ELK解决方案】ELK集群+RabbitMQ部署方案以及快速开发RabbitMQ生产者与消费者基础服
    前言:大概一年多前写过一个部署ELK系列的博客文章,前不久刚好在部署一个ELK的解决方案,我顺便就把一些基础的部分拎出来,再整合成一期文章。大概内容包括:搭建ELK集群,以及写一......
  • 对称加密模式-CipherMode
    原文:https://blog.csdn.net/zfive5/article/details/1428173System.Security.Cryptography加密算法主要分为:l       散列算法(MD5/SHA1/RIPEMD160/SHA256/S......
  • 04.建造者模式
    建造者模式在工厂模式中,关注的是谁创建了这个产品,在建造者模式中,这个产品会有多个复杂工序,例如组装电脑,提供了一个builder类来管理这个组装过程//抽象buildernamespac......
  • 03.抽象工厂模式
    抽象工厂模式AbstractFactoryPattern在简单工厂之后变化得到了工厂方法模式(A工厂生产商品a,B工厂生产商品b),不同的工厂生产不同的商品还有其他变化,现在有一下场景工厂A......
  • PMS简单学习【2.PMS开始安装APK-APK安装】
    PMS简单学习【2.PMS开始安装APK-APK安装】PMS实际对apk的处理的来源还是要从PackageInstallerSession谈起。之前在PackageInstallerSession进行完安装前的准备工作后,最后......
  • 哨兵模式
    1、什么是哨兵模式反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库2、怎么玩1、调整主从服务器为一主二仆模式,6379主、6380、6381仆2......
  • 动态代理简单代码
     /***业务接口*/publicinterfaceSubject{voidcall();} /***业务接口的实现(被代理的类)*/publicclassRealSubjcetimplementsSubject{......
  • ubuntu安装rabbitmq
    系统:Ubuntu20.04tips:一定要在终端sudoapt-getupdate1.安装erlangsudoapt-getinstallerlang-nox2.安装rabbitmqsudoapt-getinstallrabbitmq-serve......