欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2:rabitMQ 简单队列

程序员文章站 2022-03-09 15:36:43
...

简单队列如图

2:rabitMQ 简单队列

代码快速理解:

1:谁 给 谁 发送消息(简答是一对一的操作)必定是要建立一个连接,没有连接不可能发送消息。

2:消息顺着 通道(要指定通道名) 从生产者 向消费者方向流动。 

OK,这是一个基本的流程。代码演示。连接代码看上一篇 1:rabitMQ 建立连接

生产者: 

public void producer() throws IOException, TimeoutException {
    // 由连接创建一个通道
    Channel channel = connection.createChannel();
    // 在这个通道内 声明出传输的队列
    channel.queueDeclare(QUEUENAME,false,false,false,null);
    // 准备消息
    String msg="hello rabit";
    // 生产者发布消息 通过这个通道发布出去
    channel.basicPublish("",QUEUENAME,null,msg.getBytes());
}

在控制台 我们会看到 多了一个消息等待有人来消费掉

2:rabitMQ 简单队列

 

 选择name 

2:rabitMQ 简单队列

2:rabitMQ 简单队列

在这里可以看到已经加入到队列中

消费者

消费者同样需要知道 连接 和 在哪个通道中获取消息

所以实现消费步骤如下

1:建立连接 声明通道

2:定义一个消费者

3:等待消费

// 连接创建一个通道
Channel channel = connection.createChannel();
// 在该通道中声明队列
channel.queueDeclare(QUEUENAME,false,false,false,null);
// 声明完队列 声明哪个消费者来消费
QueueingConsumer consumer=new QueueingConsumer(channel);
// 启用这个消费者
channel.basicConsume(QUEUENAME, true, consumer);
while(true){
    //等会下一个消息 并返回
    QueueingConsumer.Delivery delivery = consumer.nextDelivery(2000);//设置超时时间
    byte[] body = delivery.getBody();
    System.out.println(new String(body));
}

这个案例 生产消费这 写在一个类里面,生产 消费各是一个方法。