本文介绍在调用HSF服务时,出现异常HSFServiceAddressNotFoundException的原因和处理方法。

问题现象

当您通过CSB调用EDAS HSF服务时,出现异常HSFServiceAddressNotFoundException

可能原因

  • 环境问题,例如地址服务器、网络或命名空间问题。
  • 服务问题,例如服务本身调用异常或在CSB中配置有误。

解决方案

  1. 检查CSB实例和EDAS提供的HSF服务(简称HSF服务)使用的地址服务器(jmenv.tbsite.net)是否一致。
    有两种排查方式:
    • /etc/hosts文件中查看设置的地址服务器的IP是否与实际一致。
    • 在Java进程中查看参数-Daddress.server.domain配置的IP是否与实际一致。
    根据排查结果选择后续操作。
    • 如果一致,进行下一步。
    • 如果不一致,修改/etc/hosts-Daddress.server.domain与实际地址服务器一致。
  2. 通过Telnet,检查CSB实例和HSF服务间的网络连接是否正常。
    HSF服务的端口为Java进程打开的端口,范围为12200~12299。可以登录 EDAS 控制台,在服务管理页面查看。
    • 如果正常,进行下一步。
    • 如果不正常,排查、修改网络连接。
  3. 通过查看Java进程的-Dtenant.id参数,检查命名空间配置与实际是否一致。
    • 如果一致,进行下一步。
    • 如果不一致,修改命名空间配置。
  4. 检查HSF服务在EDAS中是否能够正常调用。
    登录 EDAS控制台,在 服务查询页面查询要调用的HSF服务;或者如果知道要调用的应用,在该应用详情页左侧的导航栏中单击 服务列表,查看 发布的服务消费的服务,确认该服务是否可以正常调用。
    • 如果能够正常调用,进行下一步。
    • 如果不能正常调用,请排查、修复服务本身的调用问题。
  5. 在CSB控制台中检查HSF服务的配置是否正确。
    登录 CSB控制台,检查HSF服务配置是否正确,详情请参见 发布后端已有服务
    说明 如果该HSF服务在CSB发布了多次,需要检查该HSF服务的配置(例如所属服务组)是否一致。如果不一致,也会导致调用失败。
    • 如果配置正确,进行下一步。
    • 如果配置不正确,修正配置。
  6. 查看/home/admin/configclient/snapshot/{intefaceName}:{version}/{groupName}-xxxxxxx.data/home/admin/logs/hsf.log日志中是否包含该HSF服务和报错信息。
    • 如果包含,根据日志信息排查、处理。
    • 如果未包含,请联系CSB技术支持人员。