Consul-introduction
領事-はじめに
Consulは、インフラストラクチャ内のさまざまなサービスを検出および構成するためのHashicorpベースのツールです。 Golangに基づいて構築されています。 Consulを構築する主な理由の1つは、分散システムに存在するサービスを維持することでした。 Consulが提供する重要な機能のいくつかは次のとおりです。
- サービスの検出-DNSまたはHTTPを使用して、アプリケーションは依存するサービスを簡単に見つけることができます。
- Health Check Status -任意の数のヘルスチェックを提供できます。 異常なホストからトラフィックをルーティングするために、サービス検出コンポーネントによって使用されます。
- キー/値ストア-Consulの階層キー/値ストアを、動的構成、機能フラグ設定、調整、リーダー選出など、さまざまな目的に使用できます。
- 複数のデータセンターの展開-Consulは複数のデータセンターをサポートしています。 複数の地域に成長するための抽象化の追加レイヤーを構築するために使用されます。
- Web UI -Consulは、Consulのすべての機能を簡単に使用および管理できる、美しいWebインターフェイスをユーザーに提供します。
サービス発見
サービス検出は、Consulの最も重要な機能の1つです。 これは、サービスの検出に使用されるさまざまなサービスとネットワークプロトコルの検出として定義されます。 サービス検出の使用は、分散システムの恩恵としてもたらされます。 これは主要な問題の1つであり、環境内の分散システムの進歩により今日の大規模産業が直面しています。
EtcdおよびZookeeperとの比較
このドメインの他のサービス検出ツールを見ると、2つの一般的なオプションがあります。 ソフトウェア業界のいくつかの主要なプレーヤーは過去にそれを使用しています。 これらのツールは Etcd および Zookeeper です。
各ツールのさまざまな側面を比較するために、次の表を検討してみましょう。 また、それぞれが内部的に使用するものも理解します。
Properties | Consul | Etcd | Zoo Keeper |
---|---|---|---|
User Interface | Available | image | image |
RPC | Available | Available | image |
Health Check | HTTP API | HTTP API | TCP |
Key Value | 3 Consistency modes | Good Consistency | Strong Consistency |
Token System | Available | image | image |
Language | Golang | Golang | Java |
領事-メンバーとエージェント
Consulメンバーは、Consulクラスターのデプロイに使用されるさまざまなエージェントとサーバーモードのリストとして定義できます。 Consulは、consulに関連付けられているすべてのエージェントを簡単に一覧表示できるコマンドライン機能を提供します。
Consulエージェントは、Consulのコアプロセスです。 エージェントは、メンバーシップ情報の維持、サービスの登録、チェックの実行、クエリへの応答などを行います。 すべてのエージェントは、 Client または Server の2つのモードのいずれかで実行できます。 これらの2つのモードは、consulの使用時に決定された役割に従って使用できます。 領事代理人は、下記の情報を提供してくれます。
- ノード名-これはマシンのホスト名です。
- データセンター-エージェントが実行するように構成されているデータセンター。 各ノードは、そのデータセンターにレポートするように構成する必要があります。
- サーバー-エージェントがサーバーモードまたはクライアントモードで実行されているかどうかを示します。 サーバーノードはコンセンサスクォーラムに参加し、クラスターの状態を保存し、クエリを処理します。
- クライアントアドレス-エージェントがクライアントインターフェースに使用するアドレスです。 HTTP、DNS、およびRPCインターフェイスのポートが含まれます。
- Cluster Addr -クラスタ内のConsul Agent間の通信に使用されるアドレスとポートのセットです。 このアドレスは、他のすべてのノードから到達可能でなければなりません。
次の章では、Consulのアーキテクチャについて理解します。