(3) Consul 主要端口和API

一、API

  1. 註冊服務

    curl http://10.40.66.144:8500/v1/agent/service/register -X PUT -i -H "Content-Type:application/json" -d '{"ID": "userServiceId", "Name": "userService","Tags": ["primary", "v1"],"Address": "127.0.0.1","Port": 8000,"EnableTagOverride": false,"Check": {"DeregisterCriticalServiceAfter": "90m","HTTP": "http://www.baidu.com","Interval": "10s"}}'  

    返回:
    HTTP/1.1 200 OK
    Vary: Accept-Encoding
    Date: Tue, 18 Sep 2018 08:07:06 GMT
    Content-Length: 0 

    註釋:
    {
    "ID": "userServiceId",                                        //服務id
    "Name": "userService",                                    //服務名
    "Tags": [                                                           //服務的tag,自定義,可以根據這個tag來區分同一個服務名的服務
    "primary",
    "v1"
    ],
    "Address": "10.40.66.144",                               //服務註冊到consul的IP,服務發現,發現的就是這個IP
    "Port": 8080,                                                    //服務註冊consul的PORT,發現的就是這個PORT
    "EnableTagOverride": false,
    "Check": {                                                        //健康檢查部分
    "DeregisterCriticalServiceAfter": "90m",
    "HTTP": "http://10.40.66.144:8080/example/info",                 //指定健康檢查的URL,調用後只要返回20X,consul都認爲是健康的
    "Interval": "10s"                                                                      //健康檢查間隔時間,每隔10s,調用一次上面的URL
    }
    }
     

  2. 刪除實例(只刪除指定節點的服務實例)

    1)通過IP指定節點

    curl -X PUT -i -H "Content-Type:application/json" http://10.40.66.146:8500/v1/agent/service/deregister/example-4b40d694c240d518156c3b328c12b057

    2)通過名稱指定節點

    http://10.40.66.145:8500/v1/catalog/deregister
    PUT
    requestbody:
    {
    "ServiceID":"myExampleId1",
    "Node":"consul-s-3",                      //必填
    "Datacenter": "dc1"
    }

  3. 服務發現-根據服務名查找對應實例

    curl -X GET http://10.40.66.144/v1/catalog/service/example
    [{},{}]

  4. 服務發現-根據服務名獲取健康可用(即健康檢查全部通過passing)的服務實例列表

    curl -X GET -i -H "Content-Type:application/json" http://10.40.66.144/v1/health/service/example?passing=true        //passing等於false返回全部,默認false
  5. 其它

    1)查詢節點node列表

    curl -X GET http://10.40.66.144/v1/catalog/nodes

    2)查詢服務列表

     curl -X GET http://10.40.66.144/v1/catalog/services

    3)其它(參照 http://www.liangxiansen.cn/2017/04/06/consul/#catalog,官網 https://www.consul.io/api/index.html

    /v1/agent/checks : 返回本地agent註冊的所有檢查(包括配置文件和HTTP接口)
    /v1/agent/services : 返回本地agent註冊的所有 服務
    /v1/agent/members : 返回agent在集羣的gossip pool中看到的成員
    /v1/agent/self : 返回本地agent的配置和成員信息
    /v1/agent/join/<address> : 觸發本地agent加入node
    /v1/agent/force-leave/<node>>: 強制刪除node
    /v1/agent/check/register : 在本地agent增加一個檢查項,使用PUT方法傳輸一個json格式的數據
    /v1/agent/check/deregister/<checkID> : 註銷一個本地agent的檢查項
    /v1/agent/check/pass/<checkID> : 設置一個本地檢查項的狀態爲passing
    /v1/agent/check/warn/<checkID> : 設置一個本地檢查項的狀態爲warning
    /v1/agent/check/fail/<checkID> : 設置一個本地檢查項的狀態爲critical
    /v1/agent/service/register : 在本地agent增加一個新的服務項,使用PUT方法傳輸一個json格式的數據
    PUT /v1/agent/service/deregister/<serviceID> : 註銷一個本地agent的服務項

     

    /v1/catalog/register : Registers a new node, service, or check
    /v1/catalog/deregister : Deregisters a node, service, or check
    /v1/catalog/datacenters : Lists known datacenters
    /v1/catalog/nodes : Lists nodes in a given DC
    /v1/catalog/services : Lists services in a given DC
    /v1/catalog/service/<service> : Lists the nodes in a given service
    /v1/catalog/node/<node> : Lists the services provided by a node

    /v1/healt/node/<node>: 返回node所定義的檢查,可用參數?dc=
    /v1/health/checks/<service>: 返回和服務相關聯的檢查,可用參數?dc=
    /v1/health/service/<service>: 返回給定datacenter中給定node中service
    /v1/health/state/<state>: 返回給定datacenter中指定狀態的服務,state可以是"any", "unknown", "passing", "warning", or "critical",可用參數?dc=

二、各端口及其功能

端口號 協議 功能
8300 TCP agent server 使用的,用於處理其他agent發來的請求
8301 TCP 、UDP agent使用此端口處理LAN中的gossip
8302 TCP 、UDP agent server使用此端口處理WAN中的與其他server的gossip
8400 TCP agent用於處理從CLI來的RPC請求
8500 TCP agent用於處理HTTP API
8600 TCP 、UDP agent用於處理 DNS 查詢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章