すべてのプロダクト
Search
ドキュメントセンター

Enterprise Distributed Application Service:HSF アプリケーションに登録またはサブスクライブされているサービスが多数ある場合に、起動が遅くなる問題をどのように処理すればよいですか?

最終更新日:Mar 05, 2025

問題の説明

Pandora Boot を使用して開発された High-speed Service Framework(HSF)アプリケーションに多数のサービスが登録またはサブスクライブされている場合、アプリケーションの起動が遅くなります。

原因

Pandora Boot を使用して開発された HSF アプリケーションは、サービスレジストリ(ConfigServer)から各公開サービス(プロバイダー)または利用サービス(コンシューマー)へのアドレス同期に使用されるデフォルトの期間を設定します。デフォルトの期間は 3,000 ミリ秒です。多数のサービスが公開または利用されている場合、各サービスはアドレス同期を順番に待機する必要があります。これにより、アプリケーションの起動が遅くなります。

解決策

  1. アプリケーションの application.properties ファイルを開き、spring.hsf.max-wait-address-time パラメーターを指定します。単位:ミリ秒。
    • アドレス同期のグローバルなデフォルト期間を指定するパラメーターを設定します。サンプルコード:
      spring.hsf.max-wait-address-time = 500
      全局默认同步时间
    • 単一のサービスインターフェースのアドレス同期期間を指定するパラメーターを設定します。サンプルコード:
      spring.hsf.max-wait-address-times.<単一のサービスインターフェースの完全名>=<アドレス同期期間>
      设置等待事件
  2. (オプション) addressWaitTime パラメーターを使用して、コンシューマーインターフェースの期間を個別に指定します。単位:ミリ秒。
    サービスのサブスクライブ中に、このパラメーターで指定された期間内にスレッドがブロックされ、アドレス同期を待機します。これにより、サービスの呼び出し時に空のアドレスエラーが発生しなくなります。このパラメーターは、コンシューマーアプリケーションの起動時にサービスをサブスクライブする必要があるインターフェースに必要です。このパラメーターは 3000 ~ 5000 ミリ秒の範囲の値に設定することをお勧めします。そうしないと、コンシューマーアプリケーションの起動時に エラーコード:HSF-0001 エラーが発生する可能性があります。ただし、このパラメーターを指定すると、アプリケーションの起動に必要な時間が長くなります。在应用程序中对某个服务消费者接口单独设置等待地址推送时间
  3. アプリケーションを再起動します。
    spring.hsf.max-wait-address-time パラメーターを指定してアプリケーションを再起動した後も、アプリケーションの起動が遅いままの場合は、アプリケーションのスレッドスタックと、$USER_HOME/log/configclient/config-client.log ディレクトリおよび $USER_HOME/log/hsf ディレクトリにあるログファイルを分析できます。スレッドスタックを分析するには、jstack <アプリケーション JVM プロセス ID> >> threaddump.txt コマンドを実行します。