Apollo分散配置センター簡易環境配置


Apollo(アポロ)は携程フレームワーク部門が開発した分布式配置センターであり、アプリケーションの異なる環境、異なるクラスタの配置を集中的に管理することができ、配置が修正された後、リアルタイムでアプリケーション側に送ることができ、規範的な権限、プロセス管理などの特性を備え、マイクロサービス配置管理シーンに適用する.githubアドレスは以下の通りである.https://github.com/ctripcorp/apolloこのプロジェクトでは、ローカル導入と分散導入の2つの導入方法があります.本番環境では、分散型導入を推奨します.最近のプロジェクトでは、コンフィギュレーションセンターを使用する必要があるため、apollo、Qconf、SpringCloud Configなどの一連の分散コンフィギュレーションセンターを総合的に分析した後、apolloを初歩的に選定した.政府が提供する分散型導入アーキテクチャは、大規模なクラスタ環境に適しています.その全体的なアーキテクチャの基礎の上で簡素化をして、先に走って、開発部門に環境を提供して、テストします.
一、環境準備
1.サーバ情報及びノード紹介
ホスト名
IP
コメント
hadoop02.ok.com
10.150.27.65
Portalserver/Configserver/adminserver and MySQL
APPCAN-T-APP-6
10.150.27.65
Configserver/adminserver and MySQL
ソフトウェアバージョン:JAVA:
[root@appcan-t-app-7 scripts]# java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

MAVEN:
[root@appcan-t-app-7 scripts]# mvn -version
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T03:49:05+08:00)
Maven home: /usr/local/apache-maven-3.5.3
Java version: 1.8.0_60, vendor: Oracle Corporation
Java home: /usr/local/jdk1.8.0_60/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"

MySQL:
[root@appcan-t-app-7 scripts]# mysql -uroot -p
mysql> select version(); 
+---------------+
| version()     |
+---------------+
| 5.7.19-17-log |
+---------------+
1 row in set (0.01 sec)

アーキテクチャ図は次のとおりです.
説明:
  • Portalは10.150に配備する.27.65では、DEV、PRO環境の構成を直接管理し、FAT環境とUAT環境はしばらく使用されていません.
  • Meta Server、Config Service、およびAdmin Serviceは、DEVおよびPRO環境で個別に導入され、独立したデータベースを使用します.
  • Meta ServerとConfig Serviceは同じJVMプロセス内に配置され、Admin Serviceは同じサーバの別のJVMプロセス内に配置されます.

  • 二、配置手順:
    1.cloneプロジェクトからローカルディレクトリ(/home/ok)
    clone https://github.com/ctripcorp/apollo.git

    2.データベースの作成
    Apolloサービス側には、ApolloPortalDBとApolloConfigDBの2つのデータベースが必要です.データベース、テーブルの作成、サンプルデータのsqlファイルは、プロジェクト(/home/ok/apollo/scripts/sql)にあり、データベースをインポートするだけです.ApolloPortalDBは1つだけ配置すればよいのに対し、ApolloConfigDBはこの例ではdevとproがそれぞれ2つのApolloConfigDBを配置するなど、環境ごとに1セット配置する必要があることに注意してください.
    3.ApolloPortalDBの作成
    sqlファイルをインポートするには:
    mysql> source /home/ok/apollo/scripts/sql/apolloportaldb.sql;

    検証:
    mysql> select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;
    +----+--------------------+---------+--------------------------+
    | Id | Key                | Value   | Comment                  |
    +----+--------------------+---------+--------------------------+
    |  1 | apollo.portal.envs | dev |                  |
    +----+--------------------+---------+--------------------------+
    1 row in set (0.00 sec)

    4.ApolloConfigDBの作成
    sqlファイルをインポートするには:
    mysql> source /home/ok/apollo/scripts/sql/apolloconfigdb.sql;

    検証:
    mysql> select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDB`.`ServerConfig` limit 1;
    +----+--------------------+-------------------------------+------------------------------------------------------+
    | Id | Key                | Value                         | Comment                                              |
    +----+--------------------+-------------------------------+------------------------------------------------------+
    |  1 | eureka.service.url | http://localhost:8080/eureka/ | Eureka  Url,  service                    |
    +----+--------------------+-------------------------------+------------------------------------------------------+
    1 row in set (0.00 sec)
  • 注:ApolloConfigDBは、devとproのようにそれぞれApolloConfigDB 5を配置する環境ごとに1セット配置する必要があります.調整サービス側構成5.1 ApolloPortalDB構成apolloを調整する.portal.Envs-サポート可能な環境リストのデフォルト値はdevです.この例ではpro環境を追加する必要があります.まずデータベースapolloportaldb-serverconfig-apollo.portal.Envs内にproを追加します.
    mysql> select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;
    +----+--------------------+---------+--------------------------+
    | Id | Key                | Value   | Comment                  |
    +----+--------------------+---------+--------------------------+
    |  1 | apollo.portal.envs | pro,dev |                  |
    +----+--------------------+---------+--------------------------+
    1 row in set (0.00 sec)
    次に修正/home/ok/apollo/scriipts/buildに協力する.shファイルのみ有効:
  • #meta server url, different environments should have different meta server addresses
    pro_meta=http://10.150.27.65:8080
    dev_meta=http://10.160.27.67:8080
    
    META_SERVERS_OPTS="-Ddev_meta=$dev_meta -Dpro_meta=$pro_meta"

    organizations-部門リストデータベースapolloportaldb-serverconfig-proorganizationsで変更:
    mysql> select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` where Id=2;
    +----+---------------+------------------------------------------------------------------------------------+--------------+
    | Id | Key           | Value                                                                              | Comment      |
    +----+---------------+------------------------------------------------------------------------------------+--------------+
    |  2 | organizations | [{"orgId":"BACKEND","orgName":"JAVA"},{"orgId":"TEST2","orgName":"    2"}]     |          |
    +----+---------------+------------------------------------------------------------------------------------+--------------+
    1 row in set (0.00 sec)

    5.2調整ApolloConfigDBの配置配置項目はApolloConfigDBに統一的に記憶する.ServerConfigテーブルでは、各環境のApolloConfigDBに注意する必要があります.ServerConfigは個別に構成する必要があります.eureka.service.url-EurekaサービスUrl各環境は自分の環境のeurekaサービスアドレスのみを記入する.DEV環境でのApolloConfigDB.ServerConfigテーブルでeurekaを設定します.service.urlは次のとおりです.http://localhost:8080/eureka/PRO環境でのApolloConfigDB.ServerConfigテーブルでeurekaを設定します.service.urlは次のとおりです.http://localhost:8080/eureka/
    6.データベース接続情報の構成
    編集/home/ok/apollo/scripts/build.shファイル、ApolloPortalDBとApolloConfigDBに関するデータベース接続列情報を変更します.10.150.27.65:
    #apollo config db info
    apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
    apollo_config_db_username=root
    apollo_config_db_password=bobo365
    
    #apollo portal db info
    apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
    apollo_portal_db_username=root
    apollo_portal_db_password=bobo365

    10.150.27.67:
    #apollo config db info
    apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
    apollo_config_db_username=root
    apollo_config_db_password=bobo365
    
    #apollo portal db info
    apollo_portal_db_url=jdbc:mysql://10.160.27.65:3306/ApolloPortalDB?characterEncoding=utf8
    apollo_portal_db_username=root
    apollo_portal_db_password=bobo365

    7.各環境metaサービスアドレスの設定
    PortalクライアントとApolloクライアントは、異なる環境で異なるmetaサービス(apollo-configservice)アドレスにアクセスする必要があるため、パッケージ化時にこれらの情報を提供する必要があります.
    #meta server url, different environments should have different meta server addresses
    pro_meta=http://10.150.27.65:8080
    dev_meta=http://10.160.27.67:8080
    
    META_SERVERS_OPTS="-Ddev_meta=$dev_meta -Dpro_meta=$pro_meta"

    8.コンパイル、パッケージングの実行
    実行スクリプト:/home/ok/apollo/scripts/build.shこのスクリプトは、apollo-configservice、apollo-adminservice、apollo-portal、apollo-clientの順にパッケージされます.
    9.apollo-configserviceの導入
    apollo-configservice/target/ディレクトリの下のapollo-configservice-x.x.x-github.zipはサーバにアップロードし、解凍後scripts/startupを実行する.shでいいです.サービスを停止する必要がある場合はscripts/shutdownを実行します.sh.
    [root@appcan-t-app-7 target]# pwd
    /home/ok/apollo/apollo-configservice/target
    [root@appcan-t-app-7 target]# unzip apollo-configservice-0.9.1-SNAPSHOT-github.zip -d test

    10.apollo-adminserviceの導入
    apollo-adminservice/target/ディレクトリの下のapollo-adminservice-x.x-github.zipはサーバにアップロードし、解凍後scripts/startupを実行する.shでいいです.サービスを停止する必要がある場合はscripts/shutdownを実行します.sh.
    [root@appcan-t-app-7 target]# pwd 
    /home/ok/apollo/apollo-adminservice/target
    [root@appcan-t-app-7 target]# unzip apollo-adminservice-0.9.1-SNAPSHOT-github.zip -d test

    11.apollo-portalの導入
    apollo-portal/target/ディレクトリの下のapollo-portal-x.x.x-github.zipはサーバにアップロードし、解凍後scripts/startupを実行する.shでいいです.サービスを停止する必要がある場合はscripts/shutdownを実行します.sh.apollo-portalのデフォルトポートは8080で、apollo-configserviceと一致しているので、apollo-portalとapollo-configserviceを1台のマシンで同時に起動する必要がある場合は、apollo-portalのポートを変更する必要があります.startupを直接変更します.shのSERVER_PORTでいい、例えばSERVER_PORT=8070.
    [root@appcan-t-app-7 target]# pwd
    /home/ok/apollo/apollo-portal/target
    [root@appcan-t-app-7 target]# unzip apollo-portal-0.9.1-SNAPSHOT-github.zip -d test

    三、Portalユーザー登録
    システム登録後http://portalアドレス//user-manage.htmlページにユーザーを追加するには、スーパー管理者のみがユーザーを追加できます.そうしないと、403エラーが表示されます.システムのデフォルトアカウント:apollo/admin.Eureka(10.150.27.67)ページは以下の通り:Eureka(10.150.27.65)ページは以下の通り:Portalページは以下の通り:
    以上はサービス側の構築と導入にすぎず、実際に使用するにはクライアントと組み合わせて使用する必要があります.次のリンクは、Javaクライアントの使用マニュアルです.JAVAクライアント使用マニュアル