首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

消息队列RabbitMQ核心:交换机(路由、主题、发布订阅

文章目录 一、交换机概述 临时队列 绑定(bindings) 二、发布订阅(fanout) 代码实战 三、路由(direct) 代码实战 四、主题(topic) 代码实战 ---- 上篇文章:消息队列...在之前的场景下,当生产者发出消息后,此时消息只能被一个消费者所接收,每个消费者之间都是竞争关系。对应的架构图: 那么,是否可以实现生产者发送消息,一条消息可以被多个消费者所接收呢?...交换机的类型总共有以下几种: 直接 / 路由(direct), 主题(topic) ,标题(headers) , 扇出 / 发布订阅(fanout) 无名交换机 之前使用的是默认交换,通过空字符串(“”...绑定键为 blackgreen 和的消息会被发布到队列 Q2,其他消息类型的消息将被丢弃。...四、主题(topic) 发送到类型是 topic 交换机的消息的 routing_key 不能随意写,必须满足一定的要求,它必须是一个单词列表,以点号分隔开。

66620

「译」创建一个Hexo主题-Part2:其他页面

Hexo 主题。...其它文章的链接: 创建一个Hexo主题-Part1:首页 创建一个Hexo主题-Part2:其他页面 创建一个Hexo主题-Part3:评论、分析和小部件 文章详情页 让我们继续完成 part1 中的剩余工作并创建文章详情页...我在每个标签前面加了一个#号,并且在列表前面额外加了一个图标。...我强烈推荐你根据自己的口味尝试修改主题。 在第三篇文章中,我们将添加评论部分、统计部分、装饰部件并做一些改进。期待与你再次相见! 目前可以找到的比较完备的 Hexo 主题制作教程,我自己从中受益良多。...有打算自己撸一个主题的都可以参考下,真的写得很不错。如果发现译文存在错误或其他需要改进的地方,欢迎在下面评论指出。

73200
您找到你想要的搜索结果了吗?
是的
没有找到

RocketMQ,同一个topic下是否可以通过不同的tag来进行订阅

但无论采用这两种的任何一种,都是可以在同一个topic下,通过tag来进行业务区分的。 网上有很多分析相关使用方式的文章,虽然分析的结果都是“不可以”,但我们可以通过其他的一些方案来进行解决。...这说明只要消费者的consumerGroup不同,那么topic相同的情况下,也可以通过tag进行区分的。 关于其他源码就不再这里贴出了,详情可关注公众号看对应文章。...如此一来,就可以监听一个topic下的不同tag了。...原理分析 两个一样的ConsumerGroup的Consumer订阅一个Topic,但是是不同的tag,Consumer1订阅Topic的tag1,Consumer2订阅Topic的tag2,然后分别启动...原文链接:《RocketMQ,同一个topic下是否可以通过不同的tag来进行订阅?》

4.6K10

通过案例理解 MQTT 主题与通配符

什么是 MQTT 主题?MQTT 主题本质上是一个 UTF-8 编码的字符串,是 MQTT 协议进行消息路由的基础。...下图是一个简单的 MQTT 订阅与发布流程, APP 1 订阅了sensor/2/temperature 主题后,将能接收到 Sensor 2 发布到该主题消息。...接收好友请求:用户可订阅主题(user_id 为自己的 id)接收其他用户发起的好友请求。...回复好友申请:用户向该主题发送消息表明是否同意好友申请(user_id 为对方的 id)。user/${user_id}/state 用户在线状态:用户可以订阅主题获取好友的在线状态。...通配符主题订阅的性能弱于普通主题订阅,且会消耗更多的服务器资源,用户可根据实际业务情况选择订阅类型。同一个主题能被共享订阅与普通订阅同时使用可以,但是不建议同时使用。

2.3K31

最火的实时计算框架Flink和下一代分布式消息队列Pulsar的批流融合

Apache Pulsar 简介 Apache Pulsar 是一个开源的分布式发布-订阅消息系统, 由 Apache 软件基金会管理,并于 2018 年 9 月成为 Apache 顶级开源项目。...Pulsar 是一种多租户、高性能解决方案,用于服务器到服务器消息传递,包括多个功能,例如,在一个 Pulsar 实例中对多个集群提供原生支持、集群间消息跨地域的无缝复制、发布和端到端的低延迟、超过一百万个主题的无缝扩展以及由...现在我们来讨论 Pulsar 和其他发布-订阅消息传递框架之间的主要区别: 区别一 虽然 Pulsar 提供了灵活的发布-订阅消息传递系统,但它也由持久的日志存储支持——因此需在一个框架下集成消息传递和存储功能...由于 Pulsar 采用了分层架构,它可以即时故障恢复、支持独立可扩展性和无需均衡的集群扩展。 Pulsar 的架构与其他发布-订阅系统类似,框架由主题组成,而主题是主要数据实体。...这一模式允许在同一个框架中集成传统的发布-订阅消息系统和分布式并行计算。 Flink + Pulsar 的融合 Apache Flink 和 Apache Pulsar 已经以多种方式融合。

1.4K30

两个实验让我彻底弄懂了「订阅关系一致」

订阅关系一致指的是同一个消费者 Group ID 下所有 Consumer 实例所订阅的 Topic 、Tag 必须完全一致。 如果订阅关系不一致,消息消费的逻辑就会混乱,甚至导致消息丢失。..., 否则同一个消费组内的各个消费者客户端的订阅信息相互被覆盖,从而导致某个消费者客户端无法拉取到新的消息。...C1消费者无法消费主题 TopicTest 的消息数据,那么 C2 消费者订阅主题 mytest,消费会正常 ? 从上图来看,依然有问题。...但是因为在 Broker 端,同一个消费组内的各个消费者客户端的订阅信息相互被覆盖,所以这种消费状态非常混乱,偶尔也会切换成:C1消费者可以部分消费主题 TopicTest 的消息数据 , C2消费者无法消费主题...合理定义好主题和标签 当我们定义好主题和标签后,需要添加新的标签时,是否可以一个思路:换一个新的消费组或者新建一个主题

19530

最火的物联网技术MQTT,其服务质量QoS的三个级别分别是什么意思,本文一定对您有帮助!

MQTT是在 TCP/IP 之上使用的轻量级发布-订阅协议,常用于物联网的场景,MQTT 使用消息代理在发布消息的发送者和对这些消息感兴趣的接收者之间分派消息,同一个客户端可以发布和订阅消息。...值得注意的是发布和订阅还有一个概念叫做Topic,也就是主题,这个又是个啥?在上面描述中,大家不知道有没有疑问,发布者将消息发给Broker,Broker又向外分发,Broker知道怎么发?...无脑的群发订阅者也无脑的接收所有的消息?如果真的是这样,那不乱套了!图片所以Topic就来拯救了!...图片如果你不知道怎么理解主题,那你就把主题看作是一个通道或者你就把其中一个主题看成我的公众号【网络技术联盟站】,在看文章的你,微信中关注的公众号肯定是有限的,你作为订阅者,我是作者,所以相当于是消息的发布者...在MQTT中主题也是通过“/”去连接的,它是消息的通道,消息的发布者会朝某个主题中发布消息订阅这个主题订阅者都能收到这个消息

3.9K50

两个实验让我彻底弄懂了「订阅关系一致」

, 否则同一个消费组内的各个消费者客户端的订阅信息相互被覆盖,从而导致某个消费者客户端无法拉取到新的消息。...C1消费者无法消费主题 TopicTest 的消息数据,那么 C2 消费者订阅主题 mytest,消费会正常 ?图片从上图来看,依然有问题。...但是因为在 Broker 端,同一个消费组内的各个消费者客户端的订阅信息相互被覆盖,所以这种消费状态非常混乱,偶尔也会切换成:C1消费者可以部分消费主题 TopicTest 的消息数据 , C2消费者无法消费主题...规避订阅关系不一致这个问题有两种方式: 合理定义好主题和标签当我们定义好主题和标签后,需要添加新的标签时,是否可以一个思路:换一个新的消费组或者新建一个主题。...最后的思考:假如从基础架构层面来思考,将订阅关系信息中心化来设计,应该也可以实现 ,但成本较高,对于中小企业来讲,并不合算。

995130

订阅发布模式到底是不是观察者模式?

不过互联网真是一个神奇的东西,我们足不出户就可以看到你想看的东西。不管是时下火热的抖音、快手,还是微信公众号、知乎。你只需要关注订阅你喜欢的领域,你就可以获取你想要的内容,甚至和创作者进行互动。...消息的创造者,也是发布订阅的源头。 Msg 消息体。不但包含消息的基本信息,也包含消息目的地的一些信标(Topic)。 Topic 主题。用来建立消息订阅者的指向关系。...当消息从Publisher发出后,由Broker对消息进行定向转发到主题(Topic),同时维护主题(Topic)和订阅者的关系。Broker将发布者和订阅者进行了彻底的解耦。...消费者从订阅主题(Topic)中获取消息,获取消息的方式可能是Broker推送或者Subcriber拉取。 订阅发布模式的优点:订阅发布是基于事件驱动的,是具有响应式特点的,可以实现背压,异步。...发布订阅模式相关探讨的事件 然而没有订阅者 张三订阅了 Java,李四订阅了Python 码农小胖哥在 Java 中发布了一个 Java 真的很难学的事件 粉丝 张三接收到了事件 Java 真的很难学

1.2K20

深入浅出:理解Kafka的核心概念与架构

同事:嘿,了不起,我最近听说了新开发的项目用了Kafka,为什么要用它,你能给我解释一下它是什么? 了不起:当然可以!Kafka是一个分布式的发布-订阅消息系统,可以处理海量的实时数据流。...它基于发布-订阅模式,通过将消息分类到主题(Topic)中,使得生产者可以消息发布到一个或多个主题,而消费者可以一个或多个主题订阅并消费消息。 同事:明白了!那主题和分区是什么概念呢?...了不起:主题是Kafka中最基本的概念,它是消息的分类单位。生产者将消息发布到一个特定的主题中,而消费者可以订阅一个或多个主题来消费消息。...而消费者从主题订阅消息并进行消费,每个消费者都有一个唯一的消费者组(Consumer Group),Kafka会将消息均匀地分发给消费者组内的消费者,实现负载均衡和容错性。 同事:明白了!...每个分区可以有多个副本,其中一个副本被选为领导者(Leader),负责处理读写请求,其他副本作为追随者(Follower)从领导者同步数据。 同事:原来如此!

43320

订阅通知 | 我的代码没有else

> 主题 观察者 -> 订阅者 两个动作 订阅 -> 订阅订阅主题 通知 -> 主题发生变动通知订阅者 观察者模式的优势: 高内聚 -> 不同业务代码变动互不影响 可复用 -> 新的业务(就是新的订阅者...)订阅不同接口(主题,就是这里的接口) 极易扩展 -> 新增接口(就是新增主题);新增业务(就是新增订阅者); 其实说白了,就是分布式架构中使用消息机制MQ解耦业务的优势,是不是这么一想很容易理解了。...其次,已支付取消订单的子操作应该是所有订单取消类型最全的,其他类型的复用代码即可,除了分装成函数片段,还有什么更好的封装方式?答案:「观察者模式」。...“订阅者”接口ObserverInterface 伪代码如下: // ------------这里实现一个具体的“主题”------------ 同时得到了我们的UML图: ?...订阅通知:订阅方不是直接依赖主题方(联想下mq等消息中间件的使用);而观察者模式:观察者是直接依赖了被观察者,从上面的代码我们也可以清晰的看出来这个差异。

1.8K20

物联网协议的王者:MQTT

代理接收来自客户端的通信并将这些通信发送给其他客户端,客户端之间不直接通信,而是连接到代理,每个客户端可以是发布者、订阅者或两者兼而有之。...客户端仅在有信息要发送时发布,代理仅在新数据到达时向订阅者发送信息。发布/订阅在发布和订阅系统中,设备可以在某个主题上发布消息,也可以订阅特定主题以接收消息。...消息消息是设备之间交换的信息,比如一些指令,或者设备的一些信息,或者是其他需要交换的信息。图片主题如图所示,我用一张图一句话解释一下:主题就是你微信订阅公众号的类型。...图片以公众号为例,创作者是一个个发布者,公众号的服务器是Broker,读者是订阅者,不同领域的发布者向不同的主题(领域)发布文章,比如瑞哥一般都是朝科技领域发布文章,那么所有读者(订阅者)订阅了科技领域的都可以看到我的文章...这个领域就可以大致理解为主题主题用正斜杠分隔的字符串表示,每个正斜杠表示一个主题级别。

1.2K20

【Kafka系列】(一)Kafka入门

订阅者(Subscriber):订阅可以通过订阅特定的主题或队列来接收消息订阅可以按照自己的需求选择订阅消息类型和主题。...「发布/订阅模型」(Publish/Subscribe Model):在发布/订阅模型中,消息的发送者(发布者)将消息发布到一个主题(Topic),多个接收者(订阅者)可以订阅主题,接收发布的消息。...「发布/订阅加请求/响应模型」:这种模型结合了发布/订阅模型和请求/响应模型的特性。消息的发送者可以发布消息一个主题,多个接收者可以订阅主题并接收消息。...生产者(发布者)将消息发布到一个主题(Topic),多个消费者(订阅者)可以订阅主题,以并行方式消费消息。Kafka使用消息日志来持久化消息,保证消息的持久性和可靠性。...Kafka只是一个消息引擎? Kafka通常被描述为一个分布式流处理平台,而不仅仅是一个消息引擎。

24010

物联网协议的王者:MQTT

,代理接收来自客户端的通信并将这些通信发送给其他客户端,客户端之间不直接通信,而是连接到代理,每个客户端可以是发布者、订阅者或两者兼而有之。...客户端仅在有信息要发送时发布,代理仅在新数据到达时向订阅者发送信息。 发布/订阅 在发布和订阅系统中,设备可以在某个主题上发布消息,也可以订阅特定主题以接收消息。...消息 消息是设备之间交换的信息,比如一些指令,或者设备的一些信息,或者是其他需要交换的信息。 主题 如图所示,我用一张图一句话解释一下:主题就是你微信订阅公众号的类型。...以公众号为例,创作者是一个个发布者,公众号的服务器是Broker,读者是订阅者,不同领域的发布者向不同的主题(领域)发布文章,比如瑞哥一般都是朝科技领域发布文章,那么所有读者(订阅者)订阅了科技领域的都可以看到我的文章...这个领域就可以大致理解为主题主题用正斜杠分隔的字符串表示,每个正斜杠表示一个主题级别。

80221

大伙评评理,Kafka与Pulsar 谁更牛?

在Kafka中,每个消息都存在一个偏移量offset,如果将一个Kafka主题理解为一个简单的消息数组,那么可以消息偏移量理解为该消息在该数组中的索引。...下面介绍Pulsar的基础概念 Pulsar订阅组:Pulsar可以将多个消费者绑定到一个订阅组中,类似于Kafka的消费组。...同样使用前面“用户服务”的例子进行说明,在Pulsar中,权益服务所有的消费者都可以绑定一个权益订阅组rightsSubscription,而权限服务所有的消费者都可以绑定一个权限订阅组guthoritySubscription...而Pulsar中也有“分区主题”的概念,分区主题由一组非分区的内部主题组成(下面将Pulsar中组成分区主题的非分区内部主题简称为内部主题),每一个内部主题都与一个Broker绑定,这样一个分区主题可以消息发送到多个...想要深入了解Kafka与Pulsar? 快来看看这本书吧!

73240

springboot + rabbitmq 做智能家居,我也没想到会这么简单

注意:新加入的订阅者,只会取出最新的一个RETAIN flag = 1的消息推送。 值为0:仅为当前订阅者推送此消息。...举个栗子:聊天室中所有人都订阅一个叫talk的主题 ,但小富由于网络抖动突然断开了链接,这时聊天室中所有订阅主题 talk的客户端都会收到一个 “小富离开聊天室” 的遗愿消息。...可以实现三种API接口,payload 为发送的消息,topic 发送消息主题,qos 消息质量。...[在这里插入图片描述] 2、测试消息订阅 用mqttbox模拟订阅主题mqtt_test_topic,在后台向主题mqtt_test_topic发送一条消息,这里我简单的写了个controller调用API...同一时间内只能有一个客户端能拿到消息其他客户端不但不能消费消息,而且还在不断的掉线重连:Lost connection: 已断开连接; retrying...。

2.3K00

为什么智能硬件首选MQTT

主题可以是任何有效的UTF-8字符串,并且可以包含多个层次结构(例如,/sensors/temperature)。当发布者发送消息主题时,服务器将转发该消息给所有订阅主题订阅者。 3....订阅主题 订阅者(Subscriber)可以订阅感兴趣的主题。在MQTT中,订阅可以订阅整个主题树,或仅订阅特定的主题。当订阅订阅主题时,服务器将记录其订阅信息,并将其添加到订阅列表中。 4....接收消息 一旦订阅订阅主题,服务器将转发所有发布到该主题消息订阅者。当订阅者接收到消息时,它将执行相应的操作,例如更新设备状态或向其他设备发送命令。 5....三、MQTT常用术语 Broker:MQTT的中间件,负责接收和转发消息。 Client:MQTT的客户端,可以是发布者或订阅者。 Topic:MQTT的消息主题,用于识别消息的内容和目的地。...Retain:MQTT消息的保留标志,表示该主题上最新的消息是否需要保留。 Last Will and Testament(LWT):MQTT客户端的遗嘱消息,用于在客户端离线时通知其他客户端。

46621

MQTT 服务器介绍

订阅者(Subscriber) 会向 消息服务器(Broker) 订阅一个 主题(Topic) 。成功订阅后,消息服务器会将该主题下的消息转发给所有的订阅者。...,它可以是运行了 MQTT 消息服务器软件的一台服务器或一个服务器集群。...MQTT Broker 负责接收来自客户端的网络连接,并处理客户端的订阅/取消订阅(Subscribe/Unsubscribe)、消息发布(Publish)请求,同时也会将客户端发布的消息转发给其他订阅者...桥接可以很方便的将消息桥接到云服务、流式服务、或其他 MQTT 消息服务器。桥接可以完成一些单纯使用集群无法实现的功能:跨 VPC 部署、支持异构节点、提高单个应用的服务上限; 支持共享订阅。...共享订阅是一种机制,允许将订阅组的消息分发均匀地分发给订阅组成员。在共享订阅中,订阅同一主题的客户机依次接收此主题下的消息

6.3K30

『设计模式』80年代的人们就已经领悟了设计模式-- 发布者订阅者模式 (包括发布者订阅者模式和观察者模式的区别)

而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话)可能存在。同样的,订阅可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者(如果有的话)存在。...举个报纸的例子: 还是得说一下报纸,有人说报纸不就是观察者模式,那得有多少观察者和主题?一张报纸那么多板块,订报纸的人那么多,难道要一个一个人的通知,显然不现实。...如果在记者(编辑)和读者之间加了一个载体报纸,那么这还是观察者模式?...由上图可以详细的看出观察者和被观察者是密切联系的。 我们再来看看发布者-订阅者模式 在“发布者-订阅者”模式中,称为发布者的消息发送者不会将消息编程为直接发送给称为订阅者的特定接收者。...由于主题才是关注的焦点,发布者和订阅可以对系统拓扑结构保持一无所知。各自继续正常操作而无需顾及对方。

57620

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券