您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档。 信息
本文档介绍如何为 Apigee Edge 消息处理器配置 keep-alive 超时。
消息处理器上的 keep-alive 超时允许单个 TCP 连接向后端服务器发送和接收多个 HTTP 请求/响应,而不是为每个请求/响应对打开新连接。
消息处理器上的 keep alive 超时属性的默认值为 60
秒。此超时期限适用于在目标端点配置和 API 代理的 ServiceCallout
政策中配置的后端服务器。
您可以根据自己的需求从默认值(60
秒)增加或减少消息处理器的 keep-alive 超时。它可以通过以下方式进行配置:
- 在 API 代理中
- 在目标端点中
- 在
ServiceCallout
政策中
- 在消息处理器上
以下属性用于控制消息处理器上的 keep alive 超时:
属性名称 | 位置 | 说明 |
---|---|---|
keepalive.timeout.millis |
API 代理:
|
这是消息处理器允许单个 TCP 连接发送和接收多个 HTTP 请求/响应(而不是为每个请求/响应对打开新连接)的最大空闲时间。 默认情况下,此属性采用为消息处理器上的 如果使用目标端点中使用的目标服务器的新超时值或特定 API 代理中的 |
HTTPClient.keepalive.timeout.millis |
消息处理器 |
这是消息处理器允许单个 TCP 连接发送和接收多个 HTTP 请求/响应(而不是为每个请求/响应对打开新连接)的最大空闲时间。 此属性用于此消息处理器上运行的所有 API 代理。 此属性的默认值为 您可以按照下方在消息处理器上配置 keepalive 超时中的说明修改此属性,也可以通过在 API 代理级别设置 |
准备工作
在使用本文档中的步骤之前,请务必了解以下主题:
- 如果您不熟悉 keepalive 超时,请参阅
TargetEndpoint 传输属性规范中的
keepalive.timeout.millis
属性说明。 - 如果您不熟悉如何在 Private Cloud 上配置 Edge 的属性,请参阅 如何配置 Edge。
在 API 代理中配置 keepalive 超时
您可以在 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 Timeout 更改为
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 代理所做的更改。
在消息处理器上配置 keepalive 超时
本部分介绍了如何在消息处理器上配置 keep-alive 超时。您可以通过属性 HTTPClient.keepalive.timeout.millis
来配置保持活动超时时间,该属性表示消息处理器组件上的保持活动超时值(以毫秒为单位)。由于此属性对消息处理器进行了注释,因此您需要使用特殊语法 conf/http.properties+HTTPClient.keepalive.timeout.millis
,如 如何配置 Edge 中的
设置当前被注释掉的令牌部分中所述。
如需在消息处理器上配置 keep alive 超时,请执行以下操作:
- 在 Message Processor 计算机上,在编辑器中打开以下文件。如果不存在,则创建一个。
/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
- 如果您有多个消息处理器,请对所有消息处理器重复上述步骤。
验证消息处理器上的 keepalive 超时
本部分介绍如何验证消息处理器上的 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
文件中显示新值。将 keepalive 超时配置为
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
的旧值,请验证是否已正确执行在消息处理器上配置 keepalive 超时中所述的所有步骤。如果您遗漏了任何步骤,请重新正确重复所有步骤。 - 如果您仍无法修改 keepalive 超时,请与 Google Cloud Apigee Edge 支持团队联系。