0


RabbitMQ ---- Hello World

RabbitMQ ---- Hello World

本节使用 Java 编写两个程序。发送单个消息的生产者和接收消息并打印出来的消费者。
在这里插入图片描述

1. 依赖

<!--指定 jdk 编译版本--><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>8</source><target>8</target></configuration></plugin></plugins></build><dependencies><!--rabbitmq 依赖客户端--><dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.8.0</version></dependency><!--操作文件流的一个依赖--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency></dependencies>

2. 消息生产者

/**
 * 生产者
 * @author dell
 * @date 2023/7/6 10:52
 */publicclassProduce{privatefinalstaticStringQUEUE_NAME="hello";publicstaticvoidmain(String[] args)throwsIOException,TimeoutException{// 创建一个连接工厂ConnectionFactory factory =newConnectionFactory();
        factory.setHost("192.168.10.100");
        factory.setUsername("admin");
        factory.setPassword("123");// channel 实现了自动 close 接口 自动关闭,不需要显示关闭Connection connection = factory.newConnection();Channel channel = connection.createChannel();/**
         * 生成一个队列
         * 1. 队列名称
         * 2. 队列里面的消息是否持久化 默认消息存储在内存中
         * 3. 该队列是否只提供一个消费者进行消费 是否进行共享 true 可以多个消费者消费
         * 4. 是否自动删除 最后一个消费者断开连接以后 该队列是否自动删除 true 自动删除
         * 5. 其他参数
         */
        channel.queueDeclare(QUEUE_NAME,false,false,false,null);String message  ="hello world";/**
         * 发送一个消息
         * 1. 发送到哪个交换机
         * 2. 路由的 key 是哪个
         * 3. 其他的参数信息
         * 4. 发送消息的消息体
         */
        channel.basicPublish("",QUEUE_NAME,null, message.getBytes());System.out.println("消息发送完毕");}}

运行程序
在这里插入图片描述
查看管理页面
在这里插入图片描述

3. 信息消费者

/**
 * 消费者
 * @author dell
 * @date 2023/7/6 11:09
 */publicclassConsumer{privatefinalstaticStringQUEUE_NAME="hello";publicstaticvoidmain(String[] args)throwsIOException,TimeoutException{// 创建一个连接工厂ConnectionFactory factory =newConnectionFactory();
        factory.setHost("192.168.10.100");
        factory.setUsername("admin");
        factory.setPassword("123");// channel 实现了自动 close 接口 自动关闭,不需要显示关闭Connection connection = factory.newConnection();Channel channel = connection.createChannel();System.out.println("等待接收消息......");// 推送的消息如何进行消费的接口回调DeliverCallback deliverCallback =(consumerTag, delivery)->{String message =newString(delivery.getBody());System.out.println(message);};// 取消消费的一个回调接口 如在消费的时候队列被删除了CancelCallback cancelCallback =(consumerTag)->{System.out.println("消息消费被中断");};/**
         * 消费者消费消息
         * 1. 消费哪个队列
         * 2. 消费成功之后是否咬自动应答 true 自动应答 false 手动应答
         * 3. 消费者未成功消费的回调
         * 4. 消费者取消消息的回调
         */
        channel.basicConsume(QUEUE_NAME,true, deliverCallback, cancelCallback);}}

在这里插入图片描述

标签: rabbitmq 分布式

本文转载自: https://blog.csdn.net/qq_52354698/article/details/131571032
版权归原作者 在人间负债^ 所有, 如有侵权,请联系我们删除。

“RabbitMQ ---- Hello World”的评论:

还没有评论