CentOS8でのApollo構成センターの分散展開

序文##

ご存知のとおり、ApolloはCtripのオープンソース構成センターであるため、中国のドキュメントは比較的完全であるため、ここでは詳しく説明しません。この記事の主な目的は、CentOS8でApollo ConfigurationCenterを分散して展開する方法を記録することです。アポロの機能のハイライト:

公式の分散展開ドキュメント:

ローカル開発中にApollo環境をすばやく構築したいだけの場合は、公式のクイックスタートを参照してください。


準備オーケー##

次の図は、Apolloアーキテクチャモジュールの概要です。

上の図は、Apolloの全体的な設計を簡単に説明しています。下から上に見ることができます。

したがって、通常、異なる役割を担当する2つのノードをデプロイします。ConfigServer(構成サービス、管理サービス、メタサーバーを含む)ノードとPortalServerノードです。最初に仮想化ソフトウェアを使用して2つのCentOS8仮想マシンを作成します。ここではVMwareを使用します。

ApolloはJavaのSpringBootフレームワークに基づいて作成されており、データストレージを[MySQL](https://cloud.tencent.com/product/cdb?from=10680)に依存しているためです。したがって、これら2つの仮想マシンには、事前にMySQLとJDKをインストールしました。

ランタイム環境の公式要件は次のとおりです。

そして、ここでの私のランタイム環境は次のとおりです。

次のように:

[ root@config-server ~]# java -version
java version "11.0.5"2019-10-15 LTS
Java(TM) SE Runtime Environment 18.9(build 11.0.5+10-LTS)
Java HotSpot(TM)64-Bit Server VM 18.9(build 11.0.5+10-LTS, mixed mode)[root@config-server ~]# mysql --version
mysql  Ver 8.0.18for Linux on x86_64(Source distribution)[root@config-server ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905(Core)[root@config-server ~]# 

データベースを作成する##

準備が完了したら、最初のステップは対応するデータベースを作成することです。 ApolloはMySQLデータベースに依存しているため、事前にデータベーステーブルの初期化を作成して完了する必要があります。 Apolloサービスの分散展開では、異なるMySQLインスタンスに2つのデータベース ApolloPortalDB ApolloConfigDBを作成する必要があります。

もちろん、個別に管理する必要がない場合は、MySQLインスタンスで作成することもできます。公式には、SQLファイルはデータベース、テーブル作成、およびサンプルデータ用に準備されています。データベースをインポートするだけで済みます。 SQLファイルのアドレスは次のとおりです。

「ApolloPortalDB」は実稼働環境にのみデプロイする必要があり、「ApolloConfigDB」の3つのセットをデプロイするには、fat、uat、pro環境などの各環境に「ApolloConfigDB」をデプロイする必要があることに注意してください。 MySQLインスタンスをそれぞれConfig-ServerとPortal-Serverにデプロイしました。

2つのSQLファイルを2つのデータベースに正常にインポートした後、作成されたデータベースとテーブルは次のようになります。


インストールパッケージを入手してください##

必要なインストールパッケージは3つあります。

公式インストールパッケージを直接ダウンロードすることも、ソースコードからビルドすることもできます。ソースコードを変更する必要がないので、ここから直接インストールパッケージをダウンロードします。ダウンロードアドレスについては、[Githubリリース](https://github.com/ctripcorp/apollo/releases)を参照してください。

ダウンロードリンクをコピーし、 wgetコマンドを使用してサーバーにダウンロードするか、ローカルにダウンロードしてサーバーにアップロードします。 config-serverのインストールパッケージは次のとおりです。

[ root@config-server ~]# cd /usr/local/src
[ root@config-server /usr/local/src]# ls
apollo-adminservice-1.7.1-github.zip    apollo-configservice-1.7.1-github.zip
[ root@config-server /usr/local/src]# 

portal-serverのインストールパッケージは次のとおりです。

[ root@portal-server ~]# cd /usr/local/src
[ root@portal-server /usr/local/src]# ls
apollo-portal-1.7.1-github.zip
[ root@portal-server /usr/local/src]# 

Apollo ConfigServerをデプロイします##

圧縮されたパッケージを適切なディレクトリに解凍します。

[ root@config-server /usr/local/src]# mkdir /usr/local/apollo-configservice
[ root@config-server /usr/local/src]# unzip apollo-configservice-1.7.1-github.zip -d /usr/local/apollo-configservice
[ root@config-server /usr/local/src]# mkdir /usr/local/apollo-adminservice
[ root@config-server /usr/local/src]# unzip apollo-adminservice-1.7.1-github.zip -d /usr/local/apollo-adminservice/[root@config-server /usr/local/src]# ls /usr/local/apollo-configservice
apollo-configservice-1.7.1.jar  apollo-configservice-1.7.1-sources.jar  apollo-configservice.conf  config  scripts
[ root@config-server /usr/local/src]# ls /usr/local/apollo-adminservice/
apollo-adminservice-1.7.1.jar  apollo-adminservice-1.7.1-sources.jar  apollo-adminservice.conf  config  scripts
[ root@config-server /usr/local/src]# 

apollo-configserviceのデータベース接続情報を構成します。

[ root@config-server /usr/local/src]# cd /usr/local/apollo-configservice/[root@config-server /usr/local/apollo-configservice]# vim config/application-github.properties 
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
spring.datasource.username = root
spring.datasource.password = 123456a.

apollo-adminserviceのデータベース接続情報を構成します。

[ root@config-server /usr/local/apollo-configservice]# cd ../apollo-adminservice/[root@config-server /usr/local/apollo-adminservice]# vim config/application-github.properties 
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
spring.datasource.username = root
spring.datasource.password = 123456a.

apollo-configserviceおよびapollo-adminserviceのJVM起動パラメーター、サービス監視ポート、ログファイルストレージディレクトリおよびその他の構成を調整する必要がある場合は、scripts /startup.shのインストールディレクトリで変更できます。

apollo-configserviceを開始します。

[ root@config-server /usr/local/apollo-configservice]# scripts/startup.sh 
2020 11月10日火曜日:34:22 CST ==== Starting ==== 
Started [20958]
Waiting for server startup...2020年11月10日火曜日16:34:38 CST Server started in15 seconds![root@config-server /usr/local/apollo-configservice]# 

起動が成功したかどうかを確認します。

[ root@config-server /usr/local/apollo-configservice]# jps
1655 apollo-configservice.jar
1807 Jps
[ root@config-server /usr/local/apollo-configservice]# netstat -lntp |grep 8080
tcp6       00:::8080:::*             LISTEN      1655/java           
[ root@config-server /usr/local/apollo-configservice]# 

apollo-adminserviceを開始します。

[ root@config-server /usr/local/apollo-adminservice]# scripts/startup.sh 
2020 11月10日火曜日:39:46 CST ==== Starting ==== 
Started [1886]
Waiting for server startup...2020年11月10日火曜日16:40:01 CST Server started in15 seconds![root@config-server /usr/local/apollo-adminservice]# 

起動が成功したかどうかを確認します。

[ root@config-server /usr/local/apollo-adminservice]# jps
1655 apollo-configservice.jar
2012 Jps
1886 apollo-adminservice.jar
[ root@config-server /usr/local/apollo-adminservice]# netstat -lntp |grep 8090
tcp6       00:::8090:::*             LISTEN      1886/java           
[ root@config-server /usr/local/apollo-adminservice]# 

サービスを停止する場合は、対応するサービスディレクトリでscripts /shutdown.shを実行するだけです。


Apolloポータルサーバーを展開する##

前のセクションと同様に、圧縮されたパッケージを適切なディレクトリに解凍します。

[ root@portal-server /usr/local/src]# mkdir /usr/local/apollo-portal
[ root@portal-server /usr/local/src]# unzip apollo-portal-1.7.1-github.zip -d /usr/local/apollo-portal/[root@portal-server /usr/local/src]# ls /usr/local/apollo-portal/
apollo-portal-1.7.1.jar  apollo-portal-1.7.1-sources.jar  apollo-portal.conf  config  scripts
[ root@portal-server /usr/local/src]# 

apollo-portalのデータベース接続情報を構成します。

[ root@portal-server /usr/local/src]# cd /usr/local/apollo-portal/[root@portal-server /usr/local/apollo-portal]# vim config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
spring.datasource.username = root
spring.datasource.password = 123456a.

次に、apollo-portalのメタサービス情報を構成します。 Apollo Portalは、さまざまな環境でさまざまなメタサービス(apollo-configservice)アドレスにアクセスする必要があるため、構成でこの情報を提供する必要があります。

デフォルトでは、メタサービスと構成サービスは同じJVMプロセスにデプロイされるため、メタサービスのアドレスは構成サービスのアドレスになります。以下に示すように、構成アイテムの形式はenv.meta = http:// {config-service-url:port}です。

[ root@portal-server /usr/local/apollo-portal]# vim config/apollo-env.properties
dev.meta=http://192.168.243.159:8080

apollo-env.propertiesを介してメタサービスを構成することに加えて、apolloは実行時のメタサービスの指定もサポートします(優先度は apollo-env.propertiesよりも高くなります)。

  1. Javaシステムプロパティ $ {env} _metaで指定
  1. オペレーティングシステムのシステム環境 $ {ENV} _METAによって指定されます

apollo-portalを開始します。

[ root@portal-server /usr/local/apollo-portal]# scripts/startup.sh 
2020 11月10日火曜日:56:36 CST ==== Starting ==== 
Started [21010]
Waiting for server startup........2020年11月10日火曜日16:57:17 CST Server started in40 seconds![root@portal-server /usr/local/apollo-portal]# 

起動が成功したかどうかを確認します。

[ root@portal-server /usr/local/apollo-portal]# jps
21010 apollo-portal.jar
21162 Jps
[ root@portal-server /usr/local/apollo-portal]# netstat -lntp |grep 8070
tcp6       00:::8070:::*                    LISTEN      21010/java          
[ root@portal-server /usr/local/apollo-portal]# 

起動が成功したら、ブラウザからポータルサーバーのポート8070にアクセスします。

ログインに成功したら、ホームページに入ります。

次に、サンプルプロジェクトに入り、いくつかのテストを実行して、正常に機能するかどうかを確認できます。

この時点で、Apolloの分散展開が完了しました。これは1セットの環境です。複数の環境セットがある場合は、Apollo Config Serverセクションの手順を繰り返すだけで、複数のConfigServerノードを展開できます。次に、PortalServerの apollo-env.properties構成ファイルでこれらの構成サーバーノードのアクセスアドレスを構成します。

Recommended Posts

CentOS8でのApollo構成センターの分散展開
centos7でのredisのインストールと構成
CentOS6.5でのrsyncサーバーのインストールと構成
Centos7でのJDK、mysql、tomcatの環境構成
[CentOS環境の展開] CentOSでのJava7 / Java8の展開
Centos7.4デプロイメント構成Elasticsearch5.6クラスター
centos7へのグラファイトの展開
CentOS8.0ネットワーク構成の実装
centOS7でのSparkのインストールと構成のチュートリアルの詳細な説明
Centos7のインストールとJenkinsの構成
Centos6.5のインストールとKVMの展開
Centos6.9でのRabbitMQクラスター展開レコード
CentOS7でのElasticsearchクラスター展開レコード
Centos6ネットワーク構成の詳細な例
フラスコプロジェクトのCentOS展開方法
centos7でのFFmpeg環境の展開記録
CentOS7でのErlang20.2のインストールと展開
CentosでのPPTP環境の展開記録
CentOS8でのElasticStackの使用:Elasticsearch / Kibana7.8の展開と認証の構成
CentOSでのMysqlのインストールと使用
CentOS 7でのTomcatのインストールと構成(Tomcatの起動)
Centos-6.5LNMP環境のインストールと展開
CentOSでのZabbixのインストールと展開およびローカリゼーション
CentOS7でのJenkinsのインストールと展開のチュートリアル
CentOs7の下でのZabbixの4回目の分割払い
Centos7.2でのLDAPの完全な展開レコード
国内ソースのCentOS8yum / dnf構成方法
Centos7のインストールとAirflowの展開の詳細
CentOS7でScaleIO分散ストレージクラスターを構築する
VMware10でのCentOS7のインストールと構成のグラフィックチュートリアル
CentOS6でのrpmパッケージングの実際の戦闘
VMwareWorkstationでのCentOS7のインストールと構成
CentOSでのMySQL8.0のインストールと展開、非常に詳細!
Centos8静的IP構成の実装について説明する
Windows 8Hyper-VでのCentOS6およびSSH構成のインストール
CentOS7でのmysql5.6のデフォルトエンコーディングを変更します
CentosでのMicrosoftROpenの非ルートインストール
CentOS8でのMySQL8.0のインストール、展開、および構成のチュートリアル
Centos7でのFastDFSのインストールから入力まで
CentOS7.0ネットワーク構成
CentOS7.0ネットワーク構成
CentOS7の基本構成
CentosMySQL8構成
CentOS展開ハーバー
Centosでのconfluence6.3操作記録のインストールとクラッキング
CentosでのJira7操作記録のインストールとクラッキング
Cobblerを使用して、CentOS / Ubuntuのバッチ展開を自動化します
Ubuntuシステムでの静的DNS構成の詳細な説明
linux(centos)プロジェクトの展開フェーズに関連するコマンドの概要
CentosでのSFTPデュアルマシン高可用性環境の展開記録
CentOS7環境でのKubernetes(k8s)クラスターの迅速な展開