欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

EMQX中如何使用共享订阅(消费者集群) EMQXShared subscriptionconsumer groupsharerandom 

程序员文章站 2022-07-13 09:37:52
...
1、首先,需要明确的是,EMQX支持共享订阅,或者称为消费者集群。

EMQ X支持共享订阅,类似Kafka的consumer_group,共享订阅同一个topic时,相当对该topic进行分发消费(消费者集群),而不是复制消费。

2、EMQX 服务端配置,

1> 开启共享订阅参数【true】

## Whether the Server supports Shared Subscriptions
##
## Value: boolean
# remedied by can_do on 2019-07-11
zone.external.shared_subscription = true

2> 配置订阅共享订阅策略

## - random
## - round_robin
## - sticky
## - hash
>>>broker.shared_subscription_strategy = random
>>>zone.external.shared_subscription = false
>>>broker.shared_dispatch_ack_enabled = false

3、共享订阅使用说明
1> pub端正常向指定topic发消息;

2> sub端需要配置成共享订阅方式,通过topic名称区分,即$share+<group_name>+topic,比如:$share/cnd/YourDeviceType/02012345678/+;

4、代码使用举例
public static String generateTopic4TxtCmd2SInGroup() {

	StringBuffer sb = new StringBuffer();
	sb.append("$share");
	sb.append("/");
	sb.append("cmd");
	sb.append("/");
	sb.append("YourDeviceType");
	sb.append("/");
	sb.append("+");
	sb.append("/");
	sb.append("S");
	sb.append("/");
	sb.append("T");
	return sb.toString();
}