emq3版本支持了共享订阅,现在使用客户端mosquitto,我这里用windows来测试。
emq3的文档 里写了如何使用共享订阅,
共享订阅 (Shared Subscription)
EMQ X R3.0 版本支持集群级别的共享订阅功能。 共享订阅(Shared Subscription)支持在多订阅者间采用分组负载平衡方式派发消息:
--------- | | --Msg1--> Subscriber1 Publisher--Msg1,Msg2,Msg3-->| EMQ X | --Msg2--> Subscriber2 | | --Msg3--> Subscriber3 ---------
共享订阅支持两种使用方式:
订阅前缀 | 使用示例 |
$queue/ | mosquitto_sub -t ‘$queue/topic’ |
$share/<group>/ | mosquitto_sub -t ‘$share/group/topic’ |
示例:
mosquitto_sub -t '$share/group/topic' mosquitto_pub -t 'topic' -m msg -q 2
1.下载
mosquitto1.4.4.7z , 可以参考 https://blog.csdn.net/qq_28537277/article/details/86659160 如何安装windows版的mosquitto
2.运行程序
进入emqx解压后的目录,执行:
.\bin\emqx console
进入安装好的mosquitto目录, 运行命令:
消费者
mosquitto_sub.exe -t $share/group/top1
生产者
mosquitto_pub.exe -t top1 -m 1
mosquitto_sub.exe 可以多运行几个程序,我这里只运行了2个
可以看到2个mosquitto_sub各自收到了消息。
共享订阅相关文章:
EMQ 2.3中的本地/共享订阅
https://www.jianshu.com/p/16d70dc20542
我的mqtt协议和emqttd开源项目个人理解(18) - 一个客户端sub很多主题和数据,出现宕机?使用本地共享订阅解决!
https://blog.csdn.net/libaineu2004/article/details/81633407
共享订阅的测试: