您当前的位置:首页 > 电脑百科 > 网络技术 > 网络设置

RabbitMQ的四种交换机详解

时间:2023-11-06 15:00:34  来源:微信公众号  作者:程序猿小杨

交换机主要是接收消息并且转发到绑定的队列,交换机不存储消息,在启用ack模式后,交换机找不到队列会返回错误。交换机有四种类型:Direct, topic, Headers and Fanout。

RabbitMQ的四种交换机详解图片

一、topic exchange----(模糊匹配) 

    按规则转发消息(最灵活),转发消息主要是根据通配符。在这种交换机下,队列和交换机的绑定会定义一种路由模式,那么,通配符就要在这种路由模式和路由键之间匹配后交换机才能转发消息。

    1、 路由键(routingKey):必须是字符,用句号.隔开:例如:"order.a";(一般有发布者定义);

    2、路由模式:必须包含一个 星号(*),主要用于匹配路由键指定位置的一个单词, #就表示相当于一个或者多个单词。(例如:order.*.*.*….)(一般由接收者提供),但是也可通过rabbitmq客户端配置。常用在队列Queues定义中。

    direct类型要求routingkey完全相等,但是topic exchange可以有通配符:“*”:表示匹配一个单词, “#”:则表示匹配没有或者多个单词。优势:可实现批量订阅消费。(Routingkey与Queues之间支持模糊匹配)。

RabbitMQ的四种交换机详解图片

案例:

/**
     * 功能描述:通过消费端注解绑定的方式发送Topic交换机中
     * @MethodName: sendTopicMessageByZJ
     * @MethodParam: [messageData]
     * @Return: void
     * @Author: yyalin
     * @CreateDate: 2022/4/9 18:17
     */
    public void sendTopicMessageByZJ(String messageData){
        CorrelationData correlationData = new CorrelationData("1");
        rabbitTemplate.convertAndSend("topicExchange",
                "china.car",messageData,correlationData);
    }

 

二、direct exchange----默认的(全文匹配)

    direct 类型的行为是"先匹配, 再投送". 即:在绑定时设定一个 routingkey, 消息的routingkey 匹配时, 才会被交换器投送到绑定的队列中。是RabbitMQ默认的交换机模式,也是最简单的模式,根据key全文匹配去寻找队列。(按照routingkey分发到指定队列)

    所有发送到direct exchange的消息被转发到routingkey中指定到queue。

注意:direct模式可使用rabbitmq自带的exchange:AMQP default,所以不需将exchange进行任何绑定操作(binding),消息传递时,routingkey必须完全匹配才会被对列接收,否则该消息会被抛弃。(Routingkey与Queues之间必须全文匹配)。

RabbitMQ的四种交换机详解图片

    在direct类型的exchange中,只有routingkey完全相同,exchange才会选择对应的binging进行消息路由。

案例:

/**
     * 功能描述:通过消费端注解绑定的方式发送Direct交换机中
     * @MethodName: sendDirectMessageByZJ
     * @MethodParam: [messageData]
     * @Return: void
     * @Author: yyalin
     * @CreateDate: 2022/4/9 18:17
     */
    public void sendDirectMessageByZJ(String messageData){
        CorrelationData correlationData = new CorrelationData("1");
        rabbitTemplate.convertAndSend("directExchange",
                "blue",messageData,correlationData);
    }

 

三、headers Exchange----(自定义匹配规则)

    设置header attribute参数类型的交换机,相较于 direct 和 topic 固定地使用 routing_key , headers 则是一个自定义匹配规则的类型. 在队列与交换器绑定时, 会设定一组键值对规则, 消息中也包括一组键值对( headers 属性), 当这些键值对有一对, 或全部匹配时, 消息被投送到对应队列.

四、fanout Exchange----(消息广播模式)

    转发消息到所有绑定队列,消息广播的模式,不管路由键或者是路由模式,会把消息发给绑定给它的全部队列,如果配置了routing_key会被忽略。(直接将消息路由到所有绑定的队列中,无须对消息的routingkey进行匹配操作)。

RabbitMQ的四种交换机详解图片

案例:

/**
     * 功能描述:发送FanoutMessage消息
     * @MethodName: sendFanoutMessage
     * @MethodParam: [messageData]
     * @Return: void
     * @Author: yyalin
     * @CreateDate: 2022/4/9 17:46
     */
    public void sendFanoutMessage(String messageData){
        CorrelationData correlationData = new CorrelationData("1");
        rabbitTemplate.convertAndSend("fanoutExchange",
                "",messageData,correlationData);
    }

五、总结

     一般direct和topic用来具体的路由消费,若要用广播的消息一般用fanout的exchange,header类型比较少。



Tags:交换机   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
三层交换机与路由器:功能强大能否一统江湖?
在网络设备领域,三层交换机和路由器无疑是核心角色。它们各自具备独特的功能和优势,但能否以一己之力统领整个江湖呢?让我们来探讨一下。首先,我们来认识一下这两种设备的基本功...【详细内容】
2023-12-19  Search: 交换机  点击:(71)  评论:(0)  加入收藏
什么是以太网交换机DDM技术
DDM或数字诊断监控是一种可以实时测试设备功能的技术。在市场上,我们可以买到带有或不带有DDM的设备。但是,由于该技术提供的优势,选择支持DDM的电子和网络设备始终是一个不错...【详细内容】
2023-12-18  Search: 交换机  点击:(121)  评论:(0)  加入收藏
详解交换机与防火墙的关系?
在网络的巨大森林中,有三位关键角色,它们分别是交换机、路由器和防火墙。这三者几乎是每个网络的基石,但很多人对它们的使用却容易产生混淆。今天,我们将深入剖析这三种设备的应...【详细内容】
2023-12-01  Search: 交换机  点击:(175)  评论:(0)  加入收藏
关于交换机的23个术语
在数字化时代,网络交换机是构建现代通信网络不可或缺的组件之一,负责着数据链路层的重要任务。让我们深入解释以下23个关于交换机的重要术语:1. 交换机(Switch)交换机是一种用...【详细内容】
2023-11-30  Search: 交换机  点击:(114)  评论:(0)  加入收藏
交换机设备上的G口、F口、E口、S口区别是什么?
网络世界如梦似幻,而其中各种接口宛如连接这梦境的纽带,扮演着不可或缺的角色。在这复杂而精密的网络拓扑中,Serial、Ethernet、Console、G口、以及FastEthernet接口等,它们的存...【详细内容】
2023-11-17  Search: 交换机  点击:(106)  评论:(0)  加入收藏
RabbitMQ的四种交换机详解
交换机主要是接收消息并且转发到绑定的队列,交换机不存储消息,在启用ack模式后,交换机找不到队列会返回错误。交换机有四种类型:Direct, topic, Headers and Fanout。图片一、to...【详细内容】
2023-11-06  Search: 交换机  点击:(264)  评论:(0)  加入收藏
忘记交换机密码?别慌,这里有详细的解决方案!
江湖就传闻小伙伴们登录交换机时对密码惆怅得很,还传闻小伙伴们疑问最多的是: 交换机的缺省密码都是什么呢??? 忘记密码了肿么办??? 噹噹噹噹!小编我来也,瞬间变身诸葛神人给小伙伴们...【详细内容】
2023-10-23  Search: 交换机  点击:(43)  评论:(0)  加入收藏
交换机的SFP和QSFP接口有哪些?
SFP光模块于2001年首次推出,引起了网络领域的重大变化。SFP光模块的推出来取代之前的GBIC(千兆位接口转换器)模块,很大程度上是因为SFP光模块体积小,灵活性更强,使其成为现代网络...【详细内容】
2023-09-26  Search: 交换机  点击:(252)  评论:(0)  加入收藏
交换机的基础知识,网络世界的连接者
随着数字化时代的到来,网络通信已经融入了我们的生活和工作的方方面面。前期我们已经详细讲解了主要传输介质(网线和光纤)的基础知识。今天开始我们将开启新的篇章,讲述重要的...【详细内容】
2023-09-09  Search: 交换机  点击:(225)  评论:(0)  加入收藏
核心交换机的六个基础知识
今天来聊聊核心交换机啊。首先你要明确一个概念,接入层交换机、汇聚层交换机、核心层交换机并非是交换机的种类或者属性,只是由其所执行的任务来划分的。 从网络拓扑结构来讲...【详细内容】
2023-09-05  Search: 交换机  点击:(355)  评论:(0)  加入收藏
▌简易百科推荐
iPhone或iPad用户必学:如何通过二维码快速共享Wi-Fi密码,简单又实用!
你有没有想过在不泄露网络密码的情况下与客人共享你的家庭或工作Wi-Fi?你肯定不是第一个这样想的人,我们很高兴地通知你,多亏了以下这个的变通方法,你现在可以使用iPhone或iPad...【详细内容】
2024-01-22  驾驭信息纵横科技    Tags:Wi-Fi密码   点击:(61)  评论:(0)  加入收藏
Windows 11网络连接问题诊断与解决小技巧,轻松解决上网问题!
在日常生活中,如果在连接网络时遇到问题,该如何排查解决?以下是一些故障排除步骤,可帮助你解决戴尔电脑上的无线网络连接问题。一起来看看吧!1、进行基本检查先进行一些基本检查...【详细内容】
2024-01-12  戴尔维修工程师    Tags:   点击:(58)  评论:(0)  加入收藏
配置Cisco AnyConnect VPN的5个步骤,缺一不可
随着越来越多的人远程工作或在混合环境中工作,IT部门和MSP在ASA防火墙上配置Cisco AnyConnect VPN的呼声越来越高。但是Cisco文档可能会非常混乱,这会导致一些组织的配置错误(...【详细内容】
2023-11-14  驾驭信息纵横科技    Tags:VPN   点击:(90)  评论:(0)  加入收藏
如何在Windows 10系统上设置DNS?
如果你正在使用Windows10操作系统,并且想要更好地控制你的网络服务,那么了解如何设置DNS(DomainNameSystem)是非常重要的。DNS是一种将域名解析为IP地址的服务,它能够让你在访问...【详细内容】
2023-11-10  高梦文    Tags:DNS   点击:(188)  评论:(0)  加入收藏
RabbitMQ发送和接收消息的几种方式
channel.basicQos(0, 1, false):0表示对消息的大小无限制,1表示每次只允许消费一条,false表示该限制不作用于channel。同时,我们采用手工ACK的方式,因为我们配置文件配置了 spri...【详细内容】
2023-11-08  程序猿羊  微信公众号  Tags:RabbitMQ   点击:(261)  评论:(0)  加入收藏
CISA发布十大常见网络安全错误配置
美国国家安全局(NSA)和网络安全与基础设施安全局(CISA)在本周五的报告中公布了其红队和蓝队在大型组织网络中发现的十大最常见网络安全误配置。NSA和CISA在安全建议中详细说...【详细内容】
2023-11-07  GoUpSec  微信公众号  Tags:CISA   点击:(254)  评论:(0)  加入收藏
Istio Envoy 配置解读,看这篇就够了
前面我们创建了一个 Gateway 和 VirtualService 对象,用来对外暴露应用,然后我们就可以通过 ingressgateway 来访问 Bookinfo 应用了。那么这两个资源对象是如何实现的呢?Gatew...【详细内容】
2023-11-07  k8s技术圈  微信公众号  Tags:Istio Envoy   点击:(128)  评论:(0)  加入收藏
RabbitMQ的四种交换机详解
交换机主要是接收消息并且转发到绑定的队列,交换机不存储消息,在启用ack模式后,交换机找不到队列会返回错误。交换机有四种类型:Direct, topic, Headers and Fanout。图片一、to...【详细内容】
2023-11-06  程序猿小杨  微信公众号  Tags:交换机   点击:(264)  评论:(0)  加入收藏
路由器配置NAT/UPNP/DMZ方法
常见路由器配置NAT(网络地址转换)、UPnP(通用即插即用)和DMZ(区域暴露)的方法可以根据不同的路由器品牌和型号有所不同,但通常会在路由器的管理界面中找到相关设置。以下是一般步骤...【详细内容】
2023-10-11  晴间多云  今日头条  Tags:路由器配置   点击:(415)  评论:(0)  加入收藏
路由器如何正确安装?后台设置一步即可接入宽带
现在的路由器不论安装还是后台设置都非常方便,但一些网友可能是没有详细了解过相关的知识,所以每次想要更换路由器或者新装路由器的时候并不知道如何安装路由器接入自家宽带,这...【详细内容】
2023-09-21  羽度非凡    Tags:路由器   点击:(292)  评论:(0)  加入收藏
站内最新
站内热门
站内头条