微服务引擎 CSE-注册发现:操作步骤

时间:2023-11-01 16:20:04

操作步骤

  1. 注册微服务my-provider。

    调用创建微服务静态信息接口,请求示例如下。

    curl -k -H "x-domain-name:default" -XPOST "https://{cse_endpoint}/v4/default/registry/microservices" -d '{    "service": {        "serviceName": "my-provider",        "appId": "default",        "version": "1.0.0",        "description": "test",        "level": "MIDDLE",        "status": "UP"    }}'

    返回结果:

    {"serviceId":"918282e8562dc5fdc9a8dcd4d1baabb492190aa4"}

    得到的serviceId,后续示例中以{providerServiceId}代替。

  2. 注册微服务my-provider的实例。

    调用注册微服务实例接口。实例有效期1小时,到期自动下线。假设provider实例监听的地址为127.0.0.1:8080,请求示例如下。

    curl -k -H "x-domain-name:default" -XPOST "https://{cse_endpoint}/v4/default/registry/microservices/{providerServiceId}/instances" -d '{    "instance": {        "hostName": "test",        "endpoints": [            "rest:127.0.0.1:8080"        ],        "status": "UP",        "healthCheck": {            "mode": "push",            "interval": 900,            "times": 3        }    }}'

    返回结果:

    {"instanceId":"2be605a095ed11eabcbe0255ac100fa3"}

  3. 注册微服务my-consumer。

    调用创建微服务静态信息接口,请求示例如下。

    curl -k -H "x-domain-name:default" -XPOST "https://{cse_endpoint}/v4/default/registry/microservices" -d '{    "service": {        "serviceName": "my-consumer",        "appId": "default",        "version": "1.0.0",        "description": "test",        "level": "MIDDLE",        "status": "UP"    }}'

    返回结果:

    {"serviceId":"9db248934c31fc754d6e922b48ede4a5c004d3c1"}

    得到的serviceId,后续示例中以{consumerServiceId}代替。

  4. my-consumer发现my-provider的实例。

    调用按条件查询微服务实例接口,consumer带着自身的serviceId去服务中心查询provider的实例信息,请求示例如下。

    curl -k -H "x-domain-name:default" -H "X-ConsumerId:{consumerServiceId}" -XGET "https://{cse_endpoint}/v4/default/registry/instances?appId=default&serviceName=my-provider&version=0.0.0%2B"

    返回结果:

    {    "instances": [        {            "instanceId": "2be605a095ed11eabcbe0255ac100fa3",             "serviceId": "918282e8562dc5fdc9a8dcd4d1baabb492190aa4",             "endpoints": [                "rest:127.0.0.1:8080"            ],             "hostName": "test",             "status": "UP",             "healthCheck": {                "mode": "push",                 "interval": 150,                 "times": 3            },             "timestamp": "1589465646",             "modTimestamp": "1589465646",             "version": "1.0.0"        }    ]} 

    在实际业务中,consumer可从实例查询结果中的"endpoint"字段获取provider实例的地址,发起业务调用。

    您还可以进入微服务引擎控制台的“微服务目录”,查看服务注册信息。

support.huaweicloud.com/api-cse/api_0012.html