当前位置: 首页 > news >正文

RabbitMQ学习02

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.生产者

public class Producer {//队列public static final String QUEUE_NAME = "hello";//发消息public static void main(String[] args) throws IOException, TimeoutException {//创建一个连接工厂ConnectionFactory factory = new ConnectionFactory();//工厂id 连接rabbitMQ队列factory.setHost("192.168.170.150");//用户名factory.setUsername("admin");//密码factory.setPassword("123");//创建连接Connection MQConnection = factory.newConnection();//获取信道Channel channel = MQConnection.createChannel();//交换机/*** 生成一个队列* 1.队列名称* 2.队列里的消息是否持久化(磁盘)  默认情况消息存储在内存中* 3.该队列是否只提供一个消费者消费,是否进行消息共享?true 可以多个消费者* 4.表示是否自动删除  最后一个消费者断开连接后  该队列是否自动删除  true自动删除  false不自动删除* 5.其他参数*/channel.queueDeclare(QUEUE_NAME,false,false,false,null);//发消息String message = "hello rabbitMQ";/*** 发送一个消息* 1.发送给哪个交换机?* 2.路由的key值是什么* 3.其他参数信息* 4.发送的消息的消息体*/channel.basicPublish("",QUEUE_NAME,null,message.getBytes());System.out.println("消息发送完毕");}}

3.消费者

public class Consumer {//队列的名称public static final String QUEUE_NAME = "hello";//接收消息public static void main(String[] args) throws IOException, TimeoutException {//创建连接工厂ConnectionFactory factory = new ConnectionFactory();//工厂id 连接rabbitMQ队列factory.setHost("192.168.170.150");factory.setUsername("admin");factory.setPassword("123");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);}}

上面代码出现了冗余
所以抽取成工具类

public class RabbitMQUtils {public static Channel getChannel() throws Exception{//创建一个连接工厂ConnectionFactory factory = new ConnectionFactory();//工厂id 连接rabbitMQ队列factory.setHost("192.168.170.150");//用户名factory.setUsername("admin");//密码factory.setPassword("123");//创建连接Connection MQConnection = factory.newConnection();//获取信道Channel channel = MQConnection.createChannel();return channel;}
}
http://www.lryc.cn/news/213177.html

相关文章:

  • android中的Package安装、卸载、更新替换流程
  • 思维训练第三课 反意疑问句
  • nvm安装步骤
  • 关于比较级(内含名词比较级)
  • 【算法|动态规划 | 线性dp | 最长上升子序列模型No.1】AcWing1017.怪盗基德的滑翔翼 AcWing1014.登山
  • 2023年道路运输企业主要负责人证模拟考试题库及道路运输企业主要负责人理论考试试题
  • Linux学习第26天:异步通知驱动开发: 主动
  • SpringBoot的核心配置:YAML概述、基础语法;JSR303数据校验;多环境切换
  • 把Qt6.2.4内置的标签打印了一遍
  • element-ui 表单校验・大全
  • 搭建高性能分布式存储-minio
  • leetCode 137. 只出现一次的数字 II(拓展篇) + 模5加法器 + 真值表(数字电路)
  • docker导致root空间满进入不了系统解决方案
  • uni-app遮罩遮住小程序tabbar
  • Flink on yarn 加载失败plugins失效问题解决
  • 显卡服务器的特点和优势在哪里
  • c++设计模式二:原型模式
  • 【Qt控件之QMessageBox】详解
  • SSH安全登录远程主机
  • 揭秘!产品经理提升效率的秘密武器:10款AI生成PPT工具
  • Oracle修改带数据的字段类型
  • WebService接口方式和Restful接口这两者有什么区别和相同点
  • jenkins自动化操作步骤(gitblit)
  • centos中mongodb设置服务自启动并 允许远程IP访问
  • 实时定位和配送追踪:开发万岳同城外卖APP的关键技术特性
  • 数据库强化(3.存储过程)
  • 雅思小作文笔记
  • Java List Set Map
  • 【数据结构】数组和字符串(十三):链式字符串的基本操作(串长统计、查找、复制、插入、删除、串拼接)
  • Python3 获取当前服务器公网 IP 地址