一個發送者,多個接收者,這是應工作隊列,使用場景
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
...
當然還有可能有多個發送者,複制發送者即可,結果和一對多一樣,仍然會均勻接收到消息