You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks集群无法订阅Mosquitto Broker非$SYS/#主题求助

问题描述
  • 环境配置:
    • 开发环境已配置VPN,Databricks集群与部署Mosquitto Broker的Windows 11虚拟机(IP:10.179.0.6,端口:1883)同属Azure资源组下的VPN子网(10.179.0.0/18)
    • 当前状态:可正常向Broker发布消息,但仅能订阅$SYS/#主题,无法订阅其他自定义主题
    • 已尝试动作:调整QoS值为1、修改Mosquitto配置文件端口,问题未解决
排查建议
  1. 检查Mosquitto访问控制配置
    • 打开Mosquitto配置文件(通常为mosquitto.conf),确认是否存在allow_anonymous或acl_file配置:
      • 若设置了allow_anonymous false,必须通过ACL规则开放自定义主题的订阅权限,示例规则:
        # 允许用户订阅所有主题(测试用)
        pattern readwrite #
        
      • 若启用用户名密码认证,需确保对应账号拥有目标主题的订阅权限
  2. 验证订阅主题格式
    • 确认订阅的主题无特殊字符(如空格、非UTF-8编码字符),部分MQTT客户端对主题格式有严格限制
    • 先尝试订阅极简测试主题(如test/topic),排除格式问题
  3. 排查Databricks客户端配置
    • 确认订阅时指定的QoS与Broker支持的QoS匹配,部分客户端默认QoS设置可能导致订阅失败
    • 查看客户端日志,获取订阅失败的具体错误信息(如权限拒绝、主题无效)
  4. 虚拟机本地测试
    • 在Windows 11虚拟机上使用mosquitto_sub命令测试订阅:
      mosquitto_sub -h 127.0.0.1 -p 1883 -t "test/topic"
      
    • 同时用mosquitto_pub发布消息,若本地能正常接收,说明Broker本身无问题,问题出在Databricks客户端或网络转发环节
  5. 检查VPN子网安全规则
    • 确认Azure VPN子网的安全组允许Databricks集群与虚拟机1883端口的双向流量(订阅需要Broker主动推送,需确保入站规则开放)
  6. 查看Mosquitto日志
    • 在配置文件中开启全量日志:
      log_type all
      log_dest file C:\Program Files\Mosquitto\logs\mosquitto.log # Windows路径示例
      
    • 重启Mosquitto后,查看日志中的订阅请求记录,定位拒绝原因

内容的提问来源于stack exchange,提问作者Jacob Eaton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 11:47:16