创建负载均衡四层监听器

最近更新时间:2018-05-29 16:46:36

功能描述

CreateBmListeners 提供了创建黑石四层负载均衡监听器功能。黑石负载均衡四层监听器提供了转发用户请求的具体规则,包括端口、协议、会话保持、健康检查等参数。

接口请求域名:bmlb.api.qcloud.com

监听器的配置规则如下:

黑石负载均衡的使用限制:
1) 七层监听器指协议类型为HTTP/HTTPS的监听器,四层监听器指协议类型为TCP/UDP的监听器。
2) 公网(有日租)负载均衡和内网负载均衡都支持协议类型为TCP和UDP的四层监听器。
3) 公网负载均衡支持协议类型为HTTP/HTTPS的七层监听器;内网负载均衡支持协议类型为HTTP的七层监听器。
4) 在同一个负载均衡中,对于七层监听器和协议类型为TCP的四层监听器,一个负载均衡端口只能对应其中一种。
5) 在同一个负载均衡中,一个负载均衡监听器可以对应多个物理服务器端口。
6) 在同一个负载均衡中,一个物理服务器的一个端口不能对应相同协议的不同的四层监听器。

请求

请求示例

GET https://bmlb.api.qcloud.com/v2/index.php?Action=CreateBmListeners
    &<公共请求参数>
    &loadBalancerId=<负载均衡实例ID>
    &listeners.0.loadBalancerPort=<监听器的监听端口>
    &listeners.0.protocol=<监听器协议类型>
    &listeners.0.listenerName=<监听器名称>
    &listeners.0.healthSwitch=<是否开启健康检查>
    &listeners.0.timeOut=<健康检查响应超时时间>
    &listeners.0.intervalTime=<健康检查间隔>
    &listeners.0.healthNum=<健康阈值>
    &listeners.0.unhealthNum=<不健康阈值>
    &listeners.0.sessionExpire=<会话保持时间>
    &listeners.0.bandwidth=<监听器最大带宽值>
    &listeners.0.customHealthSwitch=<是否开启自定义健康检查>
    &listeners.0.inputType=<探测内容类型>
    &listeners.0.lineSeparatorType=<换行替换方式>
    &listeners.0.healthRequest=<自定义探测请求内容>
    &listeners.0.healthResponse=<自定义探测返回内容>
    &listeners.0.toaFlag=<是否开启toa>

请求参数

以下请求参数列表仅列出了接口请求参数,正式调用时需要加上公共请求参数,见公共请求参数页面。其中,此接口的Action字段为 CreateBmListeners。

参数名称 必选 类型 描述
loadBalancerId String 负载均衡实例ID,可通过接口DescribeBmLoadBalancers查询。
listeners Array 监听器信息数组,可以创建多个监听器。目前一个负载均衡下面最多允许创建50个监听器

listeners描述当前监听器的具体信息,n为下标,listeners包含字段如下

参数名称 必选 类型 描述
listeners.n.loadBalancerPort Int 监听器监听端口,可选值1~65535。
listeners.n.protocol String 监听器协议类型,可选值tcp,udp。
listeners.n.listenerName String 监听器名称。
listeners.n.sessionExpire Int 监听器的会话保持时间,单位:秒。可选值:900~3600,不传表示不开启会话保持。
listeners.n.healthSwitch Int 是否开启健康检查:1(开启)、0(关闭)。默认值0,表示关闭。
listeners.n.timeOut Int 健康检查的响应超时时间,可选值:2-60,默认值:2,单位:秒。
响应超时时间要小于检查间隔时间。
listeners.n.intervalTime Int 健康检查检查间隔时间,默认值:5,可选值:5-300,单位:秒。
listeners.n.healthNum Int 健康阈值,默认值:3,表示当连续探测三次健康则表示该转发正常,可选值:2-10,单位:次。
listeners.n.unhealthNum Int 不健康阈值,默认值:3,表示当连续探测三次不健康则表示该转发不正常,可选值:2-10,单位:次。
listeners.n.bandwidth Int 监听器最大带宽值,用于计费模式为固定带宽计费,可选值:0-1000,单位:Mbps。
listeners.n.customHealthSwitch Int 是否开启自定义健康检查:1(开启)、0(关闭)。默认值0,表示关闭。(该字段在健康检查开启的情况下才生效)
listeners.n.inputType String 自定义健康探测内容类型,可选值:text(文本)、hexadecimal(十六进制)。
listeners.n.lineSeparatorType Int 探测内容类型为文本方式时,针对请求文本中换行替换方式。可选值:1(替换为LF)、2(替换为CR)、3(替换为LF+CR)。
listeners.n.healthRequest String 自定义探测请求内容。
listeners.n.healthResponse String 自定义探测返回内容。
listeners.n.toaFlag Int 是否开启toa。可选值:0(关闭)、1(开启),默认关闭。(该字段在负载均衡为fullnat类型下才生效)

响应

响应示例

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

响应参数

参数名称 类型 描述
code Int 错误码, 0: 成功, 其他值: 失败,具体含义可以参考错误码
message String 模块错误信息描述,与接口相关。
requestId Int 任务ID。该接口为异步任务,可根据本参数调用DescribeBmLoadBalancersTaskResult接口来查询任务操作结果

错误码

错误代码 英文提示 错误描述
9003 InvalidParameter 参数错误
9006 InternalError.CCDBAbnormal CCDB 服务异常
11041 InvalidParameter.CCDBLBNotExist CCDB中不存在该负载均衡记录信息
12003 IncorrectStatus.LBWrongStatus 该负载均衡状态不正确,无法执行当前操作
12014 InvalidResource.ListenerNumberOverLimit 该负载均衡的监听器数量超过限制
-12013 InvalidParameter.VportIsDuplicate 该负载均衡已经存在该端口的监听器

实际案例

输入

GET https://bmlb.api.qcloud.com/v2/index.php?Action=CreateBmListeners
    &SecretId=AKIDlfdHxN0ntSVt4KPH0xXWnGl21UUFNoO5
    &Nonce=61431
    &Timestamp=1507728683
    &Region=bj
    &loadBalancerId=lb-abcdefgh
    &listeners.0.loadBalancerPort=1234
    &listeners.0.protocol=tcp
    &listeners.0.listenerName=tcp-test
    &listeners.0.healthSwitch=1
    &listeners.0.timeOut=6
    &listeners.0.intervalTime=10
    &listeners.0.healthNum=8
    &listeners.0.unhealthNum=8
    &listeners.0.sessionExpire=1000
    &listeners.0.bandwidth=5
    &listeners.0.customHealthSwitch=1
    &listeners.0.inputType=text
    &listeners.0.lineSeparatorType=3
    &listeners.0.healthRequest=GET / HTTP/1.1\r\nHost:a.com\r\n\r\n
    &listeners.0.healthResponse=HTTP/1.1 200 OK
    &listeners.0.toaFlag=1
    &Signature=umZFAAWKzjXEQp4ySgrWAoWOHKI%3D

输出

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