RabbitMQ02_简单模式、Publish/Subscribe发布与订阅模式、Routing路由模式、Topics通配符模式、Work模式-轮询、公平(一)

简介: RabbitMQ02_简单模式、Publish/Subscribe发布与订阅模式、Routing路由模式、Topics通配符模式、Work模式-轮询、公平(一)

①. Simple简单模式


  • ①. 简单模式分析如下:
    生产者:发送消息到RabbitMQ队列(simple_queue)
    消费者:接收RabbitMQ队列消息


image.png


②. 导入对于的依赖、工具类的抽取


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


public class ConnectionUtil {
    public static Connection getConnection() throws IOException, TimeoutException {
        //1. 创建连接工厂(设置RabbitMQ的连接参数);
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //主机;默认localhost
        connectionFactory.setHost("139.198.169.136");
        //连接端口;默认5672
        connectionFactory.setPort(5672);
        //虚拟主机;默认/
        connectionFactory.setVirtualHost("/myvitrualhost");
        //用户名;默认guest
        connectionFactory.setUsername("tang");
        //密码;默认guest
        connectionFactory.setPassword("9602111022yxTZ@");
        //2. 创建连接;
        return connectionFactory.newConnection();
    }
}


③. 编写生产者

注意:设置虚拟机,一个mq服务可以设置多个虚拟机,每个虚拟机就相当于一个独立的mq


public class Producer {
    static final String QUEUE_NAME = "simple_queue";
    public static void main(String[] args) throws Exception{
        //1. 创建连接工厂(设置RabbitMQ的连接参数);
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //主机;默认localhost
        connectionFactory.setHost("139.198.169.136");
        //连接端口;默认5672
        connectionFactory.setPort(5672);
        //虚拟主机;默认/
        connectionFactory.setVirtualHost("/myvitrualhost");
        //用户名;默认guest
        connectionFactory.setUsername("tang");
        //密码;默认guest
        connectionFactory.setPassword("9602111022yxTZ@");
        //2. 创建连接;
        Connection connection = connectionFactory.newConnection("简单模式生产者");
        //3. 创建频道;
        Channel channel = connection.createChannel();
        //4. 声明队列:如果队列在mq中没有则要创建
        /**
         * 参数1:队列名称:
         * 参数2:是否定义持久化队列(消息会持久化保存在服务器上)
         * 所谓持久化消息是否存盘,如果false,非持久化
         * 参数3:是否独占本连接,队列只允许在该连接中访问,如果连接关闭后队列自动删除,
         * (如果将此参数设置为true可用于临时队列的创建)
         * 参数4:是否在不使用的时候队列自动删除,如果将此参数和参数3设置为true就可以实现
         * 临时队列[队列不用了就自动删除]
         * 参数5:参数,可以设置一个队列的扩展参数,比如:可设置存活时间
         */
        channel.queueDeclare(QUEUE_NAME, true, false, false, null);
        //5. 发送消息;
        String message = "你好!小兔纸。";
        /**
         * 参数1:交换机名称;如果没有则指定空字符串(表示使用默认的交换机)
         * 参数2:路由key,简单模式中可以使用队列名称
         * 交换机根据路由key来将消息转发到指定的队列,如果使用默认的交换机,
         * routingKey要设置为队列的名称
         * 参数3:消息其它属性
         * 参数4:消息内容
         */
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
        System.out.println("已发送消息:" + message);
        //6. 关闭资源
        channel.close();
        connection.close();
    }
}
相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
10月前
|
传感器 物联网
详解MQTT主题和通配符
详解MQTT主题和通配符
767 0
详解MQTT主题和通配符
|
消息中间件 Java Kafka
计算机应届生一定要会的JAVA面试题:RabbitMQ是如何实现消息路由的?
一个应届生去面试,可能没有什么实战经验,今天被问到一个这样的面试题,说“RabbitMQ是如何实现消息路由的?“一下子竟然不知道如何组织语言了。今天我给大家分享一下我的理解。
95 1
EMQ
|
4月前
|
Linux 网络性能优化
MQTT 5.0 报文解析 03:SUBSCRIBE 与 UNSUBSCRIBE
在 MQTT 中,SUBSCRIBE 报文用于发起订阅请求,SUBACK 报文用于返回订阅结果。而 UNSUBSCRIBE 和 UNSUBACK 报文则在取消订阅时使用。相比于取消订阅,订阅操作更加常用。不过在本文中,我们仍然会一并介绍订阅与取消订阅报文的结构与组成。
EMQ
312 8
MQTT 5.0 报文解析 03:SUBSCRIBE 与 UNSUBSCRIBE
|
1月前
|
消息中间件 Java Maven
RabbitMQ通配符模式
RabbitMQ通配符模式
39 0
|
2月前
|
消息中间件 Kafka
面试题Kafka问题之RabbitMQ的路由配置工作如何解决
面试题Kafka问题之RabbitMQ的路由配置工作如何解决
50 1
|
4月前
|
消息中间件 Java
SpringBoot实现RabbitMQ的通配符交换机(SpringAMQP 实现Topic交换机)
SpringBoot实现RabbitMQ的通配符交换机(SpringAMQP 实现Topic交换机)
48 1
|
10月前
|
消息中间件 Java Maven
消息中间件系列教程(11) -RabbitMQ -案例代码(通配符模式)
消息中间件系列教程(11) -RabbitMQ -案例代码(通配符模式)
68 0
|
10月前
|
消息中间件 Java Maven
消息中间件系列教程(10) -RabbitMQ -案例代码(路由模式)
消息中间件系列教程(10) -RabbitMQ -案例代码(路由模式)
70 0
|
4月前
|
消息中间件 Java Maven
springboot 使用注解的方式创建rabbitmq的交换机、路由key、以及监听队列的名称
springboot 使用注解的方式创建rabbitmq的交换机、路由key、以及监听队列的名称
|
4月前
|
消息中间件
【面试问题】MQ 消息怎么路由?
【1月更文挑战第27天】【面试问题】MQ 消息怎么路由?