您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
本文档介绍了如何为 Apigee Edge 消息处理器配置保持活动状态超时时间。
消息处理器的 keep-alive 超时允许单个 TCP 连接向后端服务器发送和接收多个 HTTP 请求/响应,而不是为每个请求/响应对打开新连接。
消息处理器上 keep alive 超时属性的默认值为 60 秒。此超时期限适用于目标端点配置和 API 代理的 ServiceCallout 政策中配置的后端服务器。
您可以根据需要,将消息处理器的 keep-alive 超时时间从默认值 60 秒增加或减少。可以通过以下方式进行配置:
- 在 API 代理中
- 在目标端点中
- 在
ServiceCallout政策中
- 在消息处理器上
以下属性用于控制消息处理器的 keep-alive 超时:
| 属性名称 | 位置 | 说明 |
|---|---|---|
keepalive.timeout.millis |
API 代理:
|
这是消息处理器允许单个 TCP 连接发送和接收多个 HTTP 请求/响应的最大空闲时间,而不是为每个请求/响应对打开新连接。 默认情况下,此属性采用在消息处理器上为 如果使用特定 API 代理中的目标端点或 |
HTTPClient.keepalive.timeout.millis |
消息处理器 |
这是消息处理器允许单个 TCP 连接发送和接收多个 HTTP 请求/响应的最大空闲时间,而不是为每个请求/响应对打开新连接。 此属性适用于在此消息处理器上运行的所有 API 代理。 此属性的默认值为 您可以按照下文在消息处理器上配置 keep-alive 超时中的说明修改此属性,也可以通过在 API 代理级别设置 |
准备工作
在执行本文档中的步骤之前,请务必了解以下主题:
- 如果您不熟悉 keep-alive 超时,请参阅
TargetEndpoint 传输属性规范中的
keepalive.timeout.millis属性说明。 - 如果您不熟悉如何为 Edge Private Cloud 配置属性,请参阅 如何配置 Edge。
在 API 代理中配置 keep-alive 超时
您可以在 API 代理中的以下位置配置 keep-alive 超时:
- 目标端点
ServiceCallout政策
在 API 代理的目标端点中配置 keep-alive 超时
本部分介绍了如何在 API 代理的目标端点中配置 keep-alive 超时。可以通过属性 keepalive.timeout.millis 配置 keep-alive 超时,该属性表示以毫秒为单位的 keep-alive 超时值。
- 在 Edge 界面中,选择要配置新 keep-alive 超时值的特定 API 代理。
- 选择要修改的特定目标端点。
-
在
TargetEndpoint配置的<HTTPTargetConnection>元素下添加属性keepalive.timeout.millis,并为其指定适当的值。例如,如需将 keep alive 超时时间更改为
30秒,请添加以下代码块:<Properties> <Property name="keepalive.timeout.millis">30000</Property> </Properties>
由于
keepalive.timeout.millis属性以毫秒为单位,因此30秒的值为30000。以下示例展示了如何在 API 代理的目标端点配置中配置 keep-alive 超时:
使用后端服务器网址的目标端点配置示例
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>https://mocktarget.apigee.net/json</URL> <Properties> <Property name="keepalive.timeout.millis">30000</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>使用目标服务器的目标端点配置示例
<TargetEndpoint name="default"> <HTTPTargetConnection> <LoadBalancer> <Server name="target1" /> <Server name="target2" /> </LoadBalancer> <Properties> <Property name="keepalive.timeout.millis">30000</Property> </Properties> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint> - 保存对 API 代理所做的更改。
在 API 代理的 ServiceCallout 政策中配置 keep-alive 超时
本部分介绍了如何在 API 代理的 ServiceCallout 政策中配置保持活动状态超时时间。keep-alive 超时可通过 the keepalive.timeout.millis 属性进行配置,该属性表示以毫秒为单位的 keep-alive 超时值。
如需使用 keepalive.timeout.millis 属性在 ServiceCallout 政策中配置 keep alive 超时,请执行以下操作:
- 在 Edge 界面中,选择要为其配置
ServiceCallout政策的新 keep alive 超时值的特定 API 代理。 - 选择要修改的特定
ServiceCallout政策。 - 在
TargetEndpoint配置的<HTTPTargetConnection>元素下添加属性keepalive.timeout.millis,并为其指定适当的值。例如,如需将 keep-alive 超时时间更改为
30秒,请添加以下代码块:<Properties> <Property name="keepalive.timeout.millis">30000</Property> </Properties>
由于
keepalive.timeout.millis属性以毫秒为单位,因此30秒的值为30000。以下示例展示了如何在 API 代理的
ServiceCallout政策中配置 keep-alive 超时:使用后端服务器网址的 ServiceCallout 政策配置示例
<ServiceCallout name="Service-Callout-1"> <DisplayName>Service Callout-1</DisplayName> <HTTPTargetConnection> <Properties> <Property name="keepalive.timeout.millis">30000</Property> </Properties> <URL>https://mocktarget.apigee.net/json</URL> </HTTPTargetConnection> </ServiceCallout>使用目标服务器的 ServiceCallout 政策配置示例
<ServiceCallout enabled="true" name="Service-Callout-1"> <DisplayName>Service Callout-1</DisplayName> <Response>calloutResponse</Response> <HTTPTargetConnection> <LoadBalancer> <Server name="target1" /> <Server name="target2" /> </LoadBalancer> <Properties> <Property name="keepalive.timeout.millis">30000</Property> </Properties> <Path>/test</Path> </HTTPTargetConnection> </ServiceCallout> - 保存对 API 代理所做的更改。
在消息处理器上配置 keep-alive 超时
本部分介绍如何在消息处理器上配置 keep-alive 超时。可以通过属性 HTTPClient.keepalive.timeout.millis 配置 keep-alive 超时,该属性表示消息处理器组件上的 keep-alive 超时值(以毫秒为单位)。由于此属性在消息处理器上被注释掉,因此您需要使用特殊语法 conf/http.properties+HTTPClient.keepalive.timeout.millis,如 如何配置 Edge 中的
设置当前被注释掉的令牌部分所述。
如需在消息处理器上配置保持活动状态超时时间,请执行以下操作:
- 在消息处理器机器上,通过编辑器打开以下文件。如果该目录尚不存在,则创建该目录。
/opt/apigee/customer/application/message-processor.properties
例如,如需使用
vi打开文件,请输入以下内容:vi /opt/apigee/customer/application/message-processor.properties
- 在属性文件中添加一行,格式如下,并替换 TIME_IN_MILLISECONDS 的值:
conf/http.properties+HTTPClient.keepalive.timeout.millis=TIME_IN_MILLISECONDS
例如,如需将消息处理器的 keep-alive 超时时间更改为
30秒,请添加以下行:conf/http.properties+HTTPClient.keepalive.timeout.millis=30000
- 保存更改。
- 确保属性文件归
apigee用户所有,如下所示:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- 重启消息处理器,如下所示:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 如果您有多个消息处理器,请在所有消息处理器上重复执行上述步骤。
验证消息处理器的 keep-alive 超时
本部分介绍了如何验证是否已在消息处理器上成功修改了 keep-alive 超时。
即使您使用特殊语法 conf/http.properties+HTTPClient.keepalive.timeout.millis 在消息处理器上设置了 keep-alive 超时,您也需要验证实际属性 HTTPClient.keepalive.timeout.millis 是否已设置为新值。
- 在消息处理器机器上,在
/opt/apigee/edge-message-processor/conf目录中搜索属性HTTPClient.keepalive.timeout.millis,并检查该属性是否已设置为新值,如下所示:grep -ri "HTTPClient.keepalive.timeout.millis" /opt/apigee/edge-message-processor/conf
-
如果已在消息处理器上成功设置新的 keep alive 超时值,则上述命令会在
http.properties文件中显示新值。在将 keep-alive 超时时间配置为
30秒后,上述命令的示例结果如下所示:/opt/apigee/edge-message-processor/conf/http.properties:HTTPClient.keepalive.timeout.millis=30000
在上面的示例输出中,请注意,属性
HTTPClient.keepalive.timeout.millis已在http.properties中设置为新值30000。这表示已成功将消息处理器的 keep-alive 超时时间配置为30秒。 - 如果您仍然看到属性
HTTPClient.keepalive.timeout.millis的旧值,请验证您是否已正确按照在消息处理器上配置 keep-alive 超时中所述的所有步骤操作。如果您遗漏了任何步骤,请再次正确重复所有步骤。 - 如果您仍然无法修改 keep-alive 超时,请与 Google Cloud Apigee Edge 支持团队联系。