Ibm cloud IBM Cloud LBaaS中的空闲连接超时限制会导致应用程序出现问题

Ibm cloud IBM Cloud LBaaS中的空闲连接超时限制会导致应用程序出现问题,ibm-cloud,load-balancing,Ibm Cloud,Load Balancing,我们是一个IBM团队,在IBM云基础设施上运行的应用程序中使用IBM云LBaaS(负载平衡器服务)。我们收到一些客户投诉,说他们无法在我们的产品前端获得预期的响应,这是他们以前在AWS上部署我们的产品时从未遇到过的。我们调查了这个问题,发现IBM云负载平衡器断开了客户请求的连接,因为这些请求从后端获得响应的时间超过了50秒(这是我们的一些长时间运行任务的用例) 我们在这里发现了50秒的连接超时限制我们想知道是否可以为我们定制空闲超时以满足长期运行的任务?如果目前不支持,是否有计划在将来实施,或者

我们是一个IBM团队,在IBM云基础设施上运行的应用程序中使用IBM云LBaaS(负载平衡器服务)。我们收到一些客户投诉,说他们无法在我们的产品前端获得预期的响应,这是他们以前在AWS上部署我们的产品时从未遇到过的。我们调查了这个问题,发现IBM云负载平衡器断开了客户请求的连接,因为这些请求从后端获得响应的时间超过了50秒(这是我们的一些长时间运行任务的用例)

我们在这里发现了50秒的连接超时限制我们想知道是否可以为我们定制空闲超时以满足长期运行的任务?如果目前不支持,是否有计划在将来实施,或者是否有可能将该限制提高到合理的更大值?

FYR,AWS负载平衡器服务的最大空闲超时时间为3600秒

如有任何关于如何解决/消除此问题的建议,我们将不胜感激。请直接给我发电子邮件(杨)。zhang3@ibm.com)如果你有什么要分享的。谢谢


Yang

如果您指的是空闲连接超时,在同一文档链接中提到,您可以将服务器和客户端超时设置为7200秒(2小时)

服务器端和客户端空闲连接超时值现在可以为 使用API进行配置。用户可以配置服务器超时(参数名称: 服务器超时)&中的客户端超时(参数名称:clientTimeout)值 秒到2小时(范围:1到7200秒),使用 “UpdateLoadBalancerProtocols”的方法 “软层网络监听”服务。如果用户不提供 服务器或客户端超时值,负载平衡器将使用默认值 对应超时的值(在表中提到)

有关如何使用
UpdateLoadBalancerProtocols
方法的示例,请查看


嗨,维迪亚萨格,谢谢你的更新!我们很高兴知道它现在是可配置的。我们将通过API尝试,稍后让您知道结果。嗨,Vidyasagar,是的,它为我们工作,感谢您的帮助!很抱歉,我在回复中发布了我的更新,而不是评论,并且它被删除了(可能是由管理员删除的),很抱歉我不熟悉StackOverflow的规则。我又把它贴在这里了:这篇文章是隐藏的。它是在两天前被Bhargav Rao删除的♦. 我们能够通过API为更新协议配置负载平衡器的超时。之后我们再也没有看到这个问题了。谢谢你的帮助您的负载平衡器UUID UUID='set me'#添加协议配置的新协议=[{“listenerUuid”:“set me”,“serverTimeout”:3600,“clientTimeout”:3600},{“listenerUuid”:“set me”,“serverTimeout”:3600,“clientTimeout”:3600}]#创建api客户机client=SoftLayer.client()监听器_service=client['Network\u LBaaS\u listener']\u mask=“mask[listeners]”尝试:response=listener\u service.updateloadbalancer协议(uuid,protocolConfigurations,mask=\u mask)抱歉,我无法在注释中粘贴代码片段。我不能把它作为一个答案。对于有效的沟通来说,这是一种不幸。
import SoftLayer
from pprint import pprint

# Your load balancer UUID
uuid = 'set me'

# New protocols to add
protocolConfigurations = [
    {
        "backendPort": 1350,
        "backendProtocol": "TCP",
        "frontendPort": 1450,
        "frontendProtocol": "TCP",
        "loadBalancingMethod": "WEIGHTED_RR",    # ROUNDROBIN, LEASTCONNECTION, WEIGHTED_RR
        "maxConn": 500,
        "sessionType": "SOURCE_IP"
    },
    {
        "backendPort": 1200,
        "backendProtocol": "HTTP",
        "frontendPort": 1150,
        "frontendProtocol": "HTTP",
        "loadBalancingMethod": "ROUNDROBIN",    # ROUNDROBIN, LEASTCONNECTION, WEIGHTED_RR
        "maxConn": 1000,
        "sessionType": "SOURCE_IP",
        "serverTimeout": 70,
        "clientTimeout": 70
    }
]

# Create the api client
client = SoftLayer.Client()
listener_service = client['Network_LBaaS_Listener']

_mask = "mask[listeners]"

try:
    response = listener_service.updateLoadBalancerProtocols(uuid, protocolConfigurations, mask=mask)
    pprint(response)
except SoftLayer.SoftLayerAPIError as e:            
    print("Unable to add protocols: %s, %s" % (e.faultCode, e.faultString))