赞
踩
与入门程序的简单模式相比,多了一个或一些消费端,多个消费端共同消费同一个队列中的消息。
对于任务过重或任务较多情况使用工作队列可以提高任务处理的速度。
package com.yang; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; public class Producer_WorkQueues { public static void main(String[] args) throws Exception { //1. 创建工厂 ConnectionFactory factory = new ConnectionFactory(); //2. 设置参数 factory.setHost("192.168.20.146"); factory.setPort(5672); factory.setUsername("test"); factory.setPassword("test"); factory.setVirtualHost("/test"); //3. 创建连接 Connection connection = factory.newConnection(); //4. 创建channel管道 Channel channel = connection.createChannel(); //5. 创建队列 channel.queueDeclare("work_queues",true,false,false,null); //6.发送消息 String body = "work_queues...."; channel.basicPublish("","work_queues",null,body.getBytes()); //7. 关闭连接 channel.close(); connection.close(); } }
package com.yang; import com.rabbitmq.client.*; import java.io.IOException; public class Consumer_WorkQueues1 { public static void main(String[] args) throws Exception { //1. 创建工厂 ConnectionFactory factory = new ConnectionFactory(); //2. 设置参数 factory.setHost("192.168.20.146"); factory.setPort(5672); factory.setUsername("test"); factory.setPassword("test"); factory.setVirtualHost("/test"); //3. 创建连接 Connection connection = factory.newConnection(); //4. 创建管道 Channel channel = connection.createChannel(); //5. 创建队列 //channel.queueDeclare("work_queues",true,false,false,null); //6.接受消息 Consumer consumer = new DefaultConsumer(channel){ @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { System.out.println(new String(body)); } }; channel.basicConsume("work_queues",true,consumer); } }
生产者循环生成10次
,看看输出以上就是work queues模式的全部内容
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。