【问题标题】:How subcribe multiple MQTT clients to queue in solace如何订阅多个 MQTT 客户端以排长队
【发布时间】:2018-12-04 05:51:53
【问题描述】:

我正在尝试为多个 MQTT 客户端订阅一个相同的主题(队列),因为我的服务需要循环平衡。

如何创建具有多个客户端的非排他队列?

我可以通过 solace CLI 创建自定义配置吗?

谢谢

【问题讨论】:

  • Solace MQTT 代理是否支持共享订阅?如果没有,那么这将是不可能的。
  • 我测试了 Solace 代理,如果您将队列配置为非独占模式(如何解释文档),这可以在队列中进行平衡。但我认为对于这个功能,我使用了其他协议,如 amqp。
  • Solace 中的 MQTT 会话仅与一个队列链接,并且您不会将相同的 CLIENT_ID 用于多个 MQTT 连接。所以我认为不支持 MQTT 客户端上的此功能(非独占队列)。

标签: mqtt round-robin solace


【解决方案1】:

通常使用 Solace PubSub+ 消息代理,队列的循环传递是通过绑定到映射到单个主题的同一个非独占队列的多个客户端来实现的。但是,MQTT 客户端当前不支持此功能。每个使用 QoS1 的 MQTT 会话都可以与一个根据 CLIENT_ID 命名的队列链接。不能将多个 MQTT 会话绑定到同一个非独占队列。

Solace 将在不久的将来添加对具有 QoS0 的共享订阅的支持,这将允许 MQTT 客户端之间的循环负载平衡。在当前版本 8.13 中,一种可能的解决方法是让发布者通过跨不同 MQTT 主题传播来强制执行负载平衡策略。

否则,通过开放协议,您可以考虑使用 REST 消费者作为另一种选择,以从单个队列中对消费者进行负载平衡。请参阅:https://docs.solace.com/Features/REST-Messaging-Concepts/REST-Consumers.htm

中的“扩展 REST 消费者”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    相关资源
    最近更新 更多