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

建设工程规划许可证网站感谢使用wordpress进行创作

建设工程规划许可证网站,感谢使用wordpress进行创作,wordpress视频类模板下载,2022年免费网站软件下载RabbitMq交换机类型介绍 在RabbitMq中#xff0c;生产者的消息都是通过交换器来接收#xff0c;然后再从交换器分发到不同的队列#xff0c;再由消费者从队列获取消息。这种模式也被成为“发布/订阅”。 分发的过程中交换器类型会影响分发的逻辑。 直连交换机#xff1a…RabbitMq交换机类型介绍 在RabbitMq中生产者的消息都是通过交换器来接收然后再从交换器分发到不同的队列再由消费者从队列获取消息。这种模式也被成为“发布/订阅”。 分发的过程中交换器类型会影响分发的逻辑。 直连交换机Direct exchange扇形交换机Fanout exchange主题交换机Topic exchange首部交换机Headers exchange 1 DirectExchange(直连交换机) ​ 直连交换机是一种带路由功能的交换机交换机会通过路由(Routing_key)和指定队列进行绑定。在创建的时候会创建一个路由和一个绑定关系路由和绑定关系相互对应。 ​ 发送消息时会指定exchange和routing_key所有通过该routing_key和exchange绑定的队列都会收到同样的消息。 测试实例在https://blog.csdn.net/qq_43331014/article/details/132255631文章中作为例子详细讲解过了。 2 Topic exchange(主题交换机) ​ 在RabbitMq中生产者的消息都是通过交换机来接收然后再从交换机分发到不同的队列中去在分发的过程中交换机类型会影响分发的逻辑下面主要讲解一下主题交换机。 ​ 主题交换机核心是可以以范围的行为向队列发送消息它和直连交换机区别在于直连交换机一个队列通过一个binding_key和交换机的进行绑定只能接受一中消息主题交换机可以按照一定的匹配规则去匹配多个routing_key。 那匹配规则是什么 交换机和队列的binding_key需要采用*.#.*.....的格式每个单词用.作为分隔符其中 *表示一个单词(必须出现的)##(井号)用来表示任意数量单词(零个或多个) 例如假设有一条消息的routing_key为topic.china.shanghai,另一条为topic.china那么binding_key为topic.#的队列这两条消息都会收到 通配符功能示例\*匹配一个单词topic.* 可以匹配到 topic.china 或者 topic.shanghai 等#匹配零个或多个单词topic.# 可以匹配到 topic.china或者 topic.china.beijing 通俗理解 ​ 主题交换机的流程相当于报纸订阅。有一个总报社(相当于生产者)发出各种类型的报纸到各个分报社分报社相当于不同的交换机每种类型报纸相当于不同的routing_key再往下有卖报点去分报社去报纸但每个卖报点根据消费者的需求所需要的类型不一样。比如一个分报社手里有两种类型的报纸新闻.经济、新闻.体育。这时三个卖报点来取报纸卖家A只需要新闻经济类那他跟交换机的binding_key就是新闻.经济卖家B只需要新闻体育类那他的binding_key就是新闻.体育而卖家C这很多消费者都在他这买报纸他既需要新闻经济类又需要新闻体育类他的binding_key相当于是新闻.#新闻下面的都收。 ​ 而直连交换机是什么相当于更小的分销商针对更精确的人群。他不能像上面那种情况把新闻下所有类都收了只能一对一的关系有人需要新闻.经济就绑定上只去收新闻.经济报不能多拿再有人需要新闻.体育才能再收体育报。 下面通过代码演示下主题交换机 创建交换机、队列、绑定关系 Configuration public class TopicRabbitConfig {Beanpublic Queue firstQueue(){return new Queue(topic.shanghai,true,false,false);}Beanpublic Queue secondQueue(){return new Queue(topic.beijing,true,false,false);}Beanpublic Queue thirdQueue(){return new Queue(topic.china.beijing,true,false,false);}Beanpublic TopicExchange topicExchange(){return new TopicExchange(topicExchange,true,false);}/*** 交换机和队列绑定并设置绑定key*/BeanBinding firstBinding(){return BindingBuilder.bind(firstQueue()).to(topicExchange()).with(topic.shanghai);}BeanBinding secondBinding(){//只要是消息携带的路由键是以topic.开头,后面还更有一个单词的都会分发到该队列return BindingBuilder.bind(secondQueue()).to(topicExchange()).with(topic.*);}BeanBinding thirdBinding(){//只要是消息携带的路由键是以topic.开头,都会分发到该队列return BindingBuilder.bind(thirdQueue()).to(topicExchange()).with(topic.#);} }可以看到已经创建成功 分别给交换机按三个不同routing_key发送消息对应的routing_key分别为topic.shanghai、topic.haha.hehe、topic.test PostMapping(/sendMessageByTopic) public AjaxResult sendMessageByTopic(RequestBody Map params) {String id UUID.randomUUID().toString();String createTime LocalDateTime.now().format(DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss));params.put(messageId,id);params.put(createTime,createTime);/*** 发给交换机通过匹配队列和交换机绑定关系值判断发送给哪个队列*/rabbitTemplate.convertAndSend(topicExchange,topic.shanghai,params);rabbitTemplate.convertAndSend(topicExchange,topic.haha.hehe,params);rabbitTemplate.convertAndSend(topicExchange,topic.test,params);return AjaxResult.success(成功); }三个队列分别对应的匹配规则及接受到消息的结果如图 可以看到topic.shanghai队列只能匹配一条topic.china.beijing队列因为binding_key是topic.#所以全部匹配topic.beijing队列因为binding_key是topic.*所以匹配了topic后面只跟一个单词的。 监听就不细说了跟交换机类型关系不大主要根据队列名称去监听实例可以看https://blog.csdn.net/qq_43331014/article/details/132255631第六节 3 Fanout exchange(扇形交换机) 扇形交换机是广播消息会将接到的消息发送到每一个与其绑定的队列中去。 不需要管绑定的binding_key是什么 在编写发送消息代码时不需要填写routing_key /***广播交换机* return* throws InterruptedException*/ PostMapping(/sendMessageByFanout) public AjaxResult sendMessageByFanout(RequestBody Map params) {String id UUID.randomUUID().toString();String createTime LocalDateTime.now().format(DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss));params.put(messageId,id);params.put(createTime,createTime);/*** 扇形交换机不需要指定路由会广播给每一个绑定的队列*/rabbitTemplate.convertAndSend(fanoutExchange,,params);return AjaxResult.success(成功); }4 Headers exchange(首部交换机) ​ 与routingKey无关匹配机制是匹配消息头中的属性信息。在绑定消息队列与交换机之前声明一个map键值对通过这个map对象实现消息队列和交换机的绑定。当消息发送到RabbitMQ时会取到该消息的headers与Exchange绑定时指定的键值对进行匹配如果完全匹配则消息会路由到该队列否则不会路由到该队列。 匹配规则x-match有下列两种类型 x-match all 表示所有的键值对都匹配才能接受到消息 x-match any 表示只要有键值对匹配就能接受到消息 种交换器类型在性能上相对来说较差在实际工作中很少会用到。
http://www.dnsts.com.cn/news/109793.html

相关文章:

  • 手机网站如何建设深圳龙华好还是龙岗好
  • seo建站工具网页设计规范模板
  • 企业建网站得多少钱网站加载很慢
  • 石家庄栾城区建设局网站长沙官网seo收费
  • 手机网站营销上海建设工程质监站网站
  • 北京建站报价wordpress 随机头像
  • 移动端h5网站开发框架北京网络科技有限公司
  • 郑州哪里做网站网站制作公司教你怎么制作网站
  • 北京html5网站建设怎么做页码
  • 苏州吴中网站建设公司为网站添加isapi扩展
  • 如何修复网站中的死链东南亚vps
  • 电影网站模板html网站首页空白 wordpress
  • 有哪些比较好的外贸网站百度搜索引擎推广收费标准
  • 坪山网站建设服务短网址生成功能
  • 大连比较好的网站公司全国做旅游开发的公司
  • 电脑维护网站模板做行业导航网站好
  • 网站后台怎么用代理注册企业登记
  • 购物网站项目开发做网站放广告收益
  • 精品网站建设费用 干净磐石网络旅行社手机网站建设方案
  • 莱芜网站建设方案公司中国行业研究报告网
  • 网站建设 网页设计 的文章网站制作的流程包括
  • 厦门公司注册网站移动端网站设计欣赏
  • 旅行社门店做网站嘛wordpress 主题 定制
  • 手机网站源码精准营销通俗来说是什么
  • jsp mysql 网站开发上海优化seo
  • 石家庄网站建设销售电话网络营销策划推广公司一一
  • 沈阳自助模板建站长沙包装设计公司排名
  • 温州高端网站定制綦江网站建设公司
  • python做网站前端济南建设局
  • 新房地产网站开发wordpress点击图片直接相册浏览器