连接到MQTT服务器时的多个节点

时间:2019-08-05 05:12:19

标签: erlang mqtt

我有一个使用Erlang的服务器(A),它连接到MQTT服务器(B)来收听主题的内容。

它将处理从该主题接收的内容。

如果服务器B中的人员过多,当我将服务器A部署到多个节点(集群)时,这是否不足?

例如,当多个服务器收听一个主题时,该主题是否重复?

init(_Args) ->
    {ok, C} = emqttc:start_link([{host, "127.0.0.1"},
                                 {client_id, <<"Node">>},
                                 {username, <<"Node">>},
                                 {password, <<"1">>},
                                 {reconnect, 3},
                                 {logger, {console, info}}]),

    %% The pending subscribe
    emqttc:subscribe(C, <<"Node/User">>, 1),
    {ok, #state{mqttc = C, seq = 1}}.

1 个答案:

答案 0 :(得分:0)

在通常情况下,每个订阅给定主题的客户端都会收到有关该主题的所有消息。

从MQTT v5 * 开始,有一种称为“共享订阅”的东西,这允许一组客户端全部订阅一个主题,并且消息将仅传递到该组中的一个。这可以通过在主题前面加上$share/<group-name>/来实现。因此,如果组名称为foo并且主题为Node/User,则共享订阅主题将为$share/foo/Node/User

* 共享订阅成为MQTT v5正式规范的一部分,但是某些代理以前拥有专有实现。

相关问题