一个发送者,多个接收者,这是应工作队列,使用场景
web应用程序中处理复杂的任务且不能在一个短的HTTP请求内完成
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICdzFWRoRXdvN1LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90ERPRTTq1EMrpWTmZEWjZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TM5cjMxIDM0ETNxETM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
创建多个接收者
我们在一的代码基础上新建第二个接收者
@Component
@RabbitListener(queues = "hello")
public class Receiver2 {
@RabbitHandler
public void process(String hello) {
System.out.println("Receiver2 : " + hello);
}
}
测试,这里发送50个消息
/**
* 测试消息
*/
@RequestMapping(value = "/sender", method = RequestMethod.GET)
@ResponseBody
public ResponseResult sender() {
for (int i=;i<;i++){
sender.send();
}
return ResponseResult.success("ok");
}
同样,两者都能交替接收。
...
Receiver : 0你好 Wed Nov 15 14:15:09 CST 2017
Receiver2 : 1你好 Wed Nov 15 14:15:09 CST 2017
Receiver : 2你好 Wed Nov 15 14:15:09 CST 2017
Receiver2 : 3你好 Wed Nov 15 14:15:09 CST 2017
Receiver : 4你好 Wed Nov 15 14:15:09 CST 2017
Receiver2 : 5你好 Wed Nov 15 14:15:09 CST 2017
Receiver : 6你好 Wed Nov 15 14:15:09 CST 2017
Receiver2 : 7你好 Wed Nov 15 14:15:09 CST 2017
Receiver : 8你好 Wed Nov 15 14:15:09 CST 2017
Receiver2 : 9你好 Wed Nov 15 14:15:09 CST 2017
Receiver : 10你好 Wed Nov 15 14:15:09 CST 2017
...
当然还有可能有多个发送者,复制发送者即可,结果和一对多一样,仍然会均匀接收到消息