首页 > 其他分享 >RabbitMQ学习心得体会之Exchange

RabbitMQ学习心得体会之Exchange

时间:2024-10-08 12:11:29浏览次数:9  
标签:lazy 心得体会 Exchange binding RabbitMQ 单词 消息 key 类型

参考:https://www.rabbitmq.com/tutorials/tutorial-three-dotnet 在工作队列中,一个消息只会投递一个消费者,但是发布订阅模式,同一个消息可以发送个多个消费者。 (交换)Exchanges rabbitMQ的核心是把生产者把消息发送给exchange,这个x一边是从p接收消息,一边是把这些消息推送给队列。生产者是不会发消息给队列的,都是靠这个x,所以为了让x知道这个我该怎么处理p发过来的消息,就要指定exchange的类型。它的类型有五种:direct,topic,headers和fanout。 一、Fanout类型:广播所有消息给它所知道的队列。 如果exchange传空字符串,就会使用默认的无命名交换,那就会根据routingKey值投送给对应的消费者。 在exchange和队列之间建立联系,依靠的是binding,消费者bindingexchange的key值就建立了联系。 二、Direct类型:它的作用是在广播的基础上,过滤出特定的消息,fanout类型会忽略binding-key,但是direct会命名一个binding key,参数同样是传给routing-key,那么定义了相同类型的binding key,都会就收到同样的消息,也就是重复的,这也算是一种限定类型的广播方式。 三、Topics类型:它是在Direct上的bind key上做了一些改动,让消费者更灵活的处理消息,direct类型的binding key都是一个单词,而topics是用.隔开的多个单词,比如:stock.usd.nyse,还可以加上#、*符号的binding key。 #替代0个或多个单词, *替代一个单词。 举例:*.orange.*,这个匹配三个单词的key,并且中间的key一定要是orange,比如odd.orange.odd的消费者就会被投递。lazy.#,这个匹配lazy开头,后面任意个单词的key值,比如lazy、lazy.doing、lazy.dd.oo的消费者都会收到消息。 四:headers类型:它是根据返回的reqeuest的消息头来确定的,比如200 ok、500 error 等。

标签:lazy,心得体会,Exchange,binding,RabbitMQ,单词,消息,key,类型
From: https://www.cnblogs.com/HelloQLQ/p/18451402

相关文章

  • 速通RabbitMQ
     MQ三大重要特性:解耦,异步,削峰RABBITMQ:1.rabbitMQ有什么使用场景:异步发送消息(邮件,验证码,短信)MYSQL,REDIS,ELASTICSEARCH之间的数据同步分布式事务保持高可用性削峰填谷 2.rabbitMQ如何保证消息不丢失?在正常情况下publisher发送消息至exchange,exchange选择queue,再由q......
  • RabbitMQ死信队列和延迟队列(具体代码演示)
    先理解以下两点:1.延迟队列存储是延时消息,指当消息被发送以后,不让消费者立即拿到消息,而是等待指定时间后,消费者才能拿到消息进行消费。(队列设置过期时间对队列中所有消息生效,如果队列和消息都设置了消息过期时间,会取时间短的)2.入死信队列的三种情况:1.请求被拒绝的消息2.......
  • rabbitmq部署 从单节点到集群,到镜像
    想搭建镜像,也需要从单节点一步步往下,按顺序执行,应该不会有什么问题准备工作:1、设置主机名(根据自己主机的情况设置,主机名不能有.)hostnamectlset-hostnamenode01###节点01hostnamectlset-hostnamenode02###节点02hostnamectl--prettyhostnamectl-......
  • python 操作RabbitMq详解
    一、简介:RabbitMq 是实现了高级消息队列协议(AMQP)的开源消息代理中间件。消息队列是一种应用程序对应用程序的通行方式,应用程序通过写消息,将消息传递于队列,由另一应用程序读取完成通信。而作为中间件的RabbitMq无疑是目前最流行的消息队列之一。    RabbitMq......
  • RabbitMQ中交换机(Exchange)的类型有哪些及其特点是什么?
    RabbitMQ中的交换机(Exchange)是消息路由的核心组件,它决定了消息如何从生产者路由到队列。RabbitMQ支持多种类型的交换机,每种类型都有其特定的路由逻辑。以下是几种主要的交换机类型及其特点:直接交换机(DirectExchange)特点:直接交换机会将消息发送到绑定键(bindingkey)......
  • RabbitMQ五种工作模式的代码具体实现(代码简单易懂)(一)
    一、简单队列模式:直接把消息发送给队列,且队列只有一个消费者。使用的是Rabbitmq默认的交换机。生产者部分:<!--amqp依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</art......
  • Spring Boot 集成 RabbitMQ 发送延时消息
    1.SpringBoot集成RabbitMQ发送延时消息1.1.版本说明1.2.Spring配置1.3.定义常量1.4.配置交换机和队列1.5.测试1.SpringBoot集成RabbitMQ发送延时消息延时消息依赖于rabbitmq-delayed-message-exchangeRabbitMQ插件实现,Github地址,启用该插件后可......
  • RabbitMQ基础知识
    1.1什么是MQ?消息队列(MessageQueue),是基础数据结构中“先进先出”的一种数据结构。一般用来解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。RabbitMQ可以理解为一个邮箱,或者一个邮局,或者是一个邮递员,保证“张三”的信件最终传递......
  • RabbitMq 入门应用 提升性能 : 算法多阶段并行 (Python)
    大问题:我们有一个算法,它可以被分为多个阶段进行(顺序不可颠倒),每个阶段的性能和资源要求不同(且不均衡程度比较高);假设我们现在可以堆资源(较多的CPU和内存),如何将算法各个步骤拆分并进行性能均衡和实现,使得算法性能最大化以满足生产要求?多进程:由于算法有严格的顺序要求,如果是......
  • RabbitMQ(兔子队列入门/消息队列)
    介绍(本笔记不涉及RabbitMQ的环境搭建,主要用于了解和上手使用RabbitMQ)RabbitMQ是一种消息队列,什么是消息队列?消息(Message):是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。**队列:**可以说是一个数据结构,可以存储数据,如下图,我们从右侧(队......