栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

RabbitMQ—入门搭建工程

RabbitMQ—入门搭建工程

目录

1、需求

2、步骤

3、搭建工程实例

1.1、创建工程

1.2、添加依赖

1.3、编写生产者

1.4、编写消费者


1、需求

        使用简单模式为例搭建环境完成消息传递

2、步骤

        ①  创建工程(生产者、消费者)

        ② 分别添加依赖

        ③ 编写生产者发送消息

        ④ 编写消费者接收消息

3、搭建工程实例

1.1、创建工程

① 创建生产者

② 创建消费者

1.2、添加依赖

    
         com.rabbitmq
         amqp-client
         5.6.0
    



    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.8.0
            
                1.8
                1.8
        
        
    

1.3、编写生产者
public class Producer {

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

    public static void main(String[] args) throws Exception {
        // 1、创建工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost("192.168.137.118");
        connectionFactory.setPort(5672);//AMQP协议
        connectionFactory.setUsername("admin");
        connectionFactory.setPassword("admin");

        // 2、创建连接
        Connection connection = connectionFactory.newConnection();

        // 3、创建信道
        Channel channel = connection.createChannel();

        

        channel.queueDeclare(QUEUE_NAME, true, false, false, null);

        
        String msg = "Hello,Rabbit!";

        channel.basicPublish("", QUEUE_NAME, null, msg.getBytes());

        // 6.关闭对象(信道)
        channel.close();
        connection.close();
    }

}

 在执行上述的消息发送之后;可以登录rabbitMQ的管理控制台,可以发现队列和其消息:

 

1.4、编写消费者

public class Consumer1 {

    public static final String QUEUE_NAME = "simple_queue";// 声明一个常量作为队列名(要求与生产者一样)

    public static void main(String[] args) throws Exception {
        // 1、创建工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost("192.168.137.118");
        connectionFactory.setPort(5672);//AMQP协议
        connectionFactory.setUsername("admin");
        connectionFactory.setPassword("admin");

        //2.创建连接
        Connection connection = connectionFactory.newConnection();

        //3.创建信道
        Channel channel = connection.createChannel();

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

        //5、创建消费者消费信息
        Consumer consumer = new DefaultConsumer(channel) {
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope,
                                       AMQP.BasicProperties properties, byte[] body) throws IOException {
                System.out.println("consumerTag = " + consumerTag);
                System.out.println("envelope.getDeliveryTag() = " + envelope.getDeliveryTag()); //相当于id
                System.out.println("envelope.getExchange() = " + envelope.getExchange());
                System.out.println("envelope.getRoutingKey() = " + envelope.getRoutingKey());
                System.out.println("properties = " + properties);
                System.out.println("body = " + new String(body));
            }
        };
        
        channel.basicConsume(QUEUE_NAME, false, consumer);

        //消费者无需关闭对象,一旦生产者来了信息随时处理
    }
}

运行程序可发现,rabbitmq管理控制台的消息从队列上消失,消费者取出消息,并且控制台打印出消息

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/745220.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号