同社ではシステムをサービスに分割しているため、モジュール数が急増し、それに伴い設定ファイルの管理の難易度も高まってきたため、集中構成管理が可能なミドルウェアを導入したいと考えています。 以下は、市場で人気のある 2 つの製品、Naocs と Apollo をさまざまな側面から比較したものです。 1. 構成センター 1.1 構成とは何か アプリケーションを起動して実行するときには、多くの場合、何らかの構成情報を読み取る必要があります。構成は基本的に、データベース接続パラメータ、起動パラメータなど、アプリケーションのライフサイクル全体に付随します。 構成には次の主な機能があります。
プログラムの構成は読み取り専用です。プログラムは構成を読み取ることで動作を変更しますが、プログラムは構成を変更すべきではありません。
構成はアプリケーションのライフサイクル全体にわたって実行されます。アプリケーションは起動時に構成を読み取って初期化され、実行時に構成に基づいて動作を調整します。 たとえば、サービスのポート番号は起動時に読み取る必要があり、システムは動作中にスケジュールされたタスクを実行するためのタイミング戦略を読み取る必要があります。
一般的なものには、プログラム内部のハードコード、構成ファイル、環境変数、起動パラメータ、データベースベースなどがあります。
同じプログラムでも、異なる環境 (開発、テスト、本番) や異なるクラスター (異なるデータ センターなど) では異なる構成が必要になることが多いため、完璧な環境とクラスターの構成管理が必要です。 1.2 構成センターとは 分散サービス アーキテクチャでは、システムが単一のアプリケーションから分散システム上のサービス ノードに分割される場合、構成が分散されるように構成ファイルも移行 (分割) する必要があります。それだけでなく、次の図に示すように、分散には冗長性も含まれています。 構成センターは、各アプリケーションから構成を分離し、構成を一元的に管理するため、アプリケーション自体が構成を管理する必要がありません。下記の通り 構成センターのサービスプロセスは次のとおりです。 1. ユーザーは構成センターで構成情報を公開および更新します。 2. サービス A とサービス B は、構成更新通知をタイムリーに受信し、構成センターから構成を取得します。 一般的に、構成センターは、さまざまなアプリケーション構成を統一的に管理する基本的なサービス コンポーネントです。 1.3 構成センターが必要な理由 分散型マイクロサービスの発展に伴い、サービスノードの数が増加し、構成上の問題が徐々に発生しています。
このような環境では、構成ファイルやデータベースなどの従来の方法では、開発者の構成管理のニーズを満たすことがますます難しくなってきています。 1.4 構成センターの概要 要約すると、従来の巨大なモノリシック アプリケーションが分散サービス アーキテクチャに移行する歴史的プロセスにおいて、構成センターはサービス指向開発に不可欠なシステム コンポーネントです。このような状況の中で、集中型構成サービス、つまり構成センターが誕生しました。認定された構成センターは、次の特性を満たす必要があります。
構成センター全体では、システムの実行中にプログラムの動作を動的に調整できます。 2. オープンソース構成センターの紹介 市場で人気のある構成センターは次のとおりです。
2014 年 7 月現在、Baidu のオープン ソース構成管理センターにも構成管理機能が搭載されていますが、メンテナンスは行われていません。
2014 年 9 月、Spring Cloud は、Spring Cloud システムとシームレスに統合できるエコシステム コンポーネントをオープン ソース化しましたが、これは Git または SVN に依存します。
2016 年 5 月、Ctrip は標準化された権限とプロセス ガバナンスを特徴とするオープン ソース構成管理センターを開設しました。
2018 年 6 月には、Alibaba のオープンソース構成センターでも RPC サービス検出を実行できるようになりました。 Disconf はメンテナンスされなくなり、Spring Cloud Config は Git または SVN に依存する必要があるためです。そこで、アポロとナコスだけ紹介します 2.1 ナコス Nacos には登録センター + 構成センターが含まれます。以下では、構成センターについてのみ説明します。 2.1.1 はじめに Nacos は、マイクロサービスのサービス検出、構成、管理を支援することに専念しています。 Nacos は、動的なサービス検出、サービス構成、サービス メタデータ、トラフィック管理を迅速に実装するのに役立つ、使いやすい機能のセットを提供します。 Nacos を使用すると、マイクロサービス プラットフォームをより俊敏かつ簡単に構築、提供、管理できるようになります。 Nacos は、「サービス」(マイクロサービス パラダイムやクラウド ネイティブ パラダイムなど)を中心とした最新のアプリケーション アーキテクチャを構築するためのサービス インフラストラクチャです。
2.1.2 特徴 Nacos は、ほぼすべての主流のタイプのサービス検出、構成、および管理をサポートしています。ここでは、Nacos の構成センター機能についてのみ説明します。
2.1.3 アーキテクチャ Nacos 構成センターはサーバーとクライアントに分かれています。サーバーは Java で記述されており、クライアントに構成サービスを提供します。 クライアントは複数の言語で実装できます。クライアントはサービス モジュールとネストされます。 Nacos は SDK と OpenAPI を提供します。 SDK がない場合は、OpenAPI に従って、サービス登録と検出、および構成のプル ロジックを手動で記述することもできます。 構成センターのアーキテクチャ図:
2.1.4 開発 Nacos Configuration Center は、Spring、Spring Boot、Spring Cloud との統合をサポートしており、XML またはアノテーションを通じて簡単に実装できます。デモ中の Spring プロジェクトと統合します。 1. サーバー コンソール公開構成のスクリーンショット
2. クライアント
3. 効果
2.1.5 グレースケール Nacos サーバーの設定を変更した後、Beat リリースをチェックし、IP アドレスを指定して、リリース ベータを選択します。
2.1.5 デプロイメント スタンドアロン モードでは、Nacos には依存関係がなく、デフォルトで組み込みデータベースをストレージ エンジンとして使用しますが、MySQL に置き換えることもできます。クラスター モードでは、Nacos はストレージに MySQL に依存します。 実稼働環境で Nacos を使用する場合に高可用性を実現するには、スタンドアロン モードを使用することはできず、Nacos クラスターを構築する必要があります。 下の図は、ドメイン名 + VIP モードを通じて実装される、公式に推奨されているクラスター ソリューションです。クライアント側で構成された Nacos。 Nacos クラスターを移行する場合、クライアント側の設定を変更する必要はありません。 クラスター展開アーキテクチャ図: クラスター展開アーキテクチャ図 2.1.7 要約 Nacos は使いやすく、導入も簡単で、パフォーマンスが高く、基本的な構成管理を実装でき、非常に簡潔なコンソールを提供します。 ただし、権限の制御粒度は粗く、監査メカニズムはありません。 2.2 アポロ 2.2.1 はじめに Apollo は、Ctrip のフレームワーク部門によって開発された分散構成センターです。さまざまなアプリケーション環境とクラスターの構成を一元的に管理できます。構成が変更されると、リアルタイムでアプリケーション側にプッシュできます。また、標準化された権限、プロセス ガバナンス、その他の機能も備えており、マイクロサービス構成管理シナリオに適しています。 Apollo はサーバーとクライアントの 2 つの部分で構成されています。 サーバーは Spring Boot と Spring Cloud に基づいて開発されており、Tomcat などの追加のアプリケーション コンテナーをインストールする必要なく、パッケージ化後すぐに実行できます。 Java クライアントはいかなるフレームワークにも依存せず、すべての Java ランタイム環境で実行できます。また、Spring/Spring Boot 環境も適切にサポートされています。
2.2.2 特徴 構成の特殊性のため、Apollo はガバナンス機能を備えた構成公開プラットフォームとして設計されました。現在、次の機能が提供されています:
2.2.3 アーキテクチャ アポロの建築を外部と内部から分析
基本モデル 以下は、Apollo の基本モデルです。
2.2.4 開発 Apollo は API モードと Spring 統合モードをサポートしています。 API は柔軟で、完全に機能し、構成値はリアルタイムで更新され (ホット パブリッシング)、すべての Java 環境をサポートします。 スプリングアクセスは簡単です。
Spring メソッドは API メソッドと組み合わせて使用することもできます。たとえば、Apollo Config オブジェクトを挿入することで、通常どおり API を通じて構成を取得できます。 以下は、デモとして Spring が Apollo を統合する方法の紹介です。 1. サーバー
2. クライアント
3. 効果
2.2.5 グレースケール Apollo コンソールは、グレースケール バージョンを作成し、グレースケール ルールを構成し、グレースケール IP または AppID を指定します。 指定されたIPノードまたはAppIDモジュールの構成が更新されます 2.2.6 デプロイメント Apollo 高可用性アーキテクチャ モジュールの概要: 上の図は、下から上に向かって見ることができるアポロの全体的なデザインを簡単に説明しています。
2.2.7 要約 Apollo には、対応する構成のリリースレビュー、権限管理、構成の継承などを含む、比較的完全な構成管理プロセスがあります。ただし、Apollo では、ユーザーが簡単な学習を行う必要があり、学習コストがかかります。 Appollo の展開は比較的複雑で、3 つのモジュールを同時に動作させる必要があります。実稼働の高可用性クラスターを展開するには、少なくとも 7 つのノードが必要です。 3. 結論 3.1 機能比較 3.2 結論 構成センターの観点から見ると、Nacos の読み取りおよび書き込みパフォーマンスが最も高く、次に Apollo が続きます。機能面では Apollo が最も充実していますが、Nacos には Apollo の構成管理機能のほとんどが備わっています。 Nacos の大きな利点は、登録センターと構成センターの機能を統合していることです。展開と操作は Apollo よりも直感的でシンプルです。したがって、アーキテクチャの複雑さが簡素化され、運用、保守、展開の作業が削減されます。 一般的に、Apollo と Nacos は幅広いエコシステムのサポートを備えており、構成管理プロセスで優れた機能を発揮します。 Apollo は Nacos よりも構成管理が包括的です。 Nacos は比較的使い方が簡単で、高いパフォーマンス要件のある大規模なシナリオに適しています。 現時点では、企業が頻繁に構成を変更せず、構成権限を厳密に管理せず、読み取りおよび書き込みパフォーマンスに一定の要件がある場合は Nacos を使用でき、そうでない場合は Apollo を使用できます。 |
<<: 2020年:世界のクラウドコンピューティングにおける11の主要年間トピックのレビュー
>>: 「江南春雲酒」ミニ番組が「自宅で過ごす旧正月」に温かさを添える
Pinduoduo の最後の 0.1% の交渉を嫌う人は多いと思います。大賞は手の届くところにあるの...
前回の記事「コミュニティインタラクションデザインからユーザーニーズを分析する」では、ユーザーニーズ分...
インターネット社会がますます発達し、私たちが物と接する方法も変化し多様化しています。商品のプロモーシ...
spinservers は最新の中秋節プロモーションを発表しました。米国中部のダラス データ センタ...
データは、1 つの時間と 1 つの場所に存在します。タイムスタンプと位置情報タグが付けられたデータで...
ウェブマスターが29%割引のラックナードのブラック5特別版VPSのレビュー[ラックナードの29%割引...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス3月26日、ネット上の一...
おそらく、ローカル人材ネットワークの運営はすでに飽和状態にあるが、競争があるからこそ、利益ポイントが...
実際、多くの企業がマルチクラウドを使用していますが、それが何であり、なぜそうするのかを知っている人は...
月収10万元の起業の夢を実現するミニプログラム起業支援プラン9月4日、「NewX-2018 Xiao...
Ramnode は、openvz ベースの V2 バージョンが 32% 割引で正式に販売されることを...
11 月 11 日は、電子商取引 Web サイトにとって最もエキサイティングなプロモーション デーと...
O2Oについては2、3年前から話題になっていますが、O2Oが人気になってから1年以上経ちます。 O2...
spinservers は、中国の建国記念日に合わせて特別にプロモーションを開始しました。米国ダラス...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています最近、給湯...