赞
踩
本人只是在B站看视频学习过程中写的笔记,只是方便自己以后能有个复习资料而已。
1.新建一个mave项目,pom文件中增加如下
<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> <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.创建一个简单生产者
package com.one; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import java.io.IOException; import java.util.concurrent.TimeoutException; public class Producer { //队列名称 public static final String QUEUE_NAME ="hello"; public static void main(String[] args) throws IOException, TimeoutException { //创建连接工厂 ConnectionFactory factory = new ConnectionFactory(); //连接ip 用户名 密码 factory.setHost("192.168.126.130"); factory.setUsername("root"); factory.setPassword("123456"); //创建连接 Connection connection = factory.newConnection(); //获取信道 Channel channel = connection.createChannel(); /** * 生成一个队列 * 1。队列名称 * 2.队列是否持久化(存硬盘中) * 3.该队列是否只供一个消费者消费 * 4.是否自动删除 消费之后该队列是否自动删除 * 5.其他参数 */ channel.queueDeclare(QUEUE_NAME,true,false,false,null); //发消息 String message= "hello word"; /** * 发送一个消息 * 1.发送打那个交换机 * 2.路由与的key是那个 本次是队列的名称 * 3.其他参数消息 * 4.发送消息的消息体 */ channel.basicPublish("",QUEUE_NAME,null,message.getBytes()); System.out.println("消息发送完毕"); } }
运行之后,可以在mq控制台看见已经推送的消息条数
3.创建一个简单消费者
package com.one; import com.rabbitmq.client.*; import java.io.IOException; import java.util.concurrent.TimeoutException; public class Consumer { //队列名称 public static final String QUEUE_NAME ="hello"; public static void main(String[] args) throws IOException, TimeoutException { //创建连接工厂 ConnectionFactory factory = new ConnectionFactory(); //连接ip 用户名 密码 factory.setHost("192.168.126.130"); factory.setUsername("root"); factory.setPassword("123456"); //创建连接 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.消费成功之后是否要自动应答 * 3.消费者未成功消费的回调 * 4.消费者取消消费的回调 */ channel.basicConsume(QUEUE_NAME,true,deliverCallback,cancelCallback); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。