導入分散について話すときは、分散構成センター、分散ログ、分散リンク トラッキングなどについて考える必要があります。 分散展開では、ビジネスには多くの構成が必要になることがよくあります。たとえば、アプリケーションを起動して実行すると、いくつかの構成情報を読み取る必要があります。構成は基本的に、アプリケーションのライフサイクル全体に付随します。たとえば、データベース接続パラメータ、起動パラメータなどはすべて維持および構成する必要がありますが、各サーバーにログインして構成することは不可能です。今日は、分散構成センター Apollo についてお話ししたいと思います。 Apollo は、Ctrip のフレームワーク部門が開発した分散構成センターです。さまざまなアプリケーション環境とクラスターの構成を一元管理できます。構成を変更した後、リアルタイムでアプリケーション エンドにプッシュできます。また、標準化された権限、プロセス ガバナンスなどの機能を備えており、マイクロサービス構成管理シナリオに適しています。 建てる公式ドキュメントには、ビルドの方法が 2 つ記載されています。1 つはソース コードをダウンロードしてビルドする方法、もう 1 つは Docker または K8S を使用してビルドする方法です。今日ではビルドに Docker を使用していますが、結局のところ、Docker の方が開発者にとって使いやすいのです。 すでに MySQL サービスをお持ちの場合は、既存の MySQL サービスまたはクラウド サービス RDS をデータベースとして使用することをお勧めします。結局のところ、データは貴重です。 バージョン: "3" サービス: apollo-configservice: #Config Service は、構成の読み取りやプッシュなどの機能を提供します。サービス オブジェクトは、Apollo クライアント イメージです: apolloconfig/apollo-configservice:1.8.1 再起動: 常に #コンテナ名: apollo-configservice ボリューム: - ./logs/apollo-configservice:/opt/logs ポート: - 「8080:8080」 環境: - TZ='アジア/上海' -サーバーポート=8080 - EUREKA_INSTANCE_IP_ADDRESS=xxx.xxx.xxx.xxx - EUREKA_INSTANCE_HOME_PAGE_URL=http://xxx.xxx.xxx.xxx:8080 - SPRING_DATASOURCE_URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai -SPRING_DATASOURCE_USERNAME=ルート - SPRING_DATASOURCE_PASSWORD = MysqkPassWord! apollo-adminservice: #Admin Service は設定変更や公開などの機能を提供し、サービスオブジェクトは Apollo Portal (管理インターフェース) です。 イメージ: apolloconfig/apollo-adminservice:1.8.1 再起動: 常に #コンテナ名: apollo-adminservice ボリューム: - ./logs/apollo-adminservice:/opt/logs ポート: - 「8090:8090」 依存: - アポロ構成サービス 環境: - TZ='アジア/上海' -サーバーポート=8090 - EUREKA_INSTANCE_IP_ADDRESS=xxx.xxx.xxx.xxx - SPRING_DATASOURCE_URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai -SPRING_DATASOURCE_USERNAME=ルート - SPRING_DATASOURCE_PASSWORD = MysqkPassWord! apollo-portal: #管理インターフェースイメージ: apolloconfig/apollo-portal:1.8.1 再起動: 常に コンテナ名: アポロポータル ボリューム: - ./logs/アポロポータル:/opt/logs ポート: - 「8070:8070」 依存: - アポロ管理サービス 環境: - TZ='アジア/上海' -サーバーポート=8070 - EUREKA_INSTANCE_IP_ADDRESS=xxx.xxx.xxx.xxx -APOLLO_PORTAL_ENVS=デバイス - DEV_META=http://xxx.xxx.xxx.xxx:8080 - SPRING_DATASOURCE_URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai -SPRING_DATASOURCE_USERNAME=ルート - SPRING_DATASOURCE_PASSWORD = MysqkPassWord! 上記の docker-compose.yaml から、合計 3 つのサービスがあることがわかります。
どのように動作するかを知りたい場合は、公式ドキュメントを確認することをお勧めします。 ログは外部の./logsディレクトリにマウントされます 上記ではMySQLのデプロイが指定されていないことがわかります。コンテナを使用してMySQLをデプロイする必要がある場合は、次のdocker-compose.yamlを参照してください。 バージョン: '3' サービス: mysql: # myslq データベース イメージ: 'mysql/mysql-server' コンテナ名: 'mysql' 再起動: 常に コマンド: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --lower-case-table-names=1 環境: #環境変数 MYSQL_ROOT_HOST: "%" MYSQL_ROOT_PASSWORD: パスワード MYSQL_USER: ブルック MYSQL_PASSWORD: パスワード ポート: - 「3306:3306」 上記のmysql docker-compose.yamlはテスト専用です データベース apolloconfigdb.sql と apolloportaldb.sql を初期化します。 データベースが初期化されたら、apolloconfigdbライブラリのserverconfigテーブルのeureka.service.urlを変更することを忘れないでください。そうしないと、apollo-adminserviceをeurekaに登録できません。 変更後、Apollo docker-compose.yamlディレクトリに切り替えて、
起動ステータスを確認する
http://10.0.0.53:8070/ #Apollo 管理ターミナルにアクセスしてください デフォルトのユーザー名: apollo テストプロジェクトを作成する テスト.NetCoreプロジェクトを作成し、Apollo.netクライアントを追加する アポロを追加 Apollo を設定する 上記の構成 Apolloコードを取得するためのテストコンテンツを追加する プログラムを起動し、/weatherforecast/apollotestをリクエストします アポロで設定された構成が取得されなかったことが判明しました Apolloをチェックして、設定された値が公開されていないことを確認します したがって、Apollo を設定または変更した後は必ず公開するようにしてください。公開後はブラウザを再度更新します。 データがすでに新しいデータであることがわかりました。Apollo の値を再度変更してみましょう。 リフレッシュ アポロは構築され、使用できる状態になっています。 コード例のコードは 注: プログラムの起動後に構成を取得できない場合は、Apollo ログを開くことができます。コンソールで詳細な構成を確認し、Program.cs Main 関数の最初の行に配置できます。
参照する1. https://github.com/apolloconfig/apollo.net これで、分散構成センター Apollo の docker compose ワンクリック デプロイメントに関するこの記事は終了です。docker compose デプロイメント分散構成センター Apollo に関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Vue はウェブページの言語切り替えの国際化を実装します
>>: MySQLはストアドプロシージャを使用して数百万のデータを素早く追加します。サンプルコード
[解決策1: パディングの実装]原理:要素の padding の値がパーセンテージの場合、このパーセ...
序文以前、MySQL 5.6 をインストールしました。3 か月後、開発者から MySQL で JSO...
MySQL交換パーティションの詳細な例序文exchange パーティションを紹介する前に、まず my...
目次背景成し遂げるvue-cli2.0での設定方法の補足要約する背景プロジェクトにはローカル構成ファ...
目次1. 縦方向のスライス1.1 垂直データベース1.2 垂直テーブル分割2. 水平(横断)セグメン...
この記事では、雨滴効果を実現するためのJavaScriptキャンバスの具体的なコードを参考までに紹介...
MySQLにおける静的変数の役割の詳細な説明静的変数の使用 静的変数サンプルコード: 関数テスト()...
このセクションでは、HTML のリスト要素について学習します。リストは、Web サイトのデザインにお...
1. CentOS 7 と CentOS 8 のネットワーク構成の違い: VMware Workst...
初期のコンピューターのほとんどは ASCII 文字しか使用できませんでしたが、その後、主要な西洋のア...
1. コンポーネント First.js にはサブコンポーネントがあります。 './Admin...
目次1. はじめに2. 直接回復2.1 mysqldumpバックアップの完全リカバリ2.2 xtra...
目次問題1: 破壊1. 破壊する方法2. いつ破壊するか2.1 解決策1: route.queryを...
Linuxでタイムゾーンを変更する場合、常に変更することはできませんAsia/Shanghai に変...
コンテナの起動時に Docker コンテナ内のアプリケーション サービスを自動的に起動する場合。 D...