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

新浪微博登陆

只需一步, 快速开始

QQ登录

只需一步,快速开始

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

Java教程网

新浪微博达人勋

1589

积分

933

帖子

93

贡献

Rank: 6Rank: 6

积分
1589

社区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开发组

新浪微博达人勋

2632

积分

659

帖子

657

贡献

Rank: 6Rank: 6

积分
2632

社区QQ达人

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

新浪微博达人勋

2608

积分

652

帖子

652

贡献

Rank: 6Rank: 6

积分
2608

社区QQ达人最佳新人

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

新浪微博达人勋

2796

积分

699

帖子

699

贡献

Rank: 6Rank: 6

积分
2796
发表于 2018-8-10 22:10:07 | 显示全部楼层
……

新浪微博达人勋

6428

积分

1607

帖子

1607

贡献

Rank: 8Rank: 8

积分
6428
发表于 2018-8-14 21:52:16 | 显示全部楼层
广告位,,坐下看看

新浪微博达人勋

2752

积分

688

帖子

688

贡献

Rank: 6Rank: 6

积分
2752

社区QQ达人

发表于 2018-8-20 07:21:00 | 显示全部楼层
这么强,支持楼主,佩服

新浪微博达人勋

2713

积分

679

帖子

678

贡献

Rank: 6Rank: 6

积分
2713

社区QQ达人

发表于 2018-8-22 22:11:25 | 显示全部楼层
求沙发

新浪微博达人勋

2792

积分

700

帖子

697

贡献

Rank: 6Rank: 6

积分
2792
发表于 2018-8-24 21:02:34 | 显示全部楼层
好帖必须得顶起

新浪微博达人勋

2638

积分

660

帖子

659

贡献

Rank: 6Rank: 6

积分
2638
发表于 2018-8-25 08:05:39 | 显示全部楼层
前排支持下

新浪微博达人勋

2866

积分

754

帖子

699

贡献

Rank: 6Rank: 6

积分
2866

社区QQ达人

发表于 2018-9-5 17:37:43 | 显示全部楼层
报告!别开枪,我就是路过来看看的。。。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

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

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

GMT+8, 2018-10-24 12:01 , Processed in 0.359375 second(s), 41 queries .

Powered by Discuz X3.2

© 2001-2013 JAVA教程网

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