版本:emqx-5.3.2-ubuntu18.04-arm64
a服务:终端发送消息到 /edge/# 主题,A程序订阅 /edge/#
b服务:终端发送消息到 /edge/# 主题,B程序订阅 /edge/#
期望:只启动一台服务,所有终端发送消息到这台服务,在不修改topic的情况下如何使A程序只接收原来发送到a服务的消息,B程序只接收原来发送到b服务的消息
版本:emqx-5.3.2-ubuntu18.04-arm64
a服务:终端发送消息到 /edge/# 主题,A程序订阅 /edge/#
b服务:终端发送消息到 /edge/# 主题,B程序订阅 /edge/#
期望:只启动一台服务,所有终端发送消息到这台服务,在不修改topic的情况下如何使A程序只接收原来发送到a服务的消息,B程序只接收原来发送到b服务的消息
Q1: “a服务” 和 “b服务”,是指同时部署了两个 EMQX(集群) 提供 MQTT 服务么?
Q2: 客户端发送的主题是什么?publish 时不能带有通配符 +
或 #
。
如果向原来 “a服务” 和 “b服务” 中发布的主题 /edge/...
在 edge 这一层级后的下以层级无法区分,按照 pub-sub 模型这样的期望无法达成,在同一个 broker 中, A 与 B 都订阅 /edge/#
会收到同样的消息。要达成这样的需求只能更改主题结构。
a服务原来是ActiveMQ,b服务是EMQX,想把a服务停掉。发布的主题是/edge/03/3305090822/rtg,后面的不同终端03/3305090822/rtg是不一样的,如果修改主题结构要一个个网关改有点麻烦