Nacosシリーズ:Nacosの世界へようこそ!


ナコスって何?
Nacosは、「サービス」を中心とした現代のアプリケーションアーキテクチャ(例えば、マイクロサービスモデル、クラウドオリジナルモデル)を構築するサービスインフラストラクチャである.
ナコスは何ができるの?
1、動的構成サービス:中心化、外部化、動的化の方式ですべての環境の構成を管理することをサポートする.動的構成により、構成変更時にアプリケーションとサービスを再配置する必要がなくなります.センター型管理の構成により、ステータスレス・サービスの実現が容易になり、オンデマンド・フレックス拡張サービスも容易になります.2、サービス発見と管理:DNS-BasedとRPC-Based(Dubbo、gRPC)モードのサービス発見をサポートし、同時にリアルタイムの健康診断を提供し、不健康なホストまたはサービスインスタンスへの要求を防止する.Nacosによって、より容易にサービスのために遮断器を実現することができる.3、動的DNSサービス:ウェイトルーティングをサポートすることによって、中間層の負荷均衡、より柔軟なルーティング戦略、流量制御及び簡単なデータセンター内ネットワークの簡単なDNS解析サービスを簡単に実現する.DNSプロトコルに基づくサービス発見をより容易に実現し、メーカーのプライベートサービス発見APIに結合するリスクを排除する.
Nacosの特性一覧
1、使いやすい
動的構成管理、サービス発見、および動的ワンストップソリューション
20種類以上のオープン・ボックスで使用可能なサービス中心のアーキテクチャ・プロパティ
生産要件にほぼ適合する軽量レベルの使いやすいコンソール
2、クラウドアーキテクチャにもっと適応する
KubernetesとSpring Cloudをシームレスにサポート
主流のパブリッククラウド上での導入と実行が容易(アリクラウドやAWSなど)
マルチテナントおよびマルチ環境サポート
3、生産等級
アリババの10年間の生産検証を経た内部製品から脱胎
数百万のサービスを提供する大規模なシーン
エンタープライズSLAを備えたオープンソース製品
4、豊富な応用シーン
ストリーム制限、大規模なプロモーションの事前処理、オフサイトでのマルチアクティブ化をサポート
直接サポートまたは少し拡張すると、多くの有用なインターネットアプリケーションシーンをサポートできます.
トラフィックスケジューリングとサービスガバナンス
Nacosアーキテクチャ
Nacosコンセプト
  • 地域(Region):物理的データセンター、リソース作成に成功した後は
  • を交換できません.
  • 利用可能領域(Available Zone):同じ地域で電力とネットワークが互いに独立した物理領域.同じ空き領域では、インスタンスのネットワーク遅延が低い.
  • アクセスポイント(Endpoint):地域のあるサービスのエントリドメイン名
  • ネームスペース(Namespace):テナントの粒度分離に使用します.異なるネーミングスペースでは、同じGroupまたはData IDの構成が可能です.
  • 配置(コンフィギュレーション):コードから独立して管理する変数、変更が必要なパラメータなど
  • を分離する.
  • 構成管理(コンフィギュレーション管理):システム構成の編集、ストレージ、配布、変更管理、履歴バージョン管理、変更監査など、構成に関連するすべてのアクティビティ.
  • コンフィギュレーション・アイテム(Configuration Item):特定のコンフィギュレーション可能なパラメータとその値ドメインは、通常param-key=param-valueの形で存在する.
  • コンフィギュレーション・セット(Configuration Set):関連または非関連のコンフィギュレーション・アイテムのセット.システムでは、プロファイルは通常、システムのさまざまな構成を含む構成セットです.
  • コンフィギュレーションセットID(Data ID):あるコンフィギュレーションセットのIDは、組織分割構成の次元の1つであり、通常、組織分割システムのコンフィギュレーションセットを組織するために使用される.1つのシステムまたはアプリケーションには、複数のコンフィギュレーション・セットが含まれていてもよく、各コンフィギュレーション・セットは、通常、クラスJavaパッケージのネーミング・ルールを使用してグローバル一意性を保証します(このネーミング・ルールは強制されません).
  • 構成グループ(Group):構成の次元の1つである構成セットのセットであり、構成セットを意味のある文字列でグループ化し、Data IDと同じ構成セットを区別する.構成を作成するときに、構成グループの名前が入力されていない場合、構成グループの名前はデフォルトでDEFAULT_を使用します.GROUP.
  • 構成スナップショット(Configuration Snapshot):NacosのクライアントSDKは、構成されたスナップショットをローカルで生成します.クライアントがNacos Serverに接続できない場合は、構成スナップショットを使用してシステム全体の災害対応能力を表示できます.
  • サービス(Service):事前定義されたインタフェースネットワークを介してアクセスされるクライアントに提供されるソフトウェア機能.
  • サービス名(Service Name):サービスによって提供されるID.このIDによって、指定されたサービスが一意に特定されます.
  • サービス登録センター(Service Registry):サービスインスタンスとサービス負荷分散ポリシーを格納するデータベース.
  • サービスメタデータ(Service Metadata):サービスメタデータとは、サービスエンドポイント(endpoints)、サービスタグ、サービスバージョン番号、サービスインスタンス重み、ルーティングルール、セキュリティポリシーなど、サービスを記述するデータ
  • を指す.
  • サービスプロバイダ(Service Provider):多重化および呼び出し可能なサービスを提供するアプリケーション
  • を指す.
  • サービスコンシューマ(Service Consumer):サービス呼び出しを開始するアプリケーション
  • を指す.
  • サービス発見(Service Discovery):コンピュータネットワーク上で、サービス下のインスタンスのアドレスとメタデータを検出し、予め定義されたインタフェースでクライアントにクエリーを提供する.
  • サービスグループ(Service Group):異なるサービスは同じグループに分類できます.
  • ネームサービス(Naming Service):分散システム内のすべてのオブジェクト(Object)、エンティティ(Entity)の名前から関連するメタデータへのマッピング管理サービス
  • を提供する.
  • 構成サービス(コンフィギュレーションサービス):サービスまたはアプリケーションの実行中に、動的構成またはメタデータ、および構成管理のサービスプロバイダを提供します.
  • メタデータ(Metadata):Nacosデータ(構成およびサービスなど)は、サービスバージョン、重み、災害対応ポリシー、負荷等化ポリシー、認証構成、各種カスタムラベル(label)などの情報を記述し、作用範囲からサービスレベルのメタ情報、クラスタのメタ情報、およびインスタンスのメタ情報に分けられる.
  • アプリケーション(Application):サービスプロバイダのサービスを識別するための属性.
  • 仮想クラスタ(Virtual Cluster):同じサービスの下のすべてのサービスインスタンスがデフォルトクラスタを構成し、クラスタをさらに必要に応じて分割することができ、分割単位は仮想クラスタであってもよい.
  • インスタンス(Instance):アクセス可能なネットワークアドレス(IP:Port)を有する1つ以上のサービスを提供するプロセス.
  • ウェイト(Weight):インスタンスレベルの構成で、ウェイトが浮動小数点数であるほど、ウェイトが大きいほど、そのインスタンスに割り当てられるトラフィックが大きくなります.
  • ヘルスチェック(Health Check):サービス下にマウントされたインスタンスの健康度を指定した方法でチェックし、そのインスタンスがサービスを提供できるかどうかを確認します.検査結果から,インスタンスが健康か否かが判断され,サービスに対する解析要求が開始されると,不健康なインスタンスはクライアントに返されない.
  • 健康保護閾値(Protect Threshold):多すぎるインスタンスの不健康によるトラフィックがすべて健康なインスタンスに流れることを防止し、次いでトラフィック圧力が健康なインスタンスを圧倒して雪崩効果を形成するために、健康保護閾値を0~1未満の浮動小数点数と定義し、ドメイン名健康インスタンスが総サービスインスタンスに占める割合がこの値より小さい場合、インスタンスが健全であるかどうかにかかわらず、このインスタンスはクライアントに返されます.これにより、トラフィックの一部が失われますが、クラスタの残りの健全なインスタンスが正常に動作することが保証されます.

  • 以上の内容の整理はNacos公式サイトからNacosのアーキテクチャと概念を整理して、次にNacosの環境を準備して、Nacosの環境のインストールはとても簡単で、まずGitHubの上でcheckoutソースコードから、コンパイルしてインストールパッケージを取得して、命令は以下の通りです:
    mvn -Prelease-nacos clean install -U

    コンパイル完了後
    Windowsを使用しているのでtarget下のnacos-server-0.8.0.zipパック(もちろんGithubから直接インストールパックをダウンロードしてもいい)を取り、任意のディレクトリに解凍します
    注意:解凍されたディレクトリのファイルパスにスペースを含めることはできません.たとえば、D:/Program Files/Nacosです.そうしないと、Nacos Serverを起動すると、プライマリクラスFiles/Nacos/bin/Files/Nacos/plugins/cmdbが見つからないかロードできないというエラーが表示されます.
    解凍後、binディレクトリに入り、startup.cmdをダブルクリックすると、Nacos Serverが起動します.
    起動インタフェースでは、Nacosのバージョン、運転モード、ポート番号、プロセス番号、Consoleなどの情報が表示されます.Console:http://192.168.1.102:8848/nacos/index.htmlのアドレスはNacosのコンソールで、ブラウザに直接アクセスできます.
    Nacosコンソールのデフォルトアカウントパスワードは、nacos/nacosです.
    ログインすると、コンソールで構成とサービスの管理が可能なインタフェースが表示されます.
    どうですか.簡単な感じではありませんか.
    さて、Nacosはまずここまで紹介し、次号ではNacosの使い方と特性を完全な例で紹介します.
    参考資料
    Nacos公式サイト