使用示例

最近更新时间:2018-06-01 10:15:08

为了帮助您快速使用负载均衡 API,这里给出一个使用示例。使用 API 之前请先在两台云服务器上部署 TCP 服务,并监听 80 端口,服务返回字符串 "hello world"。通过创建负载均衡实例,使得通过负载均衡的 VIP 来访问云服务器的服务。

购买公网属性的负载均衡实例

在使用负载均衡服务之前,我们首先购买一个公网固定 IP 型的负载均衡实例,有关购买负载均衡实例的详细信息请参考 购买负载均衡实例 页面。

这里我们创建了一个公网固定 IP 型的负载均衡实例,其公共请求参数的 Action 字段为 CreateLoadBalancer,接口请求参数如下表:

参数名称 描述 取值
loadBalancerType 负载均衡实例的类型 2:由于通过外网访问,所以创建公网类型的负载均衡实例。

结合公共请求参数和接口请求参数,最终得到的请求形式如下:

https://lb.api.qcloud.com/v2/index.php?Action=CreateLoadBalancer
&Region=ap-guangzhou
&Timestamp=1465750149
&Nonce=46364
&SecretId=AKIDxxxxugEY
&Signature=5umi9gUWpTTyk18V2g%2FYi56hqls%3D
&loadBalancerType=2

上述请求的返回结果如下:

{
    "code": 0,
    "message": "",
    "codeDesc": "Success",
    "requestId": 3901941,
    "dealIds": [
        "3901941"
    ],
    "unLoadBalancerIds": {
        "3901941": [
            "lb-cjcymkw5",
        ]
    }
}

其中 lb-cjcymkw5 为刚刚购买的负载均衡实例的唯一 ID。根据 查询负载均衡实例列表 接口来查询该负载均衡实例是否创建成功,成功后进行第二步。

创建负载均衡监听器

有了负载均衡实例的唯一 ID,我们就可以创建负载均衡监听器了,有关创建负载均衡监听器的详细信息请参考 创建负载均衡监听器 页面。

该示例中创建负载均衡监听器的接口请求参数如下表。

参数名称 描述 取值
loadBalancerId 负载均衡实例唯一 ID。 取刚刚创建的负载均衡实例的唯一 ID:lb-cjcymkw5
listeners.0.loadBalancerPort 负载均衡监听器的监听端口。 80
listeners.0.instancePort 负载均衡监听器后端云服务器监听端口。 80
listeners.0.protocol 负载均衡监听器监听的协议, 1:HTTP,2:TCP,3:UDP,4:HTTPS 。 本例中取值 2,监听 TCP 协议。
listeners.0.healthSwitch 负载均衡监听器的健康检查,1:开启,0:关闭。默认为开启。 本例中取值 1,开启健康检查。
listeners.0.listenerName 负载均衡监听器的名字,该字段为可选字段,如果不填写则采用默认值。 本例中取值 listenerTest

结合公共请求参数和接口请求参数,最终得到的请求形式如下:

https://lb.api.qcloud.com/v2/index.php?Action=CreateLoadBalancerListeners
&Region=ap-guangzhou
&Timestamp=1465750149
&Nonce=46364
&SecretId=AKIDxxxxugEY
&Signature=5umi9gUWpTTyk18V2g%2FYi56hqls%3D
&loadBalancerId=lb-cjcymkw5
&listeners.0.loadBalancerPort=80
&listeners.0.instancePort=80
&listeners.0.protocol=2
&listeners.0.healthSwitch=1
&listeners.0.listenerName=listenerTest

上述请求的返回结果如下:

{
  "code" : 0,
  "message" : "",
  "codeDesc": "Success",
  "requestId" : 12354
}

可以根据 查询负载均衡任务状态 异步接口查询 API 来查看该 request ID 对应的任务是否成功。

绑定后端云服务器到负载均衡实例上

创建完监听器后再将云服务器绑定到负载均衡实例上,具体绑定后端云服务器到负载均衡信息见 绑定后端服务器到负载均衡 页面。

这里我们将两台云服务器绑定到上面创建的负载均衡实例上,其中两台云服务器的唯一 ID 分别为:ins-5678test;ins-1234test。公共请求参数的 Action 字段为 RegisterInstancesWithLoadBalancer,接口请求参数如下表。

参数名称 描述 取值
loadBalancerId 负载均衡实例唯一 ID 取刚刚创建的负载均衡实例的唯一 ID:lb-abcdefgh
backends.0.instanceId 绑定到负载均衡实例上的云服务器的唯一 ID 本例中取第一台云服务器唯一 ID:ins-5678test
backends.0.weight 绑定到负载均衡实例上的云服务器的权重 本例中取默认值 10
backends.1.instanceId 绑定到负载均衡实例上的云服务器的唯一 ID 本例中取第二台云服务器唯一 ID:ins-1234test
backends.1.weight 绑定到负载均衡实例上的云服务器的权重 本例中取默认值 10

结合公共请求参数和接口请求参数,最终的请求形式如下:

https://lb.api.qcloud.com/v2/index.php?Action=RegisterInstancesWithLoadBalancer
&Region=ap-guangzhou
&Timestamp=1465750149
&Nonce=46364
&SecretId=AKIDxxxxugEY
&Signature=5umi9gUWpTTyk18V2g%2FYi56hqls%3D
&loadBalancerId=lb-cjcymkw5
&backends.0.instanceId=ins-5678test
&backends.0.weight=10
&backends.1.instanceId=ins-1234test
&backends.1.weight=10

上述请求的返回结果如下:

{
  "code" : 0,
  "message" : "",
  "codeDesc": "Success",
  "requestId" : 1234
}

可以根据 查询负载均衡任务状态 异步接口查询 API 来查看该 request ID 对应的任务是否成功。

查询负载均衡实例并使用

最后查询一下该负载均衡实例的 VIP 或者域名,具体的查询负载均衡实例列表的接口详见接口 查询负载均衡实例列表

公共请求参数的 Action 字段为 DescribeLoadBalancers,接口请求参数如下表。

参数名称 描述 取值
loadBalancerIds.0 负载均衡实例唯一 ID 本例中取刚刚创建的负载均衡实例的唯一 ID:lb-cjcymkw5

结合公共请求参数和接口请求参数,最终的请求形式如下:

https://lb.api.qcloud.com/v2/index.php?Action=DescribeLoadBalancers
&Region=ap-guangzhou
&Timestamp=1465750149
&Nonce=46364
&SecretId=AKIDxxxxugEY
&Signature=5umi9gUWpTTyk18V2g%2FYi56hqls%3D
&loadBalancerIds.0=lb-cjcymkw5

返回


{
    "code": 0,
    "message": "",
    "codeDesc": "Success",
    "loadBalancerSet": [
        {
            "loadBalancerId": "lb-cjcymkw5",
            "unLoadBalancerId": "lb-cjcymkw5",
            "loadBalancerName": "59b25ffb-0",
            "loadBalancerType": 2,
            "domain": "20de02-0.gz.1251000011.clb.myqcloud.com",
            "loadBalancerVips": [
                "119.28.168.196"
            ],
            "status": 1,
            "createTime": "2017-09-08 17:16:42",
            "statusTime": "2017-09-20 13:37:55",
            "vpcId": 0,
            "uniqVpcId": "",
            "subnetId": 0,
            "projectId": 1005621,
            "forward": 0,
            "snat": false,
            "openBgp": 0,
            "isolation": 0,
            "log": ""
        },
    ],
    "totalCount": 1
}

根据查询结果,可以利用负载均衡实例的 VIP : 119.28.168.196 或者域名20de02-0.gz.1251000011.clb.myqcloud.com 来将请求根据负载均衡监听器的规则转发到后端绑定的云服务器上,实现了负载均衡服务。