昇腾社区首页
中文
注册

节点发布/订阅通信失败

问题描述

当终端窗口出现publiser Init failed、subscriber Init failed等日志信息时,代表节点收发信息失败。

可能的原因

  • 发布和订阅节点启动不成功。
  • 发布和订阅的消息类型不一致导致通信失败。

处理方案

  1. 检查DataMaster和queue_schedule进程是否存在,正常情况下均存在,否则异常。执行如下命令查看进程,该进程可能在不断重启中,可以多查看几次观察进程号是否变化。
    ps -ef | grep -E "DataMaster|queue_schedule" 
    • 如果进程正常,问题解决,处理完毕。
    • 如果进程异常,问题未解决,请执行步骤2
  2. 检查发布和订阅节点是否成功启动。查看slog日志,检查MD5值是否一致。若不一致,请检查发布和订阅的消息类型定义是否一致。
    • 如果问题解决,处理完毕。
    • 如果问题未解决,请执行步骤3
  3. 检查一个Topic是否存在多个发布端。查看slog日志,若出现“this topic has been registered by node”打印信息,说明重复注册了Topic,请根据自身需要保留一个发布节点并停止其他发布节点进程。
    • 如果问题解决,处理完毕。
    • 如果问题未解决,请执行步骤4
  4. 检查订阅端queue size取值是否合理。一般queue size取值建议2及以上,如果queue size=1,可能会导致无实际缓存可用。
    • 如果问题解决,处理完毕。
    • 如果问题未解决,请执行步骤5
  5. 检查是否因group配置错误,导致Subscribe失败。注意,OpenHiva::Init接口中groupName需与Subscribe中的groupName一致。