Nacos—Nacos の紹介と Nacos サーバーのインストール

出典: 02-Nacos 構成管理 - 構成センターとは_哔哩哔哩_bilibili

忘れずに nacos のバージョン 2.x をダウンロードしてください。そうすれば、今後新しい構成を作成するときに「公開エラー。パラメータが正しいかどうか確認してください」というエラーが発生することになります。

目次

1. ナコスの紹介

1.1 4 つの主な機能:

1.2 比較

2. 構成センター

2.1 構成とは

  2.1.1 特徴 

2.2 構成センターとは

3.Nacosサーバーのインストール

3.1 ファイルのダウンロード

3.2 サーバーの起動 (Windos モード)

3.3 OPEN API構成管理テスト

 3.3.1 カールツールのインストール

 3.3.2 設定の公開

 3.3.3 設定の取得

 3.3.4 サーバーをシャットダウンする (Windows モード)

 3.3.5 外部 MySQL データベースのサポート


1. ナコスの紹介

Nacos は Ali のオープンソース製品であり、マイクロサービス アーキテクチャにおけるサービス検出、構成管理、サービス ガバナンスのための包括的なソリューションです。

1.1 4 つの主な機能:

①サービスディスカバリとサービスヘルスチェック

     Nacos を使用すると、 DNSまたはHTTPインターフェイスを通じて サービスの登録と 他のサービスの検出が容易になり、サービスのリアルタイムのヘルス チェックも提供して、異常なホストやサービス インスタンスにリクエストが送信されるのを防ぎます。

②動的構成管理

     動的構成サービスを使用すると、すべての環境にわたるすべてのサービスの構成を一元的かつ動的に管理できます。 Nacos を 使用すると、構成を更新するときにアプリケーションを再デプロイする必要がなくなり、構成変更がより効率的かつ柔軟になります。

③ダイナミックDNSサービス

     Nacos は、 DNSプロトコル に基づいたサービス検出機能を提供します (Nacos は、HTTP に基づいてサービス検出を実行するだけでなく、DNS プロトコルを通じてサービス検出を実行することもできます)。これは、異種言語でのサービス検出をサポートすることを目的としており、Nacos に登録されているサービスをサポートします。ドメイン名の形式 エンドポイントを公開し、サードパーティのアプリケーションがエンドポイントを簡単に表示および検出できるようにします。
④ サービスとメタデータの管理
    Nacos を 使用すると、管理サービスの説明、ライフサイクル、サービスの静的依存関係分析、サービスの健全性状態、サービスのトラフィック管理、ルーティングとセキュリティ ポリシーなど、マイクロサービス プラットフォーム構築の観点からデータ センター内のすべてのサービスとメタデータを管理できます。
ここでの動的構成管理の特徴は、Naocs の構成管理機能を示しています。

1.2 比較

      構成センターの観点から見ると、パフォーマンスの点では、Nacosが最も読み取りおよび書き込みパフォーマンスが高く、次にApolloが続きます。Spring CloudConfig がGitに依存するシナリオは、オープンな大規模な自動運用およびメンテナンス API には適していません機能的にはApollo が最も充実しており、Nacos はApollo の構成管理機能のほとんどを備えていますが、SpringCloud Config は運用保守管理インターフェースを持たず、独自に開発する必要があります。Nacosの主な利点は、導入および運用と比較して、登録センターと構成センターの機能が統合されていることです。

Apollo は 直感的でシンプルである必要があるため、アーキテクチャの複雑さが簡素化され、運用、保守、展開の作業が軽減されます。

2. 構成センター

一般に、構成センターは、さまざまなアプリケーション構成を統一的に管理する基本的なサービス コンポーネントです。

2.1 構成とは

       アプリケーションが起動して実行されるとき、多くの場合、構成情報を読み取る必要があります。構成には基本的に、データベース接続パラメータ、起動パラメータなどのアプリケーションのライフサイクル全体が伴います。

  2.1.1 特徴 

   設定はプログラムから独立した 読み取り専用の 変数です
       プログラムの構成は読み取り専用です。プログラムは構成を読み取ることで動作を変更しますが、プログラムは構成を変更するべきではありません。
   付属のアプリケーションのライフサイクル全体を構成する
        
      構成はアプリケーションのライフサイクル全体を通じて実行され、アプリケーションは起動時に構成を読み取って初期化し、実行時に構成に従って動作を調整します。
      たとえば、サービスのポート番号は起動時に読み取る必要があり、システムの実行中にタイミング タスクを実行するにはタイミング ポリシーを読み取る必要があります。
    構成は複数の方法でロードできます
      一般的なものには、プログラム内の ハードコード 、構成ファイル、環境変数、データベースに基づく起動パラメータなどが含まれます。
    構成にはガバナンスが必要です
        多くの場合、同じプログラムが、異なる環境 (開発、テスト、運用) や異なるクラスター (異なるデータセンターなど) で異なる構成を持つ必要があるため、完全な環境とクラスター構成を管理する必要があります。

2.2 構成センターとは

       マイクロサービスアーキテクチャでは、単一のアプリケーションから分散システム上のサービスノードにシステムを分割する場合、構成ファイルも移行(分割)する必要があり、構成が分散されるだけでなく、冗長性も含まれます。下に示された:
   冗長性を避けるために、構成センターを作成し、すべてのサービスが構成センターから構成ファイルを読み取れるようにすることができます。
   
   つまり、 各アプリケーションからコンフィグレーションを分離し、コンフィグレーションセンターで一元管理するため、アプリケーション自身がコンフィグレーションを管理する必要がありません。

プロセスは次の図に示されています。プロセス全体は非常にインテリジェントです。

では、最新の構成を取得するにはどうすればよいでしょうか?
   たとえば、一部のネットワーク プロトコルを通じて、リモート ネットワーク プロトコルが読み取られます。
なぜリモート ネットワーク プロトコルを通じてそれを読み取るのでしょうか?
   構成センターは、独立して展開されるサービスです。独立したサーバー上に存在する場合があります。サービス A とサービス B は両方とも独立したサーバー上にあります。その場合、アクセスはリモート ネットワーク プロトコルを通じてのみ読み取ることができます。
    

3.Nacosサーバーのインストール

Nacos は Java環境 に依存して 実行されます。Nacos をコードから構築して実行している場合は、そのためにMaven環境を構成する必要もあります。
 
nacos 2.x jdk 1.8+ Maven 3.2.x+ mysql 5.6.5+ を推奨 

3.1 ファイルのダウンロード

リリース · alibaba/nacos (github.com)

次のファイルをダウンロードして解凍します。パスに中国語が含まれないように注意してください。
       「.gz」で終わるファイルは Linux バージョンです。zip で終わるファイルをダウンロードする必要があります。

 

解凍後のファイルディレクトリは以下の通りです

3.2 サーバーの起動 (Windos モード)

   Nacos のデフォルトのポートは 8848 であるため、このポートが他のプロセスによって占有されていないことを確認する必要があります。

 開始コマンド:

cmd startup.cmd
   
    または、startup.cmd ファイルを直接ダブルクリックします。

いずれの場合も、正常に実行されると次のページが表示されます。次に、下の赤でマークされた場所をコピーします。この場所は人によって異なる場合があります。

 

ダブルクリック後に cmd 実行ウィンドウがフラッシュバックする場合は、次の人の記事を参照してください。これは非常に便利です。

(メッセージ 34 件) NACOS スタートアップ フラッシュバック_日の出前の Qianye のブログ-CSDN ブログ_nacos スタートアップ フラッシュバック

アドレスを入力してEnterを押すと、次のページが表示されます

    デフォルトのユーザー名: nacos デフォルトのパスワード: nacos   

    パスワードを入力してメインインターフェイスに入ります

3.3 OPEN API構成管理テスト

3.3.1 カールツールのインストール

nacos が正常に 起動し たら、 nacos が提供する httpapiを通じて nacosサービスが正常に実行されているかどうかを 確認できます
以下では、 curlツールを使用してnacosopenapiをテストします
curlは開発時に一般的に使用されるコマンド ライン ツールであり、 HTTPプロトコルのテストに使用できます
Windowsバージョン curl をダウンロードします: curl-7.66.0_2-win64-mingw 、ダウンロードアドレス: https://curl.haxx.se/windows/
上記で共有されている Baidu ネットワーク ディスクからデータを抽出することもできます

ダウンロードが完了したら、 curl-7.66.0_2-win64-mingw binディレクトリに入り 、以下のテストを行うことで、 nacos が正常に動作しているかどうかを判断できます。

 3.3.2 設定の公開

   よく見てください、これは POST リクエストです

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"

cmd ウィンドウで上記のコマンドを実行します。成功すると、「true」という単語が表示されます。

この時点で true が表示された後、再度 Nacos ページを開くと、構成リスト -> クエリ -> 以下の構成が表示されます。これが構成情報です。

詳細については右をクリックしてください

次のページに構成の内容が表示されます。構成の内容は、実行したコマンドに対応しています。

    「content=」以降の内容に相当します

3.3.3 設定の取得

 私たちのコンピュータはクライアントです。nacos からデータを取得したいと考えています

構成がnacosに正常に公開され  たら、 クライアントを通じて nacosから構成情報を取得し 、次のコマンドを実行できます。
   
       GETリクエストが取得できる
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

構成をリリースするときに、dataId、group、contentを指定しました。

したがって、構成を取得するときは、dataId とグループを指定する必要があります。そうすれば、次の図に示すように、コンテンツのコンテンツを取得できます。

3.3.4 サーバーをシャットダウンする (Windows モード)

cmd shutdown.cmd

または、より直接的な方法は、ウィンドウを直接閉じることです。

または、shutdown.cmd をダブルクリックしてファイルを実行します

3.3.5 外部 MySQL データベースのサポートへの変更

以下の図に示すように、nacos にはいくつかのデータが存在しますが、スタンドアロン モードでは、nacos はデフォルトで組み込みデータベースを使用してデータを保存します。

      MySQL および SQL Server これらのデータベースはデータベース サーバーに属します

      SQLite、 Berkeley DB などは組み込みデータベースです

      組み込みデータベースとデータベース サーバーの最大の違いは、異なるアドレス空間で動作することです

      通常、データベース サーバーはデーモンを独立して実行しますが、組み込みデータベースはアプリケーションと同じプロセスで実行されます。

外部 mysql を使用してnacosデータを保存する場合は、次の手順を実行する必要があります
1. データベースをインストールします。バージョン要件: 5.6.5+ mysql8 以下
2. mysql データベースを初期化し、新しいデータベース nacos_config 、データベース初期化ファイルを作成します: $ { nacoshome}/conf/nacos-mysql.sql
    次のファイルをデータベースにインポートします

 

以下は nacos が必要とするテーブルです

3. ${nacoshome}/conf/application.properties ファイルを変更し、 mysql データ ソース構成のサポートを追加し (現在は mysql のみがサポートされています)、 mysql データ ソースの URL 、ユーザー名、およびパスワードを追加します。

 次のステートメントを上記のファイルにコピーします

 spring.datasource.platform=mysql
 
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true 
db.user=nacos_devtest
db.password=youdontknow

 上記のステートメントが機能しない場合は、上記の構成よりもタイム ゾーンが 1 つ多い、serverTimezone=UTC を持つ次のステートメントを使用できます。また、データベース名も nacos に変更しました。このファイルと MySQL のデータベースは両方とも、上記を使用すると、「com.mysql.jdbc.例外.jdbc4.MySQLSyntaxErrorException: 不明なデータベース 'nacos_config'」というエラーが発生し続けましたが、変更した後、そのような問題がないことがわかりました。 . 理由は分かりません。

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&serverTimezone=UTC&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
127.0.0.1:3306 ローカルマシン上にあるので127.0.0.1、MySQLのポート番号は3306です

  nacos_config はデータベース名を示します(後で nacos に変更しました)

   db.user 、 db.password はデータベースのユーザー名とパスワードを表します。  

ナコスを再起動します

 Web ページに再度アクセスすると、データがないことがわかります。データベースには空のテーブルがあるため、データがないことが示されています。これは正常です。

おすすめ

転載: blog.csdn.net/weixin_51351637/article/details/129011544