当前位置: 首页 > 知识库问答 >
问题:

跨主题排序MQTT消息

辛可人
2023-03-14
/foo/a
/foo/b
/foo/c

消息在持久会话中使用消息过期间隔很长一段时间,订阅服务器可以来来去去、打开和离线,每个主题的消息数量不限。

当我订阅:/foo/#时,我是否会按照代理接收的顺序从主题/foo/a中接收消息,这些消息与来自/foo/b/foo/c的消息交织在一起?

关于消息排序的规范规定:

共有1个答案

戴原
2023-03-14

从Mosquitto broker的角度来看,如果客户端已经断开连接,但会话过期时间很长,并且有QoS>0的活动订阅,这与连接的客户端没有什么不同--会话仍然是打开的。这意味着消息将根据规范中的订购要求交付。

回答的这一部分只涉及保留的消息:

我的理解是,消息排序规则只适用于活动会话。也就是说,客户机发布消息,它们必须以与接收到的相同的顺序传递给当前的消费者。

 类似资料:
  • 我有一个带有4个分区的Kafka主题,因为我有一个带有4个消费者的消费者组。 我的目的是确保消息在分区之间均匀分布。 有没有办法验证kafka主题的跨分区消息分布?

  • Listner代码 请帮助我解决问题,因为这样的循环每天都会发生。完全读取topic1消息,然后从Topic2读取消息。

  • 使用paho-mqtt并尝试让它接收排队的消息。我使用的代理是emqx 4.2.2,这是我的脚本: 现在,我将向代理发布一条消息: 当客户机连接到代理时,它确实会接收消息,但如果我是用QoS1订阅的,并且消息是用QoS1发布的,我希望如果我断开客户机与代理的连接,然后发布更多的QoS1消息到该主题,然后使用相同的固定client_id将客户机重新连接到代理,那么客户机将接收在客户机不在时排队的消息

  • 我找不到任何可以添加到Kafka的与配置相关的更改

  • 问题内容: 表是由其主键本质上排序的吗?如果我有一个在BigInt标识列上具有主键的表,我可以相信查询将始终返回按键排序的数据,还是我明确需要添加“ ORDER BY”。性能差异很大。 问题答案: 数据通过聚簇索引进行物理存储,聚簇索引通常是主键,但不一定是主键。 如果没有ORDER BY子句,则不能保证SQL中的数据具有顺序。当您需要按特定顺序排列数据时,应始终指定ORDER BY子句。如果表已