Java笔记-使用RabbitMQ的Java接口生产数据并消费
发布日期:2021-06-30 11:01:52
浏览次数:2
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月23日 16时31分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
vue-cli脚手架安装
2019-04-30
使用vue-cli搭建Helloworld工程
2019-04-30
vue父组件向子组件传值
2019-04-30
java手机号码和邮箱正则表达式收藏
2019-04-30
mysql group_concat的用法及注意点
2019-04-30
java类型转换工具类Convert
2019-04-30
mysql获取一个小时内的数据
2019-04-30
spring boot单元测试方法及解决传输@RequestBody参数方法
2019-04-30
查看 设置mysql时区
2019-04-30
spring boot项目在单独的tomcat中运行
2019-04-30
thymeleaf语法入门
2019-04-30
jQuery validate自定义校验规则(过滤特殊字符)
2019-04-30
thymeleaf进阶学习
2019-04-30
如何给bootstrap-table中表格前添加序号
2019-04-30
mysql count带条件查询
2019-04-30
Java获取一个类的物理地址
2019-04-30
js动态渲染的页面发现鼠标悬浮hover事件失效
2019-04-30
bootstrap table伸缩树特效
2019-04-30