开发者社区> 问答> 正文

HSF 应用注册或订阅服务数多导致启动比较慢,怎么办?

HSF 应用注册或订阅服务数多导致启动比较慢,怎么办?

展开
收起
保持可爱mmm 2020-03-28 22:05:58 888 0
1 条回答
写回答
取消 提交回答
  • 打开 Pandora Boot 应用的application.properties文件,修改该全局默认同步时间参数spring.hsf.max-wait-address-time参数(单位:毫秒),例如:

    spring.hsf.max-wait-address-time = 500

    服务消费者端还可以针对服务接口通过参数addressWaitTime单独设置地址同步时间。 当服务进行订阅时,会在该参数指定的时间内阻塞线程,等待地址推送,避免调用该服务时因为地址为空而出现地址找不到的情况。在消费者端应用启动时就需要订阅服务的接口才需要设置该参数,推荐设置为 3000 ~ 5000 毫秒,否则应用启动时可能遇到 HSF-0001-HSFServiceAddressNotFoundException 的异常(设置该参数的一个副作用就是应用启动会延长)。 在应用程序中对某个服务消费者接口单独设置等待地址推送时间addressWaitTime,单位:毫秒。

    或者在应用配置文件application.properties中单独对某个服务接口设置spring.hsf.max-wait-address-times.<完整的服务接口名>=<等待地址推送时间,等待地址推送时间的单位为毫秒。 如果设置了 spring.hsf.max-wait-address-time 参数并重启了应用,应用启动还是有点慢,可以对正在启动的应用做线程堆栈(jstack <应用JVM进程号> >> threaddump.txt)并结合$USER_HOME/log/configclient/config-client.log、$USER_HOME/log/hsf/下面的日志进行分析。

    2020-03-28 22:07:35
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Rocket MQ 使用排查指南 立即下载
基于RocketMQ Connect 构建全新数据流转处理平 立即下载
Apache RocketMQ 云原生统一消息引擎 立即下载