使用示例

最近更新时间:2024-11-08 10:28:39

我的收藏
为了帮助您快速使用负载均衡 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=************
&Signature=5umi****pTTyk18V2g%2FYi56hqls%3D
&loadBalancerType=2
上述请求的返回结果如下:
{
"code": 0,
"message": "",
"codeDesc": "Success",
"requestId": 3901941,
"dealIds": [
"3901941"
],
"unLoadBalancerIds": {
"3901941": [
"lb-cjcy****"
]
}
}
其中 lb-cjcymkw5 为刚刚购买的负载均衡实例的唯一 ID。根据 查询负载均衡实例列表 接口来查询该负载均衡实例是否创建成功,成功后进行第二步。

创建负载均衡监听器

有了负载均衡实例的唯一 ID,我们就可以创建负载均衡监听器了,有关创建负载均衡监听器的详细信息请参考 创建负载均衡监听器 页面。
该示例中创建负载均衡监听器的接口请求参数如下表。
参数名称
描述
取值
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
}
可以根据 查询负载均衡任务状态 异步接口查询 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=************
&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
}
可以根据 查询负载均衡任务状态 异步接口查询 API 来查看该 request ID 对应的任务是否成功。

查询负载均衡实例并使用

最后查询一下该负载均衡实例的 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 来将请求根据负载均衡监听器的规则转发到后端绑定的云服务器上,实现了负载均衡服务。