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

现在做网站公司网站建设大熊猫点搜

现在做网站公司,网站建设大熊猫点搜,安徽省城乡与住房建设厅网站,东莞外贸网站设计深入理解RabbitMQ交换机的原理与应用 引言1. RabbitMQ交换机简介介绍1.1 什么是RabbitMQ#xff1f;1.1.1 消息中间件的作用1.1.2 RabbitMQ的特点和优势 1.2 RabbitMQ的基本概念1.2.1 队列1.2.2 交换机1.2.3 路由键 1.3 交换机的作用和分类1.3.1 直连交换机#xff08;direct… 深入理解RabbitMQ交换机的原理与应用 引言1. RabbitMQ交换机简介介绍1.1 什么是RabbitMQ1.1.1 消息中间件的作用1.1.2 RabbitMQ的特点和优势 1.2 RabbitMQ的基本概念1.2.1 队列1.2.2 交换机1.2.3 路由键 1.3 交换机的作用和分类1.3.1 直连交换机direct exchange1.3.2 扇出交换机fanout exchange1.3.3 主题交换机topic exchange1.3.4 头交换机headers exchange1.3.5 死信交换机 2. RabbitMQ交换机应用2.1直连交换机实践2.2 主题交换机实践2.3 扇形交换机实践 总结 引言 在当今的分布式系统和微服务架构中消息中间件扮演着至关重要的角色。RabbitMQ作为一个功能强大的消息中间件其交换机是其中核心的组件之一。本文将深入探讨RabbitMQ交换机的原理和应用帮助读者更好地理解和应用消息队列技术。 1. RabbitMQ交换机简介介绍 1.1 什么是RabbitMQ RabbitMQ是一个开源的消息代理软件它遵循AMQP高级消息队列协议标准用于在分布式系统中存储和转发消息。作为消息中间件RabbitMQ扮演着消息传递和消息队列的角色允许应用程序之间进行异步通信。 1.1.1 消息中间件的作用 消息中间件的作用在于解耦消息的发送者和接收者实现异步通信提高系统的可伸缩性和弹性。它可以协调不同服务之间的通信确保消息的可靠传递并提供消息的持久化、路由和传输等功能。 1.1.2 RabbitMQ的特点和优势 RabbitMQ具有高可靠性、灵活的路由、消息持久化、集群和分布式部署支持等特点。它的优势在于支持多种消息传递模式如点对点、发布/订阅和路由等同时提供了丰富的插件和管理工具。 1.2 RabbitMQ的基本概念 1.2.1 队列 队列是消息的容器用于存储消息直到消费者准备接收它们。消息可以被一个或多个消费者订阅。 1.2.2 交换机 交换机是消息的分发中心它接收来自生产者的消息并将它们路由到一个或多个队列。 1.2.3 路由键 路由键是生产者在将消息发送到交换机时附加的关键字交换机根据路由键将消息路由到一个或多个队列。 1.3 交换机的作用和分类 交换机负责接收来自生产者的消息并将它们路由到一个或多个队列。RabbitMQ提供了不同类型的交换机包括直连交换机、扇出交换机、主题交换机和头交换机。 1.3.1 直连交换机direct exchange 直连交换机根据消息的路由键将消息路由到特定的队列。它是最简单的交换机类型路由键与队列绑定的路由键完全匹配时消息才会被路由到相应的队列。 1.3.2 扇出交换机fanout exchange 扇出交换机会将消息路由到与之绑定的所有队列忽略消息的路由键。这种模式适合广播消息给多个消费者的场景。 1.3.3 主题交换机topic exchange 主题交换机根据消息的路由键和通配符将消息路由到一个或多个队列。它提供了更灵活的路由规则可以根据路由键的模式进行匹配。 1.3.4 头交换机headers exchange 头交换机使用消息的属性headers来进行匹配而不是路由键。这种交换机类型提供了更复杂的匹配规则可以根据消息的属性进行匹配和路由。 1.3.5 死信交换机 2. RabbitMQ交换机应用 2.1直连交换机实践 创建好队列与交换机并且绑定 Beanpublic Queue queue1(){return new Queue(queue1);}Beanpublic Queue queue2(){return new Queue(queue2);}Beanpublic DirectExchange drectexchange(){return new DirectExchange(drectexchange);}Beanpublic Binding bingding1(){return BindingBuilder.bind(queue1()).to(drectexchange()).with(a);}Beanpublic Binding bingding2(){return BindingBuilder.bind(queue2()).to(drectexchange()).with(b);}生产者方法 RequestMapping(/send3)public String send3(){//向消息队列发送消息amqpTemplate.convertAndSend(drectexchange,a,hello);return 哈哈;;}消费者监听 package com.example.consumer;import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component;Component SuppressWarnings(all) Slf4j RabbitListener(queues queue1) public class ReceiverQ1 { RabbitHandler public void process(String msg) { log.warn(Q1接收到: msg); } }package com.example.consumer;import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component;Component SuppressWarnings(all) Slf4j RabbitListener(queues queue2) public class ReceiverQ2 { RabbitHandler public void process(String msg) { log.warn(Q2接收到: msg); } }运行一遍send3方法 2.2 主题交换机实践 前提准备打开RabbitMQ服务参考 构建高可用消息队列系统 01 进入实战 创建好队列与交换机并且绑定 Beanpublic TopicExchange topicExchange(){return new TopicExchange(topicExchange);}Beanpublic Binding bingding3(){return BindingBuilder.bind(queue1()).to(topicExchange()).with(*.*.a);}Beanpublic Binding bingding4(){return BindingBuilder.bind(queue2()).to(topicExchange()).with(*.*.b);}Beanpublic Binding bingding5(){return BindingBuilder.bind(queue1()).to(topicExchange()).with(mq.#);}Beanpublic Binding bingding6(){return BindingBuilder.bind(queue2()).to(topicExchange()).with(mq.#);}生产者方法 RequestMapping(/send4)public String send4(String rex){//向消息队列发送消息amqpTemplate.convertAndSend(topicExchange,rex,hello);return 哈哈;;}消费者监听在直连交换机上有 测试1 测试2 测试3 mq打头 2.3 扇形交换机实践 创建好队列与交换机并且绑定 Beanpublic FanoutExchange fanoutExchange(){return new FanoutExchange(fanoutExchange);}Beanpublic Binding bingding7(){return BindingBuilder.bind(queue1()).to(fanoutExchange());}Beanpublic Binding bingding8(){return BindingBuilder.bind(queue2()).to(fanoutExchange());}生产者方法 生产者调用convertAndSend时第二个参数必须要有可以给null值否则报错 RequestMapping(/send5)public String send5(){//向消息队列发送消息amqpTemplate.convertAndSend(fanoutExchange,,hello);return 哈哈;;}消费者监听在直连交换机上有 测试 总结 RabbitMQ交换机作为消息中间件的核心组件其灵活的路由规则和丰富的特性为分布式系统和微服务架构提供了强大的消息通信支持。通过深理解RabbitMQ交换机的原理和应用可以更好地设计和构建可靠的消息传递系统为复杂的应用场景提供稳定高效的消息通信机制。
http://www.pierceye.com/news/684290/

相关文章:

  • 梧州高端网站建设服务企业网站建设源码
  • 团购网站优化德州seo排名
  • 网站首页引导页中文简洁网站设计图
  • 娱乐网站排行榜在线商城网站开发代码
  • 手机网站设计通用尺寸上海外贸人才网
  • 智慧团建网站密码格式高端终端网站设计类网站
  • 福田网站设计网站建设平台方案
  • 荆州企业网站建设天津网站优化步骤
  • 网站怎么怎么做关键字长沙网站建设q.479185700強
  • 网站备案万网excel做网站
  • 十堰网站建设怎么做桐乡网站设计
  • 织梦商城网站模板网站设计的逻辑结构
  • 网站编辑器福建省工程建设信息官方网站
  • 网站的域名能修改么做设计网站的工作
  • 珠海选车牌号网站系统icp对网站内容
  • 东莞购物网站如何建立免费个人网站
  • 网站个别页面做seo建立有效的什么机制
  • 学校网站建设模板wordpress 年月归档
  • 凡科做的网站行不行京东慧采入驻条件及费用2023年
  • 汽车网站建设页面网站建设营销公司
  • 可以写代码的网站有哪些问题微信公众号的推广
  • 网站建设项目怎么写新网站一般多久收录
  • 什么网站可以免费发广告合肥做网站一般多少钱
  • 企业网站优化的方式大安市网站
  • 镇江专业网站建设制作wordpress调查插件
  • 桂林网站制作多少钱最好的网站开发公司
  • 广州网站开发公司排名广州从化建设网站官网
  • 网站备案在杭州注册公司需要什么条件
  • 购买域名做销售网站可以吗河北邢台刚刚发布的紧急通知
  • 安溪建设局网站政务网站建设信息