【Consl】Consl実践指導-サービス登録(Service)

3538 ワード

サービス発見はconsulのもう一つの主要な機能です.Consl Agentは、簡単なService定義様式を提供し、申告サービスの利用可能性を提供し、健康診断に関連しています.健康診断とサービスが関連していれば、サービスはアプリケーション級とみなされます.サービスは、設定ファイルに登録されたり、実行中にHTTPインターフェースで追加されたりすることができます. 
1.1.1 Service Definition
        スクリプトサービスの定義例は以下の通りです.
{
  "service": {
    "name": "redis",
    "tags": ["master"],
    "address": "127.0.0.1",
    "port": 8000,
    "enableTagOverride": false,
    "checks": [
      {
        "script": "/usr/local/bin/check_redis.py",
        "interval": "10s"
      }
    ]
  }
}
        定義サービスはnameフィールドを含む必要があります.他のフィールドid、tags、address、port、check、enableTagOverrideはオプションフィールドです.IDフィールドが定義されていない場合、nameとして値が割り当てられます.現在のノードでは、サービスIDは一意である必要があり、nameは重複可能であり、idは構成されなければならない.
        Tagsフィールドは、構成の読み取り可能性を高めるものであり、consulは使用しない.現在のノードがmasterか、またはslavieか、およびバージョンなどの情報を説明することができる.
        Addressフィールドは、所与のサービスのIPを指定することができる.デフォルトでは、通常はagentのIPを使用していますが、必要ではありません.ポートポートポートポートポートを使用することは、サービスに向けたアーキテクチャをより容易に構成することができる.
        サービスは健康診断と関連しており、失敗ノードとデータベースを置き換えることができる.健康診断はよくDNSインターフェースを統合しています.サービス健康診断が失敗した場合、またはノードがシステムレベルの検査に失敗した場合.DNSインターフェースは、サービスキューからノードを削除する.
        Checkは、Script、HTTP、TCP、TTLの4種類のうちの1つでなければならない.ScriptタイプはScriptスクリプトとinterval変数を提供する必要があります.HTTPタイプはhttpとIntervalフィールドを提供しなければなりません.TCPタイプはtcpとIntervalフィールドを提供する必要があり、TTLタイプ秩序はttlを提供する.Checkのnameフィールドは、service:<service-id>を介して自動的に生成され、複数のserviceがある場合、service:<service-id>:<num>によって生成される.
(詳細はcheck構成を参照-http://blog.csdn.net/younger_china/article/details/52243759) 
        Service構成は、再負荷可能であり、2つの方法、1.SIGHUPを送信する. Agentに信号を送る2.HTTP APIによる動的な構成.
 
1.1.2 Multile Service Definitions
        servicesフィールドを使用すると、次のような例があります.
{
  "services": [
    {
      "id": "red0",
      "name": "redis",
      "tags": [
        "master"
      ],
      "address": "127.0.0.1",
      "port": 6000,
      "checks": [
        {
          "script": "/bin/check_redis-p 6000",
          "interval": "5s",
          "ttl": "20s"
        }
      ]
    },
    {
      "id": "red1",
      "name": "redis",
      "tags": [
        "delayed",
        "slave"
      ],
      "address": "127.0.0.1",
      "port": 7000,
      "checks": [
        {
          "script": "/bin/check_redis-p 7000",
          "interval": "30s",
          "ttl": "60s"
        }
      ]
    },
    ...
  ]
}
 
1.1.3 Service and Tag Names with DNS
        Conse exposes service definitions and tags over the DNS interface.DNS queries have a strict set of allowed characters and a well-defined format that Cons cannel override.While it is possible toker services or tags with names that don'match the convensthoseservices and tags will not be discoverable via the DNS interface.It isrecommand to always use DNS-comprant service and.
DNS-companiant service and(names may contain any alpha-numericcharacters)、as well as dashes.Dotare not supported because Conse internallyuses them to delimit service tags.