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