このトピックでは、Nacosクライアントを使用して構成をリリースできない問題のトラブルシューティング方法について説明します。
問題の説明
次のAPI操作を呼び出すと、構成のリリースに失敗し、想定される構成がMicroservices Engine(MSE)コンソールに表示されません。
public boolean publishConfig(String dataId, String group, String content) throws NacosException;
返される結果はfalseです。
考えられる原因
Nacosクライアントはインターネット経由でMSE Nacosインスタンスに接続されていますが、NacosクライアントのパブリックIPアドレスがMSE NacosインスタンスのパブリックIPアドレスホワイトリストに追加されていません。
Nacosクライアントは仮想プライベートクラウド(VPC)経由でMSE Nacosインスタンスに接続されていますが、NacosクライアントとMSE Nacosインスタンスは同じVPCにデプロイされていません。
AccessKey IDとAccessKeyシークレットが渡されていません。その結果、認証に失敗します。
暗号化された構成が使用されていますが、暗号化プラグインがインストールされていません。
構成コンテンツに特殊文字が含まれています。
ネットワークの問題により、NacosクライアントはMSEサーバーの最新のIPアドレスを取得していません。
解決策
インターネット接続の問題
インターネット経由でNacosクライアントをMSE Nacosインスタンスに接続する場合は、MSEコンソールで、NacosクライアントのパブリックIPアドレスがMSE NacosインスタンスのパブリックIPアドレスホワイトリストに追加されているかどうかを確認します。詳細については、パブリックIPアドレスホワイトリストの構成をご参照ください。
VPC接続の問題
VPC経由でNacosクライアントをMSE Nacosインスタンスに接続する場合は、NacosクライアントがMSE Nacosインスタンスと同じVPCにデプロイされていることを確認してください。
MSEコンソールで、MSE Nacosインスタンスが存在するVPCのvSwitch IDを照会できます。
認証の問題
${user_home}/logs/nacosディレクトリのconfig.logファイルを確認します。ファイルにHTTPステータスコード 403 が見つかった場合は、認証の問題が発生しています。アカウントに関連する権限を付与します。
認証方法の詳細については、MSE サービスリンクロールをご参照ください。
アプリケーションをオープンソースのNacosインスタンスからクラウドのMSE Nacosインスタンスに移行する場合、ユーザー名とパスワードが認証に使用されます。この場合、上記の認証方法を使用してResource Access Management(RAM)にアクセスする必要があります。この認証方法は、より高いセキュリティを提供します。
Nacosクライアントのログは、
${user.home}/logs/nacosディレクトリのconfig.logファイルに保存されます。${user.home}は、アプリケーションサービスプロセスを開始したシステムユーザーのルートディレクトリです。アプリケーションがSpring Cloudアプリケーションの場合は、Spring Cloudバージョンが有効かどうかを確認します。以前のSpring Cloudバージョンを使用している場合、Nacosクライアントのログ構成が上書きされる可能性があります。その結果、ログはアプリケーションサービスのログファイルに保存されます。
暗号化の問題
構成の暗号化と復号化を使用する場合は、有効な暗号化および復号化プラグインをインストールします。詳細については、構成の暗号化をご参照ください。
構成の問題
次の図に示すように、構成コンテンツに特殊文字が含まれていないか確認します。

ネットワークの問題
上記の操作を実行した後も問題が解決しない場合は、Nacosクライアントのログを表示して、障害の原因を特定できます。
ログに
read time outやconnected timeoutなどのタイムアウト関連のエラーメッセージが見つかった場合は、アプリケーションとMSE Nacosインスタンス間の接続がタイムアウトした場合の対処方法に記載されている手順に従って問題を解決します。ログに
UnknownHostExceptionやUnable to resolve hostなどのドメイン名解決の失敗に関連するエラーメッセージが見つかった場合は、MSE Nacosインスタンスのドメイン名を解決できない場合の対処方法に記載されている手順に従って問題を解決します。Nacosクライアントのバージョンが 2.0.0 ~ 2.0.4 で、アプリケーションが
org.reflectionsツールキットに依存している場合は、ツールキットの競合が発生する可能性があります。org.reflectionsツールキットのバージョンを 0.9.11 に設定するか、Nacosクライアントを 2.1.0 以降にアップグレードします。