Microservice Engine (MSE) で Nacos インスタンスをホストすると、MSE はそのインスタンスに登録されているサービスを管理します。このトピックでは、サービスの管理方法について説明します。
前提条件
-
MSE のアクティベートが完了していること。
-
バージョン 2.0.3.0 以降のNacos エンジンが利用可能であること。詳細については、「Nacos エンジンのバージョンアップ」をご参照ください。
-
名前空間が利用可能であること。
サービスの作成
コンソールで空のサービス (プロバイダーのないサービス) を作成して、サービスの定義やテストを行うことができます。リストに空のサービスを表示するには、Hide Empty Services を無効にする必要があります。
[MSE コンソール] にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、インスタンスの名前をクリックします。
-
左側メニューで、サービス管理 > Services を選択します。ページ左上で 名前空間 を選択し、サービスの作成 をクリックします。
-
サービスの作成 パネルでパラメーターを設定し、OK をクリックします。
Nacos 2.1.2.1 以降
パラメーター
説明
[サービス名]
サービスの名前。
[グループ名]
サービスが属するグループの名前。
[インスタンスソース]
インスタンスのソースを選択します。有効値:Console および SDK。
[Protection Threshold]
インスタンスソース を Console または SDK に設定した場合は、保護しきい値を設定する必要があります。この値には、ピーク時のトラフィックを処理するために必要な最小ノード数の比率を設定します。たとえば、インスタンスノードが 10 個あり、ピーク時のトラフィックを処理するために最低 6 個のノードが必要な場合、利用可能なノードが 6 個未満になると機能停止が発生する可能性があります。この場合、保護しきい値を 0.6 に設定します。
Nacos 2.0.3.0 から 2.1.2.0
パラメーター
説明
[サービス名]
サービスの名前。
[グループ名]
サービスが属するグループの名前。
[Persistence]
サービスとそのインスタンスが永続的かどうかを指定します。
[Protection Threshold]
このサービスにおいて、総インスタンス数に対する正常なインスタンスの比率がこのしきい値を下回ると、システムは保護をトリガーして機能停止を防ぎます。有効値:0~1。デフォルト値は 0 です。
詳細については、「MSE レジストリおよび設定センターの高可用性のためのベストプラクティス」をご参照ください。
サービスの削除
サービスの削除は、永続サービス (Persistence サービス) にのみ有効です。
[MSE コンソール] にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、インスタンスの名前をクリックします。
-
左側メニューで、サービス管理 > Services を選択します。ページ左上で 名前空間 を選択します。対象のサービスを見つけ、操作 列で More > 削除 をクリックします。次に、確認ダイアログボックスで OK をクリックします。
サービス詳細の表示
[MSE コンソール] にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、インスタンスの名前をクリックします。
-
左側メニューで サービス管理 > Services をクリックし、ページ左上で 名前空間 を選択します。
この名前空間では、Nacos インスタンス上のすべてのサービスに関する情報 (サービス名、グループ名、ベンダー数、Number of Clusters など) を表示できます。
次の操作を実行できます。
-
サービスの詳細を表示するには、対象サービスのサービス名をクリックします。
-
サービス詳細ページの上部には、サービス名、グループ、永続化状態、クラスター数などのサービスの基本情報が表示されます。
-
ベンダー タブをクリックすると、サービスのすべてのプロバイダーインスタンスが表示されます。これらのインスタンスはクラスターごとにグループ化されています。デフォルトでは、最初のクラスターのプロバイダーが表示されます。
-
左側の All Clusters セクションで、クラスター名をクリックしてそのクラスターに切り替えます。
-
対象インスタンスの 操作 列で、インスタンスの重みの編集、オンライン/オフライン化、インスタンスの削除、メタデータの表示ができます。
-
-
サブスクライバー タブをクリックすると、現在のサービスをサブスクライブしているすべてのクライアントインスタンスが表示されます。リストには、各サブスクライバーの IP アドレス (クライアント IP)、Client Version (例:
Nacos-Java-Client:v1.4.1)、およびApplication Name が表示されます。 -
プッシュ追跡 タブをクリックすると、現在のサービスに関する詳細なプッシュトラック情報が表示されます。これには、プッシュ時間、クライアント IP アドレス、サービス名、サービスグループ、サービスインスタンス数、ノード名が含まれます。
-
-
サービスを削除するには、[Services] ページで対象のサービスを見つけ、操作 列で Delete をクリックします。次に、確認ダイアログボックスで OK をクリックします。
重要-
空のサービスのみ削除できます。サービスが空でない場合、削除ボタンはグレー表示されます。
-
サービスが 1 分以上空のままである場合、Nacos は自動的にそのサービスを削除します。
-
-
サービスへのインスタンスの追加
コンソールで任意のサービスに新しいインスタンス (プロバイダー) を追加して、事前にインスタンスを定義したり、テスト目的で使用したりできます。
[MSE コンソール] にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、インスタンスの名前をクリックします。
-
左側メニューで、サービス管理 > Services を選択し、ページ左上で 名前空間 を選択します。
-
対象のサービスの名前をクリックして、その詳細を表示します。
-
ベンダー タブをクリックし、Create an instance をクリックします。Create an instance ダイアログボックスで、パラメーターを設定し、OK をクリックします。
パラメーター
説明
[IP]
インスタンスの IP アドレス。
[ポート]
インスタンスのポート。
クラスター名
インスタンスが属するクラスター。このパラメーターは Nacos 内のインスタンスを論理的に分離します。デフォルト値は [DEFAULT] です。
[初期ステータス]
インスタンスの初期のオンラインまたはオフライン状態を選択します。デフォルト値は Yes です。
[重み]
インスタンスの重み。有効値:0~10000。デフォルト値は 1 です。トラフィックは重みに基づいて分散されます。重みが大きいほど、より多くのトラフィックがインスタンスにルーティングされます。
設定した重みが有効にならない場合は、「Nacos でインスタンスの重みの変更が有効にならない問題の修正方法」をご参照ください。
インスタンスのオンライン化またはオフライン化
この機能は、Nacos内の特定のインスタンスを操作します。
[MSE コンソール] にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、インスタンスの名前をクリックします。
-
左側メニューで、サービス管理 > Services を選択し、ページ左上で 名前空間 を選択します。
-
対象のサービスの名前をクリックして、その詳細を表示します。
-
ベンダー タブをクリックします。対象のインスタンスを見つけ、操作 列で On line または Offline をクリックします。確認ダイアログボックスで、OK をクリックします。
サービス登録直後にオンライン API を呼び出しても、インスタンスが期待どおりにオンラインにならない場合は、データが同期されていない可能性があります。ベストプラクティスとして、サービスが正常に登録されてから約 10 秒待ってから、オンライン API を呼び出すことを推奨します。
よくある質問
MSE Nacos は、サービスのハートビートタイムアウトとオフライン基準のカスタマイズをサポートしていますか?
いいえ。MSE レジストリ (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) が401の代わりに200を返し、Nacos がインスタンスを異常とマークしてトラフィックのルーティングを停止する原因となることがあります。認証ロジックを調整するか、正しいヘルスチェックパスを指定してください。 -
ゲートウェイとバックエンドインスタンスがネットワーク到達可能であることを確認します。
-
MSE コンソールで、サービスの プッシュ追跡 情報を表示し、正しいインスタンスの IP アドレスがコンシューマーに配信されたことを確認します。