首页 > 编程语言 >RabbitMQ 在 java 中的应用

RabbitMQ 在 java 中的应用

时间:2023-01-08 13:56:10浏览次数:42  
标签:java 对象 factory RabbitMQ connection 应用 false 连接 channel

一、建立与 RabbitMQ 的连接工具类 ConnectionUtil.class 。

1、创建一个  ConnectionFactory 连接工厂对象。

ConnectionFactory factory = new ConnectionFactory();

2、设置服务地址。

factory.setHost("192.168.37.138");

3、设置端口。

factory.setPort(5672);

4、设置账号信息、用户名、密码、虚拟主机(vhost)、设置超时时间(不然报错)

factory.setVirtualHost("/sfwu");
factory.setUsername("sfwu");
factory.setPassword("123456");
factory.setHandshakeTimeout(600000000);

5、通过连接工厂对象创建连接对象。

Connection connection = factory.newConnection();

6、返回连接对象。

return connection;

 

二、创建生产者类 Send.class 。

1、通过连接对象获取连接。

Connection connection = ConnectionUtil.getConnection();

2、从连接中创建通道,使用通道才能完成消息相关的操作。

Channel channel = connection.createChannel();

3、使用消息通道对象创建队列。

channel.queueDeclare("simple_queue", false, false, false, null);

4、定义消息内容。

String message = "Hello World!";

5、使用消息通道对象,向指定的队列中发送消息。

channel.basicPublish("","simple_queue", null, message.getBytes());

6、输出成功发送出去的消息内容。

System.out.println(" [发送成功] Sent '" + message + "'");

7、关闭通道和连接。

channel.close();
connection.close();

 

三、创建消费者类 Recv.class 。

1、通过工具类获取连接。

Connection connection = ConnectionUtil.getConnection();

2、通过连接对象创建通道。

Channel channel = connection.createChannel();

3、通过消息通道对象声明队列。

channel.queueDeclare("simple_queue", false, false, false, null);

4、定义队列里的消费者对象,并在对象中传入消息通道对象。

DefaultConsumer consumer = new DefaultConsumer(channel) {
  // 获取消息,并且处理,这个方法类似事件监听,如果有消息的时候,会被自动调用
  @Override
  public void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties,
    byte[] body) throws IOException {
    // body 即消息体
    String msg = new String(body);
    System.out.println(" [消费者] received : " + msg + "!");
  }
};

5、监听队列,第二个参数:是否自动进行消息确认。

channel.basicConsume("simple_queue", true, consumer);

 

标签:java,对象,factory,RabbitMQ,connection,应用,false,连接,channel
From: https://www.cnblogs.com/sfwu/p/17034584.html

相关文章

  • Java Netty框架自建DNS代理服务器教程
    前言DNS协议作为着互联网客户端-服务器通信模式得第一关,在当下每天都有成千上亿上网记录产生得当今社会,其重要性自然不可言喻。在国内比较有名得DNS服务器有电信得114.11......
  • JavaFX:构建JavaFX的IoC,实现Bean管理,自由注入Contoller需要的Bean
    习惯了使用Spring的IoC开发JavaEE应用之后,总想着在JavaFX开发中使用IoC管理应用中的单例对象,这里记录一下构建JavaFX.IoC实现Bean管理和依赖注入的过程。1.IoC.需求实际......
  • java基础--lambda表达式
    lambda表达式,一种常见用法,就是简化匿名内部类。使用前提条件:如果一个方法A(),只涉及一个抽象方法待实现,那么使用A()时,涉及到匿名内部类,就可以简化为lambda表达式lambda表......
  • 提升你的技能:编写干净高效的 JavaScript 的 7 个技巧
    编写干净的代码对每个开发人员来说都是必不可少的,因为它使代码易于阅读、理解和维护。干净的代码使团队中每个人的生活更轻松,您的代码更不容易出错,并且更容易添加新功能。......
  • Java 集合 - Set 实现类
    Set具有与Collection完全一样的接口,只是行为上不同,Set不保存重复的元素。HashSet不允许出现重复元素,不保证集合中元素的顺序,允许包含值为null的元素,但最多只能一个。......
  • Java集合中迭代器的原理
    我们通过一个小案例进行分析:publicclassIteratorDemo1{publicstaticvoidmain(String[]args){//创建集合对象Collection<String>c=new......
  • java多线程知识点总结
    一、线程的三种创建方法1-1继承Thread继承thread方法然后重写run方法,在用start开启线程。代码实现:Threadt=newThread(){@Overridepu......
  • java弹幕视频网站源码
    简介Java基于ssm的弹幕视频系统,用户注册后可以上传视频进行投稿,也可以浏览视频发送弹幕,在个人中心管理视频、管理弹幕、管理评论等。管理员可以管理视频弹幕评论,查看统计......
  • java食堂库存管理系统源码
    简介Java基于sprinboot开发的食堂库存管理系统,用于统计食堂库存的,包含采购、入库、出库、折损等功能。演示视频https://www.bilibili.com/video/BV1Jf4y1C7vq/?share_s......
  • java基于ssm空气质量检测系统源码网站空气质量监测源码
    简介Java基于ssm的空气质量检测系统,检测设备检测一定范围内的企业空气指数,如果有污染则地图显示红色标记。演示视频https://www.bilibili.com/video/BV1GK4y1W7JB/?shar......