TL;DR
- 场景:同一队列多消费者分摊任务 + 一条消息广播给多个订阅方
- 结论:Work Queue 依赖 manual ack + basicQos 控制分发;fanout 依赖交换器绑定与临时队列实现'一对多'
- 产出:给出 Java 生产/消费代码骨架、未命名交换器用法、临时队列与 binding 的验证路径

RabbitMQ 工作模式
Work Queue
生产者发送消息,启动多个消费者实例来消费消息,每个消费者仅消费部分信息,可以达到负载均衡的效果。

NewTask
package icu.wzk.demo;
import com.rabbitmq.client.*;
import java.nio.charset.StandardCharsets;
public class TestTask {
private static final String HOST = "localhost";
private static final String VIRTUAL_HOST = "/";
private static final String USERNAME = "admin";
private static final ;
;
;
String[] WORKS = {, , , , , , , , , };
Exception {
();
factory.setHost(HOST);
factory.setVirtualHost(VIRTUAL_HOST);
factory.setUsername(USERNAME);
factory.setPassword(PASSWORD);
factory.setPort(PORT);
( factory.newConnection(); connection.createChannel()) {
channel.queueDeclare(QUEUE_NAME, , , , );
;
(String work : WORKS) {
channel.basicPublish(exchange, QUEUE_NAME, , work.getBytes(StandardCharsets.UTF_8));
System.out.println( + work + );
}
} (Exception e) {
e.printStackTrace();
}
}
}







