当前位置: 首页 > news >正文

常州做网站推广昆明设计网站建设

常州做网站推广,昆明设计网站建设,wordpress qnap nas外网,设计制作实践活动有哪些java实现队列和交换机的声明 在之前我们都是基于RabbitMQ控制台来创建队列、交换机。但是在实际开发时#xff0c;队列和交换机是程序员定义的#xff0c;将来项目上线#xff0c;又要交给运维去创建。那么程序员就需要把程序中运行的所有队列和交换机都写下来#xff0c;…java实现队列和交换机的声明 在之前我们都是基于RabbitMQ控制台来创建队列、交换机。但是在实际开发时队列和交换机是程序员定义的将来项目上线又要交给运维去创建。那么程序员就需要把程序中运行的所有队列和交换机都写下来交给运维。在这个过程中是很容易出现错误的。 因此推荐的做法是由程序启动时检查队列和交换机是否存在如果不存在自动创建。 3.8.1.基本API SpringAMQP提供了一个Queue类用来创建队列 SpringAMQP还提供了一个Exchange接口来表示所有不同类型的交换机 我们可以自己创建队列和交换机不过SpringAMQP还提供了ExchangeBuilder来简化这个过程 而在绑定队列和交换机时则需要使用BindingBuilder来创建Binding对象 3.8.2.fanout示例(基于Bean声明) 在consumer中创建一个类声明队列和交换机 package com.itheima.consumer.config;import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; import org.springframework.amqp.core.FanoutExchange; import org.springframework.amqp.core.Queue; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class FanoutConfig {/*** 声明交换机* return Fanout类型交换机*/Beanpublic FanoutExchange fanoutExchange(){return new FanoutExchange(hmall.fanout);}/*** 第1个队列*/Beanpublic Queue fanoutQueue1(){return new Queue(fanout.queue1);}/*** 绑定队列和交换机*/Beanpublic Binding bindingQueue1(Queue fanoutQueue1, FanoutExchange fanoutExchange){return BindingBuilder.bind(fanoutQueue1).to(fanoutExchange);}/*** 第2个队列*/Beanpublic Queue fanoutQueue2(){return new Queue(fanout.queue2);}/*** 绑定队列和交换机*/Beanpublic Binding bindingQueue2(Queue fanoutQueue2, FanoutExchange fanoutExchange){return BindingBuilder.bind(fanoutQueue2).to(fanoutExchange);} }实际测试 package com.itheima.consumer.config;import org.springframework.amqp.core.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class FanoutConfiguration {/*** 声明fanout类型交换机* return*/Beanpublic FanoutExchange fanoutExchange(){// 两种声明方法都可以// return ExchangeBuilder.fanoutExchange(hmall.fanout2).build();return new FanoutExchange(hmall.fanout2);}/*** 声明默认持久化的fanout.queue3队列* return*/Beanpublic Queue fanoutQueue3(){// 两种声明方法都可以// return QueueBuilder.durable(fanout.queue3).build();return new Queue(fanout.queue3);}/*** 绑定队列和交换机* param fanoutExchange* param fanoutQueue3* return*/Beanpublic Binding fanoutBinding3(FanoutExchange fanoutExchange,Queue fanoutQueue3){return BindingBuilder.bind(fanoutQueue3).to(fanoutExchange);}/*** 声明默认持久化的fanout.queue4队列* return*/Beanpublic Queue fanoutQueue4(){// 两种声明方法都可以return QueueBuilder.durable(fanout.queue4).build(); // return new Queue(fanout.queue4);}/*** 绑定队列和交换机* return*/Beanpublic Binding fanoutBinding4(){return BindingBuilder.bind(fanoutQueue4()).to(fanoutExchange());} } 3.8.2.direct示例(基于Bean声明) direct模式由于要绑定多个KEY会非常麻烦每一个Key都要编写一个binding package com.itheima.consumer.config;import org.springframework.amqp.core.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class DirectConfig {/*** 声明交换机* return Direct类型交换机*/Beanpublic DirectExchange directExchange(){return ExchangeBuilder.directExchange(hmall.direct).build();}/*** 第1个队列*/Beanpublic Queue directQueue1(){return new Queue(direct.queue1);}/*** 绑定队列和交换机*/Beanpublic Binding bindingQueue1WithRed(Queue directQueue1, DirectExchange directExchange){return BindingBuilder.bind(directQueue1).to(directExchange).with(red);}/*** 绑定队列和交换机*/Beanpublic Binding bindingQueue1WithBlue(Queue directQueue1, DirectExchange directExchange){return BindingBuilder.bind(directQueue1).to(directExchange).with(blue);}/*** 第2个队列*/Beanpublic Queue directQueue2(){return new Queue(direct.queue2);}/*** 绑定队列和交换机*/Beanpublic Binding bindingQueue2WithRed(Queue directQueue2, DirectExchange directExchange){return BindingBuilder.bind(directQueue2).to(directExchange).with(red);}/*** 绑定队列和交换机*/Beanpublic Binding bindingQueue2WithYellow(Queue directQueue2, DirectExchange directExchange){return BindingBuilder.bind(directQueue2).to(directExchange).with(yellow);} } 3.8.4.基于注解声明 基于Bean的方式声明队列和交换机比较麻烦Spring还提供了基于注解方式来声明。 注意声明的文件是Listener下的在监听者位置声明 例如我们同样声明Direct模式的交换机和队列 RabbitListener(bindings QueueBinding(value Queue(name direct.queue1),exchange Exchange(name hmall.direct, type ExchangeTypes.DIRECT),key {red, blue} )) public void listenDirectQueue1(String msg){System.out.println(消费者1接收到direct.queue1的消息【 msg 】); }RabbitListener(bindings QueueBinding(value Queue(name direct.queue2),exchange Exchange(name hmall.direct, type ExchangeTypes.DIRECT),key {red, yellow} )) public void listenDirectQueue2(String msg){System.out.println(消费者2接收到direct.queue2的消息【 msg 】); }是不是简单多了。 再试试Topic模式 RabbitListener(bindings QueueBinding(value Queue(name topic.queue1),exchange Exchange(name hmall.topic, type ExchangeTypes.TOPIC),key china.# )) public void listenTopicQueue1(String msg){System.out.println(消费者1接收到topic.queue1的消息【 msg 】); }RabbitListener(bindings QueueBinding(value Queue(name topic.queue2),exchange Exchange(name hmall.topic, type ExchangeTypes.TOPIC),key #.news )) public void listenTopicQueue2(String msg){System.out.println(消费者2接收到topic.queue2的消息【 msg 】); }小结
http://www.hkea.cn/news/14474564/

相关文章:

  • 档案信息网站开发利用兰州企业网络推广方法
  • 佛山网站设计师温州专业网站建设公司
  • 专门做调查的网站巩义旅游网站设计公司
  • 潮品服饰网站建设规划书包装设计接单网站
  • intitle 网站建设做外贸选取哪个网站
  • 高质量摄影作品网站营销型网站的优势
  • 做老师好还是网站编辑好软件开发项目管理办法
  • 深圳建设网站联系电话网站托管好吗
  • 商丘网站建设有限公司互联网推广外包
  • 哈尔滨如何免费制作网站服装设计师有前途吗
  • 昆明网站营销南昌营销型网站建设
  • 苏州市建设局投诉网站网上商城推广
  • 网站备案怎样提交管局如何做阿里巴巴企业网站
  • 网站建设实训考试wordpress 选项卡
  • 的品质网站建设南宁市营商环境建设局网站
  • 网站开发安全管理湖南网站快速开发
  • 网站后台更新文档国内国际时事图片
  • 外国人做的网站吗南昌p2p网站建设
  • 找个人做网站的中企动力企业邮箱怎么样
  • 设计配色的网站用wordpress当wiki
  • 网站建设优点常州网架公司
  • 如何使用qq空间做推广网站如何软件网站优化公司
  • 广州网站制作开发公司合肥最新通告今天
  • 网站域名买卖公司网页简介
  • 大连 做网站自拟品牌策划方案
  • 文山州住房和城乡建设网站3d建模一般学费多少
  • 做棋牌网站赚钱吗wordpress 悬浮 登录
  • 企业做网站方案网易企业邮箱属于什么类型
  • 如何做网站直播入口商城网站开发多久
  • 兴化市住房和城乡建设局网站wordpress主题 学校官网