RabbitMQ(二)——Work Queues

来源:互联网 发布:黑客帝国之矩阵革命 编辑:程序博客网 时间:2024/06/07 16:38

一个发送者,多个接收者,这是应工作队列,使用场景
web应用程序中处理复杂的任务且不能在一个短的HTTP请求内完成
这里写图片描述
创建多个接收者
我们在一的代码基础上新建第二个接收者

@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=0;i<50;i++){            sender.send();        }        return ResponseResult.success("ok");    }

同样,两者都能交替接收。

...Receiver  : 0你好 Wed Nov 15 14:15:09 CST 2017Receiver2  : 1你好 Wed Nov 15 14:15:09 CST 2017Receiver  : 2你好 Wed Nov 15 14:15:09 CST 2017Receiver2  : 3你好 Wed Nov 15 14:15:09 CST 2017Receiver  : 4你好 Wed Nov 15 14:15:09 CST 2017Receiver2  : 5你好 Wed Nov 15 14:15:09 CST 2017Receiver  : 6你好 Wed Nov 15 14:15:09 CST 2017Receiver2  : 7你好 Wed Nov 15 14:15:09 CST 2017Receiver  : 8你好 Wed Nov 15 14:15:09 CST 2017Receiver2  : 9你好 Wed Nov 15 14:15:09 CST 2017Receiver  : 10你好 Wed Nov 15 14:15:09 CST 2017...

当然还有可能有多个发送者,复制发送者即可,结果和一对多一样,仍然会均匀接收到消息