第一篇:consul入門とサービス登録と発見


consulとは?Consulは分散型で高可用性のシステムであり、主にマイクロサービスアーキテクチャのサービス発見とサービス登録に用いられる.1)サービス発見:サービスを登録し、サービスを検索するのに使用されます.例えば、商品サービスを登録します.クライアントはゲートウェイ(gateway)を介してサービスを取得し、呼び出し、商品のリストを取得する.2)健康診断:consulは登録されたサービスが利用可能かどうかをタイミングよく検出することができる.もちろん、呼び出しサービスでアクティブに検出することもできます.3)key/valueストレージ:consulは登録したサービスをkey/value構造でデータストレージすることができる.4)マルチデータセンター:複数のデータセンターをサポートする.
consulの使い方起動方法:エージェントで起動します.1)consul agent-dev//開発モード2)consul agent-server-bootstrap-expect 1-data-dir/tmp/consul/-node=ali_1-ui-client 0.0.0.0-bindイントラネットip-joinイントラネットip
パラメータの詳細:-server:ロールはserverで、データを格納します.-bootstrap-expect 1:いくつかのノードを待ってから起動し、1つは自分が1つで起動できることを示します.-data-dir:データストレージディレクトリ.-Node:ノード名.-ui:デフォルトuiインタフェースを起動します.-Client:これは、登録やクエリーなどの一連のクライアントが操作するIPを表します.このIPを指定しない場合、デフォルトは127.0.0.1です.-join:クラスタへの参加を開始-bind:イントラネットipのバインド
serverとclientパラメータはどういう意味ですか?これはconsulのキャラクターです.consulには3種類のキャラクターがいます.
Clientロール:クライアントモードであり、consulノードのモードであり、このモードでは、サービス登録のみを受け付け、情報を保存しません.登録されたサービス情報は、server自体に転送されても永続化されません.
serverロール:consulを表すserverモードで、このconsulがserverであることを示します.このモードではclientと機能が一致します.しかし、情報をローカルに永続化し、serverのリーダー選挙にも参加することができます.
server-leaderロール:このserverがクラスタのleaderであることを示します.他のサーバとは異なり、leaderは登録情報を同期させ、他のサーバに渡し、各ノードの健康診断を担当する必要があります.
consulが対外的に提供するポートは、異なるポートがどのように異なる役割を果たしているかを理解すればいい.tcp/8300 8300ポート.サーバノードに使用され、クライアントはこのポートrpcプロトコルを介してサービス側ノードを呼び出す.サーバノード間で相互に呼び出されます.tcp/udp/8301 8301ポートは、単一のデータセンターのすべてのノード間の相互通信に使用され、クラスタ内のノードのデータ同期に使用され、データセンター全体がサーバアドレスを自動的に発見し、ノード障害を分散的に検出し、イベントブロードキャスト(リーダーシップ選挙など)8500 httpプロトコルアクセス
agentメンバーcurl-X GETの表示http://localhost:8500/v1/agent/members?pretty
サービスの登録方法.httpプロトコルでサービスを登録できます.curl -X PUThttp://localhost:8500/v1/agent/service/register-d"{"ID":"user",//サービスid"Name":"username",//サービス名"Tags":[
"primary",
"v1"

],『Address』:『127.0.0.1』,//サービスのip『Port』:8000,//サービスのポート『EnableTagOverride』:false,『Check』:{//健康診断部分
"DeregisterCriticalServiceAfter": "90m",
"HTTP": "127.0.0.1/rpc/health.php", //       URL,       20X,consul       
"Interval": "10s"   //        ,  10s,       URL

}}}「登録解除サービス:
curl -X PUT http://localhost:8500/v1/agent/service/deregister/user {ID}
サービスの発見方法:nameでcurl-X GETを検索するhttp://127.0.0.1:8500/v1/catalog/service/usernameローカルヘルスサービスcurl-X GETを入手http://127.0.0.1:8500/v1/health/service/usernameクエリサービスリストcurlhttp://127.0.0.1:8500/v1/agent/services?pretty