技術的なテーブル
飼育係 | Etcd | 領事 | ユーレカ | |
---|---|---|---|---|
CAPモデル | CP | CP | CP | の |
データの整合性アルゴリズム | BAR | ラフト | ラフト | ❌ |
マルチデータセンター | ❌ | ❌ | ✅ | ❌ |
多言語サポート | クライアント | HTTP / gRPC | HTTP / DNS | Http |
時計 | TCP | ロングポーリング | ロングポーリング | ロングポーリング |
KVストレージ | ✅ | ✅ | ✅ | ❌ |
ヘルスチェックサービス | ハートビート | ハートビート | サービスの状態、 メモリ、ハードドライブなど |
カスタム |
自己監視 | ❌ | メトリック | メトリック | メトリック |
SpringCloudサポート | ✅ | ✅ | ✅ | ✅ |
独自の開発言語 | ジャワ | ゴー | ゴー | ジャワ |
CAPモデル
これらの3つの文字が放置CAP:
- 一貫性(一貫性)
- アベイラビリティ(可用性)
- 分割耐性(パーティションフォールトトレランス)
分散システムでは、この第三者は、両方を持つことはできません。
ネットワークに起因は、分散システムPは、唯一のAP又はCPを選択する手段が不可欠です。
CPは、データの整合性が最初のものである、可用性のAP担当者が最初のもので表します。
彼らは唯一の4ユーレカは、ユーレカも限りデータが最終的に合意されたように、データの不整合に使用することができますAPです。
あなたはCAPについての詳細をお知りになりたい場合に見つけることができます:
データの一貫性
ZABアトミックブロードキャストプロトコルは、変化に基づいてPaxosアルゴリズム飼育係です。
ラフトはより広く、高可用性分散プロトコルを分散化、工学強い整合性に使用されます。
どちらのアルゴリズムは、間違っていたコンセンサスを達成することができ、分散が、異なる実装。
ユーレカAPが選択され、強い一貫性を必要としない、アルゴリズムを使用してもデータの一貫性はありません。
パクシとラフトリファレンス:
マルチデータセンター
それはより多くの部屋、唯一の領事のサポートです。
飼育係は、ネットワーク部門が利用できない、その後、発生したらあなたは、飼育係を設定する複数の部屋全体に展開する場合に、複数のデータセンターの手段をサポートしていません。
領事は、ゴシッププロトコルです。
ゴシッププロトコルメッセージは、質量10にネットワークの急速な普及の何百もの指数関数的に合格します。
異常なネットワーク・ノードは、高度に分散システムのフォールトトレランスを任意のゴシップスプレッドに影響を与えません。
ゴシッププロトコルは、すべてのピア・ノードに分散化され、ネットワーク・ノードであれば、ネットワークが接続されているように、任意のノードが、ネットワーク全体にメッセージを広げることができ、全体の状況を知りません。
時計
飼育係の時計は、実装が容易で、TCP Pingがあります。
ロングポーリング(ロングポーリング)は、クライアントの要求間隔がいったんデータを引っ張って、プルモードです。
クライアントによって開始ロングポーリングは、データがない場合、サーバーは、サーバーのデータまで待つか、または再度、クライアントを開始ロングポーリングを返した後、タイムアウトを待ちます。
多言語サポート
飼育係の多言語のクライアントは、より成熟しています。
あなたが見る初めて理解できない可能性がある場合領事は、DNSはもっと面白いですサポートしています。
DNSのアプローチは、アプリケーションの高領事と統合任意のを必要とせずにサービス探索を使用することができます。
たとえば、領事のHTTPのリクエストを送信する必要は、DNSサーバのルックアップは、名前によって直接使用することはできませんredis.service.us-east-1.consul
見つける位置に再ルーティングされるus-east-1
データセンターのredis
ノードとサービスを。
あなたのプログラムでのDNSリゾルバライブラリを統合するためにDNSの方法を使用して、あなたはまた、ローカルのDNSサーバーをカスタマイズすることができます。
カスタムローカルDNSサーバーはを参照.consul
領事エージェントに要求を転送するドメイン全体。
ヘルスチェックサービス
ハートビートの比較的簡単な方法は、クライアントが自分自身の生存状況を報告することができます。
しかし、生存率は、このようなアプリケーションサービス層としての平均の健康は、全く問題ありませんが、データベース接続が失敗し、それは健全な生きていないが、通常のサービスを、提供することはできません。
ユーレカサポートカスタムヘルスチェックロジック。
領事のサポートは、だけでなく、管理インターフェイスを改善するとして、あなたはすべての医療サービスとチェックノードのステータスを表示することができ、カスタムサービスのインターフェイスアドレスのヘルスチェックを設定することができ、非常に包括的です。
推奨読書: