ホームページ  >  記事  >  Java  >  分散システムでパラメータ設定を処理するための 4 つの方法の紹介

分散システムでパラメータ設定を処理するための 4 つの方法の紹介

不言
不言転載
2018-10-22 14:37:052297ブラウズ

この記事では、分散システムにおけるパラメータ設定の 4 つの方法を紹介します。必要な方は参考にしていただければ幸いです。

システムにはさまざまな構成情報が含まれています。たとえば、ログ ファイルには次の情報を構成する必要があります。

  • #ログ ファイル生成用のメイン ディレクトリ

  • ログ ファイル名、異なるログ レベルは異なるファイルに対応します

  • 現在のログ レベル

他にもさまざまなビジネス パラメータ、システム パラメータなどがあります。ほとんどの単一システムは、テスト用に展開するときに、これらの設定を設定ファイルに直接書き込みます。実稼働環境では、構成ファイルを変更します。これは間違いを犯しやすいため、柔軟に変更できません。また、システムが分散システムになると、サブシステムの数が増え、これらの構成を維持することがますます困難になります。

あなたが優れているとみなされるには、少なくとも次の問題を解決できなければならないと思います。

1) オンラインで構成を柔軟に変更する機能

2) オンラインで構成を動的に更新する機能

3) さまざまな環境に応じて構成を構成する機能

4) 構成を一元的に管理、保守できる

では、これらの構成を柔軟に保守するにはどうすればよいでしょうか?いくつかの方法をまとめましたので、さまざまな応用分野に応じて参照してください。

1. データベース方法

すべてのパラメータをデータベースに保存し、システムの起動時にメモリにロードします。

この実装方法は比較的単純ですが、データベース リソースが必要です。システムが単純で負荷が低い場合に使用できます。

2. パッケージング処理方法

Maven の

maven-resources-plugin プラグインを使用し、環境に応じて設定ファイルを提供します (プロファイル)。そのため、さまざまな環境の構成情報はパッケージ化段階で決定されます。

これは、異なるオペレーティング システムでの構成の問題を解決するだけであり、各更新では構成ファイルをオンラインで再パッケージ化または変更することしかできず、情報の同期も困難です。プロジェクトの数は少ないですが、プロジェクトの数が多いと、頻繁に設定を変更する必要があり、非常に面倒になります。

3. 環境変数の方法

プロパティ値を環境変数に設定し、それを読み取って Java システム プロパティに設定できます。これにより、異なる環境を区別するという目的は達成できますが、それでも構成を動的に更新することはできず、環境変数の構成と維持は非常に面倒であり、分散システムでは非常に厄介な問題です。

// 读取环境变量
java.lang.System#getenv(java.lang.String)

// 设置系统属性
java.lang.System#setProperty
この方法では、ログ、キャッシュ、一時ディレクトリなどの一部のグローバル システム構成を参照できます。主流のログ システムは、システム プロパティからの構成の読み取りをサポートしています。他の一部の構成は、環境変数に保存することが推奨されません。

4. 構成センターの方法

1) 現在、ほとんどの分散構成センターは Zookeeper に基づいて実装されており、すべてオンラインの動的更新と更新構成をサポートする独自の構成センター コンポーネントを備えています。

2) 構成をデータベースに直接保存します。システムの同時実行性が低い場合、または管理システムの場合は、それを参照できますが、同時実行性の高いアプリケーションではデータベースを使用することはお勧めできません。結局のところ、構成センターへのアクセスが圧迫され、構成の動的更新もより複雑になります。

概要

これらは現在適用している 4 つの構成方法です。明らかに、構成センターが最適なソリューションであり、上記の問題も解決しますが、ミドルウェアとその高可用性を利用する必要があります。 。

以上が分散システムでパラメータ設定を処理するための 4 つの方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

関連記事

続きを見る