java mq_java实现MQ消息收发两种方式
定义:
消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。简单理解:蓝牙配对
jar包依赖:
com.rabbitmq
amqp-client
3.0.4
方式一:
(发)
importjava.io.IOException;importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.Connection;importcom.rabbitmq.client.ConnectionFactory;public classSend {private final static String QUEUE_NAME = "qq";public static void main(String[] args) throwsIOException {
ConnectionFactory factory= newConnectionFactory();
factory.setHost("hostname");
factory.setUsername("username");
factory.setPassword("password");
factory.setPort(5672);
Connection connection=factory.newConnection();
Channel channel=connection.createChannel();
channel.queueDeclare(QUEUE_NAME,false, false, false, null);
String message= "Hello World!";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
System.out.println(" [x] Sent '" + message + "'");
channel.close();
connection.close();
}
}
(收)
importcom.rabbitmq.client.ConnectionFactory;importcom.rabbitmq.client.QueueingConsumer;importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.Connection;public classReqv {private final static String QUEUE_NAME = "qq";public static void main(String[] argv) throwsException {
ConnectionFactory factory= newConnectionFactory();
factory.setUsername("username");
factory.setPassword("password");
factory.setHost("hostname");
factory.setVirtualHost("/");
factory.setPort(5672);
Connection connection=factory.newConnection();
Channel channel=connection.createChannel();
channel.queueDeclare(QUEUE_NAME,false, false, false, null);
System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
QueueingConsumer consumer= newQueueingConsumer(channel);
channel.basicConsume(QUEUE_NAME,true, consumer);while(true){
QueueingConsumer.Delivery delivery=consumer.nextDelivery();
String message= newString(delivery.getBody());
System.out.println(" [x] Received '" + message + "'");
}
}
}
方式二:
(发)
importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.Connection;importcom.rabbitmq.client.ConnectionFactory;public classSend2 {private static final String EXCHANGE_NAME = "qq";public static void main (String [] argv) throwsjava.io.IOException {
ConnectionFactory factory= newConnectionFactory();
factory.setHost("hostname");
factory.setUsername("username");
factory.setPassword("password");
factory.setPort(5672);
Connection connection=factory.newConnection();
Channel channel=connection.createChannel();
channel.exchangeDeclare(EXCHANGE_NAME,"fanout",true);
String message="hello world";
channel.basicPublish(EXCHANGE_NAME,"",null,message.getBytes());
System.out.println("[x] Sent'" + message + "'");
channel.close();
connection.close();
}
(收)
importjava.io.IOException;importcom.alibaba.fastjson.JSONObject;importcom.rabbitmq.client.AMQP;importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.Connection;importcom.rabbitmq.client.ConnectionFactory;importcom.rabbitmq.client.Consumer;importcom.rabbitmq.client.DefaultConsumer;importcom.rabbitmq.client.Envelope;public classReqv2 {private static final String EXCHANGE_NAME = "qq";public static void main (String [] argv) throwsException {
ConnectionFactory factory= newConnectionFactory();
factory.setHost("hostname");
factory.setUsername("username");
factory.setPassword("password");
factory.setPort(5672);
Connection connection=factory.newConnection();
Channel channel=connection.createChannel();
channel.exchangeDeclare(EXCHANGE_NAME,"fanout",true);
String queueName=channel.queueDeclare().getQueue();
channel.queueBind(queueName,EXCHANGE_NAME,"");
System.out.println("[*]等待消息。退出按CTRL + C");
Consumer consumer= newDefaultConsumer(channel){
@Overridepublic void handleDelivery (String consumerTag,Envelope envelope,AMQP.BasicProperties properties,byte[] body) throwsIOException {
String message= new String(body,"UTF-8");
System.out.println("[x] Received'" + message + "'");}
};
channel.basicConsume(queueName,true,consumer);
}
}
参考网址:
http://www.rabbitmq.com/tutorials/tutorial-one-java.html
java mq_java实现MQ消息收发两种方式相关推荐
- Java中线程的创建有两种方式
Java中继承thread类与实现Runnable接口的区别 Java中线程的创建有两种方式: 1. 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2. 通过 ...
- java的websocket_java 实现websocket的两种方式实例详解
一.介绍 1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket 2.tomcat的方式需要tomcat 7.x,JEE7的支持. 3.spring与we ...
- websocket java 例子_java 实现websocket的两种方式实例详解
目录 一.介绍 1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket 2.tomcat的方式需要tomcat 7.x,JEE7的支持. 3.spring ...
- RocketMq : 消费消息的两种方式 pull 和 push
文章目录 1.概述 两种方式的优缺点对比: push pull 1.概述 原创在:https://blog.csdn.net/zhangcongyi420/article/details/905483 ...
- RabbitMQ(六)——Spring boot中消费消息的两种方式
前言 上一篇博客中,我们只是简单总结了Spring boot中整合RabbitMQ的操作,针对消息消费的两种方式只是简单给了一个实例,这篇博客,我们进一步总结关于Spring boot消息消费的相关功 ...
- java 深克隆_Java实现深克隆的两种方式
序列化和依次克隆各个可变的引用类型都可以实现深克隆,但是序列化的效率并不理想 下面是两种实现深克隆的实例,并且测试类对两种方法进行了对比: 1.重写clone方法使用父类中的clone()方法实现深克 ...
- Java Spark之创建RDD的两种方式和操作RDD
首先看看思维导图,我的spark是1.6.1版本,jdk是1.7版本 spark是什么? Spark是基于内存计算的大数据并行计算框架.Spark基于内存计算,提高了在大数据环境下数据处理的实时性, ...
- RocketMq 消费消息的两种方式 pull 和 push
在RocketMQ中一般有两种获取消息的方式,一个是拉(pull,消费者主动去broker拉取),一个是推(push,主动推送给消费者) 区别是: push方式里,consumer把轮询过程封装了,并 ...
- Java中类加载器获取的两种方式
import org.junit.Test;import java.io.FileInputStream; import java.io.IOException; import java.io.Inp ...
最新文章
- 面试官如何判断面试者的机器学习水平?
- 数据挖掘关联规则挖掘FPtree的思想
- 文件结束[置顶] javaweb框架--自定义标签与freemaker结合
- ROS系统实现 tf坐标系广播与监听
- Algorithm之MC:Monte Carlo method蒙特·卡罗方法的简介、实现、应用
- php 递归删除函数
- C++ Queues(队列)
- 1月8日学习内容整理:JS的作用域和作用域链
- 《编译原理》课程教学大纲
- [导入]C#面向对象设计模式纵横谈(10):Decorator 装饰模式(结构型模式).zip(9.84 MB)...
- 类和类之间的关系解析-1
- win8信息服务器不可用怎么办,win8系统下开机提示OneDrive选项此服务现在不可用请稍后再试怎么办...
- jQuery 常用效果
- php 用户中心 框架,OpenCenter —— PHP 通用用户中心框架【国人开发,代码托管在 Git@OSC】...
- ai修复照片软件是哪个软件_智能照片修复
- Unity Flat Shading实现低多边形(low-poly)效果
- Java面试之多线程:Java创建多线程为什么只有一种方式?
- 英伟达Tesla T4 显卡编解码能力测试
- python语言命名规则-一文轻松掌握python语言命名规范规则
- JS中NaN定义与用法
热门文章
- 谷歌浏览器不填充密码问题
- Success is not final, failure is not fatal, it is the courage to continue that counts.
- js获取指定class和id的值
- 熟悉python中的tkinter图形包--(写一个参数计算器)
- windows10 关闭笔记本自带键盘
- mysql 存储时间 时间戳_存储和读取MYSQL时间戳
- 教师专用计算机借还登记表,北京林业大学信息公开网
- 绩效考核-产品经理绩效考核指标
- Nginx+IIS分布式部署和负载均衡
- OPPO A59st解账户锁刷机包 线刷救砖教程