Java笔记-使用RabbitMQ的Java接口生产数据并消费
发布日期:2021-06-30 11:01:52
浏览次数:3
分类:技术文章
本文共 2622 字,大约阅读时间需要 8 分钟。
目录
基本概念
就是官方的这个模型:
p为生产者不经过交换机,直接把数据传给消息队列,c为consumer用于消费。
这种结构在本科生的时候,经常自己写,现在用RabbitMQ来试试
代码及演示
发送端点击运行:
消费者那边会接收到数据:
关键的源码如下:
Maven依赖:
com.rabbitmq amqp-client 5.4.3 org.slf4j slf4j-api 1.7.25 org.slf4j slf4j-log4j12 1.7.5 log4j log4j 1.2.17 junit junit 4.12
生产者:
package rabbitmq.simple;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import rabbitmq.util.ConnectionUtils;import java.io.IOException;import java.util.concurrent.TimeoutException;public class Send { private static final String QUEUE_NAME = "test_simple_queue"; public static void main(String[] args) throws IOException, TimeoutException { Connection connection = ConnectionUtils.getConnect(); Channel channel = connection.createChannel(); channel.queueDeclare(QUEUE_NAME, false, false, false, null); String msg = "Hello World"; channel.basicPublish("", QUEUE_NAME, null, msg.getBytes()); System.out.println("---send msg: " + msg); channel.close(); connection.close(); }}
消费者:
package rabbitmq.simple;import com.rabbitmq.client.*;import rabbitmq.util.ConnectionUtils;import java.io.IOException;import java.util.concurrent.TimeoutException;public class Recv { private static final String QUEUE_NAME = "test_simple_queue"; public static void main(String[] args) throws IOException, TimeoutException { Connection connection = ConnectionUtils.getConnect(); Channel channel = connection.createChannel(); channel.queueDeclare(QUEUE_NAME, false, false, false, null); //声明,没有就会创建 DefaultConsumer consumer = new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String msg = new String(body, "utf-8"); System.out.println("recv: " + msg); } }; //监听 channel.basicConsume(QUEUE_NAME, true, consumer); }}
这里有一点要注意的:
basicConsume里的第二个参数是true,的意思是给消息队列一个应答,说明,我已经拿出来了!他是一个ack
程序打包下载地址:
转载地址:https://it1995.blog.csdn.net/article/details/93045595 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月27日 22时01分03秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
学习笔记(05):一学即懂的计算机视觉(第一季)-学了视觉可以做什么
2019-04-30
学习笔记(06):一学即懂的计算机视觉(第一季)-有光即有世界:照明模型
2019-04-30
学习笔记(08):一学即懂的计算机视觉(第一季)-实战演练:颜色空间分解
2019-04-30
学习笔记(09):一学即懂的计算机视觉(第一季)-最浅显的卷积与滤波概念讲解!...
2019-04-30
学习笔记(10):一学即懂的计算机视觉(第一季)-图像平滑滤波与去噪
2019-04-30
学习笔记(11):一学即懂的计算机视觉(第一季)-数学形态学滤波
2019-04-30
学习笔记(12):一学即懂的计算机视觉(第一季)-实战演练:图像平滑滤波对比...
2019-04-30
学习笔记(14):一学即懂的计算机视觉(第一季)-Canny算子
2019-04-30
学习笔记(15):一学即懂的计算机视觉(第一季)-程序示例
2019-04-30
学习笔记(16):一学即懂的计算机视觉(第一季)-数学形态学扩展应用
2019-04-30
学习笔记(20):一学即懂的计算机视觉(第一季)-图像变换有什么用?
2019-04-30
学习笔记(21):一学即懂的计算机视觉(第一季)-灰度直方图
2019-04-30
学习笔记(22):一学即懂的计算机视觉(第一季)-霍夫变换
2019-04-30
学习笔记(23):一学即懂的计算机视觉(第一季)-图像变换实战演练
2019-04-30
学习笔记(26):一学即懂的计算机视觉(第一季)-为什么要图像分割?
2019-04-30
学习笔记(27):一学即懂的计算机视觉(第一季)-基于灰度直方图的阈值分割
2019-04-30
学习笔记(28):一学即懂的计算机视觉(第一季)-灰度阈值分割实战演练
2019-04-30
学习笔记(31):一学即懂的计算机视觉(第一季)-区域生长算法
2019-04-30
学习笔记(32):一学即懂的计算机视觉(第一季)-分水岭算法
2019-04-30
学习笔记(33):一学即懂的计算机视觉(第一季)-图像分割实战演练(II)
2019-04-30