为了帮助您快速使用负载均衡 API,这里给出一个使用示例。使用 API 之前请先在两台云服务器上部署 TCP 服务,并监听80端口,服务返回字符串 "hello world"。通过创建负载均衡实例,使得通过负载均衡的 VIP 来访问云服务器的服务。
购买公网属性的负载均衡实例
这里我们创建了一个公网固定 IP 型的负载均衡实例,其公共请求参数的 Action 字段为 CreateLoadBalancer,接口请求参数如下表:
参数名称 | 描述 | 取值 |
loadBalancerType | 负载均衡实例的类型 | 2:由于通过外网访问,所以创建公网类型的负载均衡实例。 |
结合公共请求参数和接口请求参数,最终得到的请求形式如下:
https://lb.api.qcloud.com/v2/index.php?Action=CreateLoadBalancer&Region=ap-guangzhou&Timestamp=1465750149&Nonce=46364&SecretId=************&Signature=5umi****pTTyk18V2g%2FYi56hqls%3D&loadBalancerType=2
上述请求的返回结果如下:
{"code": 0,"message": "","codeDesc": "Success","requestId": 3901941,"dealIds": ["3901941"],"unLoadBalancerIds": {"3901941": ["lb-cjcy****"]}}
创建负载均衡监听器
该示例中创建负载均衡监听器的接口请求参数如下表。
参数名称 | 描述 | 取值 |
loadBalancerId | 负载均衡实例唯一 ID。 | 取刚刚创建的负载均衡实例的唯一 ID: lb-cjcy**** |
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=************&Signature=5umi****pTTyk18V2g%2FYi56hqls%3D&loadBalancerId=lb-cjcy****&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}
绑定后端云服务器到负载均衡实例上
这里我们将两台云服务器绑定到上面创建的负载均衡实例上,其中两台云服务器的唯一 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=************&Signature=5umi****pTTyk18V2g%2FYi56hqls%3D&loadBalancerId=lb-cjcy****&backends.0.instanceId=ins-5678****&backends.0.weight=10&backends.1.instanceId=ins-1234****&backends.1.weight=10
上述请求的返回结果如下:
{"code" : 0,"message" : "","codeDesc": "Success","requestId" : 1234}
查询负载均衡实例并使用
最后查询一下该负载均衡实例的 VIP 或者域名,具体的查询负载均衡实例列表的接口详见接口 查询负载均衡实例列表。
公共请求参数的 Action 字段为 DescribeLoadBalancers,接口请求参数如下表。
参数名称 | 描述 | 取值 |
loadBalancerIds.0 | 负载均衡实例唯一 ID | 本例中取刚刚创建的负载均衡实例的唯一 ID:lb-cjcy**** |
结合公共请求参数和接口请求参数,最终的请求形式如下:
https://lb.api.qcloud.com/v2/index.php?Action=DescribeLoadBalancers&Region=ap-guangzhou&Timestamp=1465750149&Nonce=46364&SecretId=************&Signature=5umi****pTTyk18V2g%2FYi56hqls%3D&loadBalancerIds.0=lb-cjcy****
返回
{"code": 0,"message": "","codeDesc": "Success","loadBalancerSet": [{"loadBalancerId": "lb-cjcy****","unLoadBalancerId": "lb-cjcy****","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.XX
或者域名20****-0.gz.1251000011.clb.myqcloud.com
来将请求根据负载均衡监听器的规则转发到后端绑定的云服务器上,实现了负载均衡服务。