请选择 进入手机版 | 继续访问电脑版
设为首页 收藏本站
开启辅助访问 切换到宽版

新浪微博登陆

只需一步, 快速开始

QQ登录

只需一步,快速开始

切换风格 立即注册 找回密码

Java教程网

新浪微博达人勋

1460

积分

923

帖子

93

贡献

Rank: 6Rank: 6

积分
1460

社区QQ达人最佳新人热心会员推广达人

发表于 2018-8-6 21:39:12 | 显示全部楼层 |阅读模式
1. 手动在 RabbitMQ 管理界面创建 myQueue队列
发送者代码
  1. @Autowired
  2.     private AmqpTemplate amqpTemplate;

  3.     public void send(){
  4.         String msg = "mqsender send ..." + new Date();
  5.         amqpTemplate.convertAndSend("myQueue", msg);
  6.     }
复制代码
接收者代码
  1. /**
  2.      * 需要手动在39...50:15672/ 下的RabbitMQ management 界面下创建一个队列 myQueue
  3.      * @param msg
  4.      */
  5.     @RabbitListener(queues = "myQueue")
  6.     public void receive(String msg){
  7.         log.info("mqReceive = {}" , msg );
  8.     }
复制代码
2. 通过注解自动创建 myQueue 队列
  1. 1. 发送方程序和上面一样
  2. 2. 接收方程序如下:

  3.     /**
  4.      *
  5.      * @param msg
  6.      */
  7.     @RabbitListener(queuesToDeclare = @Queue("myQueue"))
  8.     public void receive(String msg){
  9.         log.info("mqReceive = {}" , msg );
  10.     }
复制代码
3. 自动创建,queue 和 exchange 绑定
1. 发送方程序不变
2. 接收方程序如下:
  1. // 3. 自动创建,queue 和 exchange 绑定
  2.     @RabbitListener(bindings = @QueueBinding(
  3.             value = @Queue("myQueue"),
  4.             exchange = @Exchange("myExchange")
  5.     ))
  6.     public void receive(String msg){
  7.         log.info("mqReceive = {}" , msg );
  8.     }
复制代码
4. 实战模拟消息分组
  1. 1. 发送方:
  2.     /**
  3.      * 模拟消息分组 发送方
  4.      */
  5.     public void sendOrder(){
  6.         String msg = "mqsender send ..." + new Date();
  7.         // 参数:交换机,路由key, 消息
  8.         amqpTemplate.convertAndSend("myOrder","computer", msg);
  9.     }
复制代码
  1. 2. 接收方:
  2. /**----------- 模拟消息分组 --------------------*/
  3.     /**
  4.      * 数码供应商服务  接收消息
  5.      * 消息发到交换机,交换机根据不同的key 发送到不同的队列
  6.      */
  7.     @RabbitListener(bindings = @QueueBinding(
  8.             exchange = @Exchange("myOrder"),
  9.             key = "computer",
  10.             value = @Queue("computerOrder")
  11.     ))
  12.     public void receiveComputer(String msg){
  13.         log.info(" receiveComputer service = {}" , msg );
  14.     }
  15.     /**
  16.      * 水果供应商服务  接收消息
  17.      */
  18.     @RabbitListener(bindings = @QueueBinding(
  19.             value = @Queue("fruitOrder"),
  20.             key = "fruit",
  21.             exchange = @Exchange("myOrder")
  22.     ))
  23.     public void receiveFruit(String msg){
  24.         log.info(" receiveFruit service = {}" , msg );
  25.     }
复制代码
  1. 3. 测试用例
  2.     @Autowired
  3.     private MQSender sender;

  4.     @Test
  5.     public void sendOrderTest() {
  6.         sender.sendOrder();
  7.     }
复制代码










来自群组: java开发组

新浪微博达人勋

2538

积分

635

帖子

634

贡献

Rank: 6Rank: 6

积分
2538

社区QQ达人

发表于 2018-8-6 21:39:25 | 显示全部楼层
好,很好,非常好!

新浪微博达人勋

2496

积分

624

帖子

624

贡献

Rank: 6Rank: 6

积分
2496

社区QQ达人最佳新人

发表于 2018-8-7 02:33:49 | 显示全部楼层
我也是坐沙发的

新浪微博达人勋

2628

积分

657

帖子

657

贡献

Rank: 6Rank: 6

积分
2628
发表于 7 天前 | 显示全部楼层
……

新浪微博达人勋

6272

积分

1568

帖子

1568

贡献

Rank: 8Rank: 8

积分
6272
发表于 3 天前 | 显示全部楼层
广告位,,坐下看看
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋|手机版|Archiver|Java教程网    

GMT+8, 2018-8-17 23:47 , Processed in 0.531250 second(s), 37 queries .

Powered by Discuz X3.2

© 2001-2013 JAVA教程网

快速回复 返回顶部 返回列表