共享订阅
上图中,共享 3 个 subscriber 用共享订阅的方式订阅了同一个主题 ,其中topic
是它们订阅的真实主题名,而 是共享订阅前缀。EMQ X 支持两种格式的共享订阅前缀:
以 $share/<group-name>
为前缀的共享订阅是带群组的共享订阅:
例如,假设订阅者 s1,s2,s3 属于群组 g1,订阅者 s4,s5 属于群组 g2。那么当 EMQ X 向这个主题发布消息 msg1 的时候:
以 为前缀的共享订阅是不带群组的共享订阅。它是 $share
订阅的一种特例,相当与所有订阅者都在一个订阅组里面:
均衡策略 | 描述 |
---|---|
random | 在所有订阅者中随机选择 |
round_robin | 按照订阅顺序 |
sticky | 一直发往上次选取的订阅者 |
hash | 按照发布者 ClientID 的哈希值 |
无论是单客户端订阅还是共享订阅都要注意客户端性能与消息接收速率,否则会引发消息堆积、客户端崩溃等错误。