ZooKeeper、Consul、Eurekaなどのコンセンサスタイプのツールを見ていますが、それらはすべて同じソリューションセットを販売しているようです:
- サービス発見
- 動的な集中構成管理
- 同期プリミティブ
- コンセンサスアルゴリズム
しかし、これらのことについて読めば読むほど、サービス ディスカバリが動的な集中構成管理 (KV ペア) システムと実際にどのように異なるのかを理解するのに苦労します。
サービス ディスカバリに関する私の理解(これまでのところ) は、ノードがリモート サービスを動的に検索、検索、および接続できるようにすることです。したがって、アプリケーションがAuthService
認証、認可に を使用する場合、サービス検出を使用してAuthService
ノードを検索し、http://auth103.example.org:9103
それを使用します。
動的構成システムについての私の理解では、ノードが構成サーバーから更新を動的に受信し、更新を公開するための集中型インフラストラクチャを提供するということです。そのため、アプリ インスタンスが他のすべてのインスタンスの構成を更新する必要があると判断した場合、構成サービスにアクセスして、構成などを更新しますnumPurgerThreads
。その後、構成サービスは他のすべてのアプリ インスタンスを更新して、それぞれの構成を適切に更新します。
しかし、これらはまったく同じ問題ではありませんか?
どちらの場合でも、次のことを行います。
- ある種の検索サービスに接続する
- データを照会します。また
- そこにデータを公開し、それを他のノードに波及させます
サービス ディスカバリは動的な構成ですよね!?!
私が実際に推進しているのは、これらのツールの 1 つを使用して 1 つの構成サービスを実装するだけで、偶然にもサービスの検出も解決できないのではないかということです。または、構成/KV 管理用に 1 つの Consul クラスターと、サービス検出用に別の Consul クラスターが必要になる理由はありますか?