Nacos クラスター構成、NacosRule 負荷分散、重み設定、名前空間

サービスとサービス インスタンスがますます増えている場合 (たとえば、userservice の場合、ポート 8081、8082、および 8083 の 3 つのインスタンスがあります)、すべてのサービスを同じコンピューター ルームに展開するのは安全ではありません。卵を 1 つのバスケットに入れるのと同じように、非常に危険で友好的でないため、コンピューター ルームとサーバーを別々に配置する必要があります。


ここに画像の説明を挿入サービスは複数のクラスターに展開でき、サーバーは複数のサービスを展開できます (ただし、これは通常は行われません。通常、サーバーは 1 つのサービス インスタンスのみを展開します)、クラスターは複数のインスタンスを持つことができます。では、クラスターをどのように構成しますか?
ここに画像の説明を挿入
サービスを開始する前に、クラスターのプロパティを構成してから開始します。
例:
userservice 用にクラスター HZ (杭州) を構成し、2 つの userservice インスタンス (8081 と 8082) を開始します。この時点で、これらの 2 つのインスタンスは HZ クラスターにデプロイされます。この時点で、
ここに画像の説明を挿入
ここに画像の説明を挿入
クラスター名を変更し、userservice3 を開始すると、このインスタンスが SH (上海) クラスターにデプロイされます.
ここに画像の説明を挿入
Nacos でデプロイされたサービス インスタンスを確認できます:
ここに画像の説明を挿入
[詳細] をクリックします: クラスターと展開されたインスタンス
ここに画像の説明を挿入
. 概要:
ここに画像の説明を挿入

NacosRule 負荷分散

上記では、HZ (杭州) クラスターに userservice1 (サービス プロバイダー) と userservice2 (サービス プロバイダー) を構成し、SH (上海) クラスターに userservice3 (サービス プロバイダー) を構成しました。
操作: orderservice (サービス コンシューマー) を HZ クラスターにデプロイします。
ここに画像の説明を挿入

この時点で、orderservice (サービス コンシューマー) も HZ クラスターに構成されており、userservice (サービス プロバイダー) を呼び出すときは、クラスターに関係なく、デフォルトのポーリング アルゴリズムが引き続き使用されます (userservice1、2、および 3 がポーリングされます)。と呼ばれる);

これは非常に賢明ではありません。実際には、杭州のサービス orderservice (サービス コンシューマー) が上海のリモート サービス userservice13 を呼び出したい場合、同じクラスター内の userservice1 および 2 よりも確実に遅くなり、時間の損失が増加するためです。

では、どのように orderservice (サービス コンシューマー) をセットアップして、自分と同じクラスター上のサービスへのデフォルト アクセスを設定するのでしょうか?
これにより、NacosRule 負荷分散が行われます。NacosRule
負荷分散を構成すると、同じクラスター内のサービス プロバイダーが優先的にアクセスされます。
ここに画像の説明を挿入
ここに画像の説明を挿入

注: NacosRule を構成した後、元のリボン ロード バランシング構成を置換、コメント、または削除してください。そうしないと、Nacos ロード バランシング構成が有効になりません。

orderservice (サービス コンシューマー) が NacosRule 負荷分散を構成した後、それ自体と同じクラスター内のサービス、つまり userservice1 と 2 を自動的に呼び出し、リモート クラスターの userservice3 を呼び出しません。

orderservice (サービス コンシューマー) が同じクラスターの複数の userservice サービス インスタンスを呼び出すと、ランダムアクセス サービス インスタンス、つまり、ここの userservice1 と 2 は orderservice によってランダムにアクセスされ、3 は同じクラスターにないため優先的にアクセスされません。

次に、この時点で、同じクラスターの userservice1 と 2 のサービスがダウンしていて、orderservice が呼び出されたときに、このクラスターで調整可能なサービスがない場合、orderservice は別のクラスターの userservice3 を呼び出しますか?
ミーティング!ただし、警告が表示されます。最初は HZ クラスターにアクセスしていましたが、今回はクラスター間アクセスがあり、SH クラスターの userservice3 にアクセスしました
ここに画像の説明を挿入

ここに画像の説明を挿入

Nacos サービスインスタンスのウェイト設定

インスタンスの重み制御:
1. Nacos コンソールは、インスタンスの重み値を 0 から 1 の間で設定できます.
2. 同じクラスター内の複数のインスタンスの場合、重みが高いほど、アクセス頻度が高くなります.
3. 重みが0 に設定すると、まったく使用されません。

Nacos サービスのページでは、各インスタンスの重みを設定できます.
ここに画像の説明を挿入
Nacos の重み設定のアプリケーション:
シーン: 現在の会社がサービスをアップグレードしたい場合 (複数のクラスターがある場合)
: 以前の方法は、真夜中まで待って、ユーザー数が最も少なくなったときにサービスを停止して再起動することでしたが、欠点は、オンラインのユーザーが常に存在し、サービスを停止し、ユーザー エクスペリエンスが非常に悪いことです

Nacos ウェイトを使用する: サービス インスタンスの 1 つの重みを 0 に設定すると、徐々にこのサービスにリクエストが送信されなくなり、その後、このサービス インスタンスを停止し、再起動して更新します。この時点で、他のサービスは正常に実行されていますが、プレッシャーはわずかに大きくなります。サービスが更新された後、他のインスタンスも同様に順次更新されます.
ユーザーはサービスが更新されたと感じず、ユーザーが少ない場合は更新を待つ必要がないという利点があります.深夜の残業を避けるためです。

名前空間

サービス登録センターとして、Nacos は
構成センター Nacos の構成ファイルでもあり、大小に分けられます: 名前空間、グループ、サービス/データ、異なる名前空間のサービスは互いにアクセスできません
ここに画像の説明を挿入

ここに画像の説明を挿入
上記の名前空間 ID が入力されていない場合は、自動的に生成されます。
ここに画像の説明を挿入
名前空間を設定した後、プロジェクト構成ファイルで使用する名前空間を設定し、名前空間 ID を設定する必要があります。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/dayuiicghaid/article/details/126045124