インターネットプロジェクトの開発においては、さまざまなサービスとやり取りすることが必要であり、ユーザーはサーバーからデータを取得します。特にeコマースや決済システムにおいて、サービスインターフェースの高可用性は重要です。高可用性はシステムの堅牢性も測定します。 クラスターの場合、多くのサービスも維持が困難です。
領事レビュー
ConsulはHashiCorpが発売したGo言語で開発されたオープンソースツールで、分散システムのサービス発見と設定を実現するために使用されます。組み込みのサービス登録・発見フレームワーク、分散整合性プロトコルの実装、健康チェック、キー/値保存、マルチデータセンターソリューションなどが搭載されており、比較的使いやすいです。
領事サービス発見
Consul Service Discoveryの使い方:
- 各コンピュータでクライアントモードでConsulエージェントを稼働させ、これは最新の登録情報をConsulクラスタと効率的に交換することだけを担当します(リーダー選挙には参加しません)。
- 各コンピュータのサービスサービスは、サービス名とURLをローカルのコンスルエージェントに登録します
- Computer1上で展開されたプログラムがServiceBを呼び出す必要がある場合、ServiceAはサービス名を通じてローカルのConsulエージェントから直接ServiceBのアクセスアドレスを取得し、その後直接ServiceBのURLにリクエストを送ります。
コードは以下の通りです:
スタートアップクラスでは、以下の通りに電話をかけてください:
健康診断
健康チェックインターフェースは200ステータスコードをコンスルに返すだけでよく、そのコードは以下の通りです:
プロジェクトを始めて、サービスに登録しましょう
管制官は以下のようにテスト方法を定義できます。
プロジェクトのbinディレクトリに行き、コマンドラインから起動してみましょう。コードは以下の通りです:
ブラウザからリンクをご覧ください:
http://127.0.0.1:8500/ui/dc1/services/test.itsvse
http://127.0.0.1:8500/v1/catalog/service/test.itsvse
jsonデータは以下の通りです:
[ { 「ID」:「bb644359-6b2a-a27e-7a0a-a1950b8e515f」 「ノード」:「DESKTOP-EB7B69D」 「アドレス」:「127.0.0.1」 「データセンター」:「dc1」 「タグ付きアドレス」: { "lan": "127.0.0.1", "wan": "127.0.0.1" }, 「ノードメタ」:{ 「コンスル・ネットワーク・セグメント」:「」 }, 「ServiceKind」: "", 「ServiceID」: 「507338bf-a5a6-4013-9675-c43a40a2c1a0」 「ServiceName」: "test.itsvse", 「ServiceTags」: [ 「テスト」、 「ITSVSE」 ], 「ServiceAddress」: "127.0.0.1", 「ServiceWeights」: { 「合格」:1、 「警告」:1 }, 「ServiceMeta」: {}, 「ServicePort」:8083、 「ServiceEnableTagOverride」: false, 「ServiceProxy」: { 「MeshGateway」: {}, 「エクスポーズ」: {} }, 「ServiceConnect」: {}, 「CreateIndex」:1317、 「ModifyIndex」:1317 }, { 「ID」:「bb644359-6b2a-a27e-7a0a-a1950b8e515f」 「ノード」:「DESKTOP-EB7B69D」 「アドレス」:「127.0.0.1」 「データセンター」:「dc1」 「タグ付きアドレス」: { "lan": "127.0.0.1", "wan": "127.0.0.1" }, 「ノードメタ」:{ 「コンスル・ネットワーク・セグメント」:「」 }, 「ServiceKind」: "", 「ServiceID」:「bb21f150-7219-4eda-bc91-54686a750228」 「ServiceName」: "test.itsvse", 「ServiceTags」: [ 「テスト」、 「ITSVSE」 ], 「ServiceAddress」: "127.0.0.1", 「ServiceWeights」: { 「合格」:1、 「警告」:1 }, 「ServiceMeta」: {}, 「ServicePort」:8082、 「ServiceEnableTagOverride」: false, 「ServiceProxy」: { 「MeshGateway」: {}, 「エクスポーズ」: {} }, 「ServiceConnect」: {}, 「CreateIndex」:1314、 「ModifyIndex」:1314 }
]
領事サービスコール
以下のコードで新しい.NET Coreコンソールプロジェクトを作成しましょう:
登録済みのtest.itsvseサービスにランダムに電話をかけたところ、結果は以下の通りです。
最後に、ソースコードのダウンロードです:
観光客の皆さん、この投稿の隠された内容を見たい方は、どうぞ 答える |