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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C/C++笔记-使用RabbitMQ的C接口生产数据并消费
下一篇:RabbitMQ笔记-使用rabbitmq-c让生产者发送数据

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.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