Configuration CenterApolloのインストールと構成

公式ウェブサイトアドレス:http//apollo.auto/

GitLabアドレス:https//github.com/ctripcorp/apollo

全体的なアーキテクチャ

Configuration CenterApolloのインストールと構成

  1. ポータル操作でのユーザー構成のリリース

  2. ポータルコール管理サービスインターフェイス操作リリース

  3. 管理サービスは構成を公開した後、ReleaseMessageを各構成サービスに送信します

  4. 構成サービスはReleaseMessageを受信すると、対応するクライアントに通知します

実現原理

Configuration CenterApolloのインストールと構成
上の図は、Apolloクライアントの実装原理を簡単に説明しています。

  1. クライアントとサーバーは長い接続を維持するため、構成の更新をできるだけ早くプッシュできます。(Http Long Pollingによって達成)

  2. クライアントはまた、Apollo構成センターサーバーからアプリケーションの最新の構成を定期的にプルします。
  • これは、プッシュメカニズムが失敗し、構成が更新されないようにするためのフォールバックメカニズムです。

  • クライアントは定期的にプルするときにローカルバージョンを報告するため、通常、定期的にプルする操作の場合、サーバーは304-変更なしを返します。

  • デフォルトでは、タイミング頻度は5分ごとにプルされます。また、実行時にシステムプロパティapollo.refreshIntervalを分単位で指定することにより、クライアントをオーバーライドすることもできます。

1.クライアントがApollo構成センターサーバーからアプリケーションの最新の構成を取得した後、それはメモリに保存されます

2.クライアントは、サーバーから取得した構成のコピーをローカルファイルシステムにキャッシュします。

  • サービスが利用できない場合やネットワークが利用できない場合でも、ローカルから構成を復元できます

1.アプリケーションは、Apolloクライアントから最新の構成を取得し、構成更新通知をサブスクライブできます。

MySQLのインストール

バージョン要件:5.6.5+
ホスト:10.2.42.28
mysql依存パッケージをクリアします:

rpm -qa | grep mysql

yum remove mysql-libs

mysql5.7のインストール:インストールシーケンス:common→libs→client→server

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

正常なインストールインターフェイス:

[root@DCA-APP-COM-apollo02 mysql]# rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm

warning: mysql-community-common-5.7.26-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                          ################################# [100%]

Updating / installing...

   1:mysql-community-common-5.7.26-1.e################################# [100%]

[root@DCA-APP-COM-apollo02 mysql]# rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm

warning: mysql-community-libs-5.7.26-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                          ################################# [100%]

Updating / installing...

   1:mysql-community-libs-5.7.26-1.el7################################# [100%]

[root@DCA-APP-COM-apollo02 mysql]# rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm

warning: mysql-community-client-5.7.26-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                          ################################# [100%]

Updating / installing...

   1:mysql-community-client-5.7.26-1.e################################# [100%]

[root@DCA-APP-COM-apollo02 mysql]# rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

warning: mysql-community-server-5.7.26-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                          ################################# [100%]

Updating / installing...

   1:mysql-community-server-5.7.26-1.e################################# [100%]

mysqlを起動します:

service mysqld start

mysqlの初期化:

[root@DCA-APP-COM-apollo02 mysql]# grep 'temporary password' /var/log/mysqld.log

2019-07-17T14:10:02.559365Z 1 [Note] A temporary password is generated for root@localhost: %hNW)P3Ly,8v

[root@DCA-APP-COM-apollo02 mysql]# mysql -uroot -p

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.26

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

# 更改密码长度

mysql> set global validate_password_length=1;

Query OK, 0 rows affected (0.00 sec)

# 更改密码强度

mysql> set global validate_password_policy=0;

Query OK, 0 rows affected (0.00 sec)

mysql> set password for root@localhost=password('123456');

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> grant all privileges on *.* to 'root' @'%' identified by '123456';

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

Apolloデータベースの作成:公式Webサイトで自分でSQLをダウンロード

mysql> source apolloconfigdb.sql;

mysql> source apolloportaldb.sql;

Msyql接続ユーザー認証:

mysql> grant all privileges on ApolloConfigDB.* to Apollo@'%' IDENTIFIED BY 'Apollo' ;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> grant all privileges on ApolloPortalDB.* to Apollo@'%';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

データベース構成の変更:

ApolloPortalDB:
Configuration CenterApolloのインストールと構成

ApolloConfigDB:
Configuration CenterApolloのインストールと構成

アポロのインストール

公式アドレス:https//github.com/ctripcorp/apollo
このテストバージョンは:0.10.2
ダウンロードアドレス:https//github.com/ctripcorp/apollo/releases/tag/v0.10.2apollo-adminservice-0.10
。 2-github.zip
apollo-configservice-0.10.2-github.zip
apollo-portal-0.10.2-github.zip

apollo-config

ホスト:10.2.42.27
apolloユーザーの作成:

groupadd apollo && useradd -g apollo apollo

configserverを構成します。

cd /home/apollo/

mkdir apollo-config

unzip apollo-configservice-0.10.2-github.zip -d apollo-config

ApolloconfigDB構成:

vim apollo-config/config/application-github.properties

# DataSource

spring.datasource.url = jdbc:mysql://10.2.42.28:3306/ApolloConfigDB?characterEncoding=utf8

spring.datasource.username = Apollo

spring.datasource.password = Apollo

ログパスとJVMパラメーターの変更:構成の一部であり、次の構成を変更する必要はありません。

vim apollo-config/scripts/startup.sh

# 修改日志路径

LOG_DIR=/home/apollo/logs/100003171

# 默认端口

SERVER_PORT=8080

# 默认注释看需求打开

## Adjust memory settings if necessary

export JAVA_OPTS="-Xms6144m -Xmx6144m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=4096m -XX:MaxNewSize=4096m -XX:SurvivorRatio=8"

Apollo-configserviceを開始します。

cd /home/apollo/

chown -R apollo.apollo *

su apollo

./apollo-config/scripts/startup.sh

正常な起動:

Thu Jul 18 15:06:53 CST 2019 ==== Starting ==== 

Started [53700]

Waiting for server startup......

Thu Jul 18 15:07:24 CST 2019 Server started in 30 seconds!

apollo-admin

ホスト:10.2.42.28

groupadd apollo && useradd -g apollo apollo

cd /home/apollo/

mkdir {apollo-admin,apollo-portal}

unzip apollo-adminservice-0.10.2-github.zip -d apollo-admin

unzip apollo-portal-0.10.2-github.zip -d apollo-portal

ApolloconfigDB構成:

cd apollo-admin

vim config/application-github.properties

# DataSource

spring.datasource.url = jdbc:mysql://10.2.42.28:3306/ApolloConfigDB?characterEncoding=utf8

spring.datasource.username = Apollo

spring.datasource.password = Apollo

ログパスとJVMパラメータの構成:構成の一部であり、後者の構成を変更する必要はありません

vim scripts/startup.sh

#!/bin/bash

SERVICE_NAME=apollo-adminservice

## Adjust log dir if necessary

LOG_DIR=/home/apollo/logs/100003172

## Adjust server port if necessary

SERVER_PORT=8090

## Adjust memory settings if necessary

export JAVA_OPTS="-Xms2560m -Xmx2560m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1536m -XX:MaxNewSize=1536m -XX:SurvivorRatio=8"

apollo-adminを起動します。

cd /home/apollo/

chown -R apollo.apollo *

su apollo

./scripts/startup.sh

Thu Jul 18 16:17:32 CST 2019 ==== Starting ==== 

Started [56497]

Waiting for server startup......

Thu Jul 18 16:18:02 CST 2019 Server started in 30 seconds!

アポロポータル

ホスト:10.2.42.28
apolloportlDB構成:

cd /home/apollo/apollo-portal

vim config/application-github.properties

# DataSource

spring.datasource.url = jdbc:mysql://10.2.42.28:3306/ApolloPortalDB?characterEncoding=utf8

spring.datasource.username = Apollo

spring.datasource.password = Apollo

configservice構成:ポータルのセットで複数のconfigserviceを管理することも、startup.shスクリプトで直接構成することもできます。

vim config/apollo-env.properties

local.meta=http://localhost:8080

dev.meta=http://10.2.42.27:8080

fat.meta=http://10.2.42.27:8080

uat.meta=${lpt_meta}

lpt.meta=${lpt_meta}

pro.meta=${lpt_meta}

ログパスとJVMパラメーターの変更:構成の一部であり、次の構成を変更する必要はありません。

vim scripts/startup.sh

#!/bin/bash

SERVICE_NAME=apollo-portal

## Adjust log dir if necessary

LOG_DIR=/home/apollo/logs/100003173

## Adjust server port if necessary

SERVER_PORT=8070

## Adjust memory settings if necessary

export JAVA_OPTS="-Xms2560m -Xmx2560m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1536m -XX:MaxNewSize=1536m -XX:SurvivorRatio=8"

apollo-portalの開始:

su apollo

./scripts/startup.sh

Thu Jul 18 16:25:55 CST 2019 ==== Starting ==== 

Started [56773]

Waiting for server startup...

Thu Jul 18 16:26:10 CST 2019 Server started in 15 seconds!

アポロの使用

サーバーページの表示:10.2.42.27:8080
Configuration CenterApolloのインストールと構成

構成センターのページ表示:10.2.42.28:8070
apollo / admin
Configuration CenterApolloのインストールと構成

プロジェクトの作成:

Configuration CenterApolloのインストールと構成

Configuration CenterApolloのインストールと構成

おすすめ

転載: blog.51cto.com/15080014/2654773