Microservice Engine (MSE) で Nacos インスタンスをホストすると、MSE はそのインスタンスに登録されているサービスを管理します。本トピックでは、サービスの管理方法について説明します。
前提条件
-
バージョン 2.0.3.0 以降の Nacos エンジンが利用可能であること。詳細については、「Nacos エンジンのバージョンのアップグレード」をご参照ください。
-
名前空間が利用可能であること。
サービスの作成
コンソールで空のサービス (プロバイダーのないサービス) を作成して、サービスの定義やテストを行うことができます。空のサービスをリストに表示するには、空のサービスを非表示 を無効にする必要があります。
[MSE コンソール] にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、インスタンスの名前をクリックします。
-
左側メニューで、サービス管理 > サービス一覧 を選択します。ページの左上隅で 名前空間 を選択し、サービスの作成 をクリックします。
-
サービスの作成 パネルでパラメーターを設定し、OK をクリックします。
Nacos 2.1.2.1 以降
パラメーター
説明
[サービス名]
サービスの名前。
[グループ名]
サービスが属するグループの名前。
[インスタンスソース]
インスタンスのソースを選択します。有効な値:コンソールの登録 および SDK の登録。
[保護しきい値]
インスタンスソース を コンソールの登録 または SDK の登録 に設定した場合は、保護しきい値を設定する必要があります。この値には、ピークトラフィックの処理に必要な最小ノード数の比率を設定します。たとえば、10 個のインスタンスノードがあり、ピークトラフィックを処理するために最低 6 個のノードが必要な場合、利用可能なノードが 6 個未満になるとシステム障害が発生する可能性があります。この場合、保護しきい値を 0.6 に設定します。
Nacos 2.0.3.0 から 2.1.2.0
パラメーター
説明
[サービス名]
サービスの名前。
[グループ名]
サービスが属するグループの名前。
[永続化]
サービスとインスタンスを永続化するかどうかを指定します。
[保護しきい値]
このサービスの、正常なインスタンスの総インスタンス数に対する比率がこのしきい値を下回ると、システムは保護をトリガーしてシステム障害を防ぎます。有効な値:0~1。デフォルト値は 0 です。
詳細については、「MSE レジストリおよび設定センターの高可用性のためのベストプラクティス」をご参照ください。
サービスの削除
サービスインスタンスを削除する操作は、永続化 サービスインスタンス (非エフェメラルインスタンス) にのみ有効です。
[MSE コンソール] にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、インスタンスの名前をクリックします。
-
左側メニューで、サービス管理 > サービス一覧 を選択します。ページの左上隅で 名前空間 を選択します。対象のサービスを見つけ、操作 列で もっと見る > 削除 をクリックします。その後、確認ダイアログボックスで OK をクリックします。
サービス詳細の表示
[MSE コンソール] にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、インスタンスの名前をクリックします。
-
左側メニューで、サービス管理 > サービス一覧 をクリックし、ページの左上隅で 名前空間 を選択します。
この名前空間では、Nacos インスタンス内のすべてのサービスに関する情報 ( サービス名、グループ名、ベンダー数、クラスター数 など) を表示できます。
次の操作を実行できます。
-
サービスの詳細を表示するには、対象のサービスの名前をクリックします。
-
サービス詳細ページの上部には、名前、グループ、永続性ステータス、クラスター数など、サービスの基本情報が表示されます。
-
ベンダー タブをクリックすると、サービスのすべてのプロバイダーインスタンスが表示されます。これらのインスタンスはクラスターごとにグループ化されています。デフォルトでは、最初のクラスターのプロバイダーが表示されます。
-
左側の すべてのクラスター セクションで、クラスター名をクリックしてそのクラスターに切り替えます。
-
対象インスタンスの 操作 列で、インスタンスの重みの編集、オンラインまたはオフラインへの切り替え、インスタンスの削除、またはメタデータの表示ができます。
-
-
サブスクライバー タブをクリックすると、現在のサービスをサブスクライブしているすべてのクライアントインスタンスが表示されます。リストには、各サブスクライバーの IP アドレス (クライアント IP)、クライアントバージョン (例:
Nacos-Java-Client:v1.4.1)、および アプリケーション名 が表示されます。 -
プッシュ追跡 タブをクリックすると、現在のサービスの詳細なプッシュ追跡情報が表示されます。これには、プッシュ時間、クライアント IP アドレス、サービス名、サービスグループ、サービスインスタンス数、ノード名が含まれます。
-
-
サービスを削除するには:[サービス] ページで対象のサービスを見つけ、操作 列で 削除 をクリックします。その後、確認ダイアログボックスで OK をクリックします。
重要-
空のサービスのみ削除できます。サービスが空でない場合、削除ボタンはグレー表示されます。
-
サービスが 1 分以上空のままである場合、Nacos は自動的にそのサービスを削除します。
-
-
サービスリストとサブスクリプション関係の一括取得
MSE コンソールは、サービスリストやサブスクリプション関係の一括エクスポートをサポートしていません。これらのデータを取得するには、次のいずれかの方法を使用してください。
コンソールでのデータの表示
-
MSE コンソールにログインします。左側メニューで、[登録および設定センター] > [インスタンスリスト] を選択します。
-
対象の Nacos インスタンスの名前をクリックして、インスタンス詳細ページに移動します。
-
左側メニューで、[サービス管理] > [サービスリスト] を選択して、登録されているサービスのリストを表示します。
-
サービスの名前をクリックしてサービス詳細ページに移動し、サブスクライバー タブをクリックして、そのサービスをサブスクライブしているクライアントのリストを表示します。
OpenAPI 操作の呼び出しによるデータの取得
-
ListAnsServices API を呼び出して、サービスリストを取得します。この操作はページネーションのために
PageNumおよびPageSizeパラメーターをサポートしているため、ループで操作を呼び出すことで、すべてのサービスを一括で取得できます。InstanceIdまたはClusterIdのいずれかを指定する必要があります。 -
GetServiceListeners API を呼び出して、特定のサービスのサブスクライバーリストを取得します。
ServiceName、GroupName、およびNamespaceIdパラメーターを指定する必要があります。この操作はページネーションをサポートしています。 -
ListAnsInstances API を呼び出して、各インスタンスの IP アドレス、ポート、クラスター名、ヘルスステータス、重みなどのインスタンス詳細を取得します。
これらの操作の要求および応答パラメーターの詳細については、リンク先の API リファレンストピックをご参照ください。
サービスへのインスタンスの追加
コンソールで任意のサービスに新しいインスタンス (プロバイダー) を追加して、事前にインスタンスを定義したり、テスト目的で使用したりできます。
[MSE コンソール] にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、インスタンスの名前をクリックします。
-
左側メニューで、サービス管理 > サービス一覧 を選択し、ページの左上隅で 名前空間 を選択します。
-
対象のサービスの名前をクリックして、その詳細を表示します。
-
ベンダー タブをクリックし、インスタンスの作成 をクリックします。インスタンスの作成 ダイアログボックスでパラメーターを設定し、OK をクリックします。
パラメーター
説明
[IP]
インスタンスの IP アドレス。
[ポート]
インスタンスのポート。
クラスター名
インスタンスが属するクラスター。このパラメーターは、Nacos 内のインスタンスを論理的に分離します。デフォルト値は DEFAULT です。
[初期ステータス]
インスタンスの初期のオンラインまたはオフライン状態を選択します。デフォルト値は Yes です。
[重み]
インスタンスの重み。有効な値:0~10000。デフォルト値は 1 です。トラフィックは重みに基づいて分散されます。重みが大きいほど、より多くのトラフィックがインスタンスにルーティングされます。
設定した重みが有効にならない場合は、「Nacos でインスタンスの重みの変更が有効にならない問題を修正する方法」をご参照ください。
インスタンスのオンライン/オフライン切り替え
この機能は Nacos 内の特定のインスタンスに対して操作します。
[MSE コンソール] にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、インスタンスの名前をクリックします。
-
左側メニューで、サービス管理 > サービス一覧 を選択し、ページの左上隅で 名前空間 を選択します。
-
対象のサービスの名前をクリックして、その詳細を表示します。
-
ベンダー タブをクリックします。対象のインスタンスを見つけ、操作 列で 公開 または 非公開 をクリックします。確認ダイアログボックスで OK をクリックします。
サービス登録直後にオンライン API を呼び出しても、インスタンスが期待どおりにオンラインにならない場合、データ同期が完了していない可能性があります。ベストプラクティスとして、サービスが正常に登録されてから約 10 秒待ってからオンライン API を呼び出してください。
よくある質問
MSE Nacos は、サービスのハートビートタイムアウトとオフライン基準のカスタマイズをサポートしていますか。
いいえ。MSE Registry (Nacos) では、サービスのハートビートタイムアウトとオフラインの動作は、固定のサーバー側パラメーターによって制御されます。ユーザーはタイムアウト時間や、インスタンスをオフラインにするために必要なハートビートの見逃し回数をカスタマイズすることはできません。
MSE が Nacos サービスのインスタンスを 1 つしかロードしないのはなぜですか。
サービス登録ソースの設定に、必要なすべての Nacos インスタンスが含まれていません。この問題を解決するには、MSE コンソールのサービス登録ソース設定に移動し、不足している Nacos インスタンス ID (例:mse-580c5140) を手動で追加して、必要なすべての Nacos インスタンスがサービスディスカバリの範囲に含まれるようにしてください。
"publish nacos metadata failed" エラーを解決するにはどうすればよいですか。
Dubbo プロバイダーのメタデータコンテンツが Nacos のデフォルト制限を超えています。nacos.naming.metadata.max.total.length パラメーターのデフォルトは 4096 バイトです。この問題を解決するには、次の方法のいずれかまたは両方を使用できます。
-
メタデータコンテンツを最適化して、8 KB 以内に収めます。
-
ビジネス要件によりメタデータの削減が不可能な場合は、Alibaba Cloud Quota Center にログインし、[Microservice Engine MSE] を検索し、クォータ項目 [Maximum total length of Nacos service metadata (bytes)] を見つけて、引き上げリクエストを送信してください。サポートされる最大値は 8192 バイトです。リクエストが承認されると、クォータは自動的に有効になります。サービスの再起動は不要です。
Python、Docker、または同様のテクノロジーで登録されたサービスの 503 Service Temporarily Unavailable エラーのトラブルシューティング
次の項目を順に確認してください。
-
Nacos コンソールで、サービスが登録され、インスタンスの IP アドレスが正しいことを確認してください。
-
サービスプロバイダーとコンシューマー (ゲートウェイ) が同じ Nacos 名前空間にあることを確認してください。
-
ヘルスチェックの設定を確認してください。アプリケーションで認証が有効になっている場合、ヘルスチェックエンドポイント (例:
/health) が200の代わりに401を返す可能性があり、Nacos がインスタンスを異常と判断してトラフィックのルーティングを停止する原因となります。認証ロジックを調整するか、正しいヘルスチェックパスを指定してください。 -
ゲートウェイとバックエンドインスタンスがネットワーク到達可能であることを確認してください。
-
MSE コンソールで、サービスの プッシュ追跡 情報を表示して、正しいインスタンス IP アドレスがコンシューマーに配信されたことを確認してください。