<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
本文档介绍了如何为 Apigee Edge 消息处理器配置 I/O 超时。
消息处理器上的 I/O 超时表示消息处理器 等待接收来自后端服务器的响应或等待套接字准备好写入 向后端服务器发出的请求,否则就会超时。
消息处理器 I/O 超时的默认值为 55 seconds
。超时
时间段
在目标端点配置和 ServiceCallout 中配置的后端服务器
API 代理政策。
消息处理器的 I/O 超时可以在
55 seconds
。您可以在以下位置进行配置:
- 在 API 代理中
<ph type="x-smartling-placeholder">
- </ph>
- 目标端点
- ServiceCallout 政策
- 在消息处理器上
以下属性用于控制消息处理器的 I/O 超时:
属性名称 | 位置 | 说明 |
---|---|---|
io.timeout.millis
|
API 代理:
|
这是消息处理器执行以下操作的最长时间:
如果在此超时期限内后端服务器没有响应,则 消息处理器超时。
默认情况下,此属性采用为
消息处理器上的 如果使用特定 API 代理的新超时值修改此属性, 则只有该 API 代理会受到影响 |
HTTPTransport.io.timeout.millis
|
消息处理器 |
这是消息处理器执行以下操作的最长时间:
如果在此超时期限内后端服务器没有响应,则 消息处理器超时。 该属性用于此消息处理器上运行的所有 API 代理。
此属性的默认值为
您可以按照
在消息处理器上配置 I/O 超时,或者,
您可以通过在 API 中设置 |
准备工作
在使用本文档中的步骤之前,请确保您了解以下主题:
- 如果您不熟悉 I/O 超时,请参阅
io.timeout.millis
属性 <ph type="x-smartling-placeholder"></ph>说明 TargetEndpoint 传输属性规范定义一个端点。 - 如果您不熟悉如何配置适用于私有云的 Edge 的属性,请参阅 <ph type="x-smartling-placeholder"></ph> 如何配置 Edge。
- 请务必遵循 <ph type="x-smartling-placeholder"></ph> 配置 I/O 超时的最佳实践。
在 API 代理中配置 I/O 超时
可以在以下 API 代理位置配置 I/O 超时:
- 目标端点
- ServiceCallout 政策
在 API 代理的目标端点中配置 I/O 超时
本部分介绍了如何在 API 代理的目标端点中配置 I/O 超时。
可以通过 io.timeout.millis
属性配置 I/O 超时,
表示以毫秒为单位的 I/O 超时值。
- 在 Edge 界面中,选择您要在其中配置新 API 代理的特定 API 代理 I/O 超时值。
- 选择要修改的特定目标端点。
- 将属性
io.timeout.millis
添加到TargetEndpoint
配置中的<HTTPTargetConnection>
元素。 - 保存对 API 代理所做的更改。
例如,要将 I/O 超时更改为 120 秒,请添加以下代码块:
<Properties> <Property name="io.timeout.millis">120000</Property> </Properties>
由于 io.timeout.millis
属性以毫秒为单位,因此
120 秒为 120000
。
以下示例展示了如何在目标端点中配置 I/O 超时 API 代理的配置:
使用后端服务器网址配置目标端点的示例
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>https://mocktarget.apigee.net/json</URL> <Properties> <Property name="io.timeout.millis">120000</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
使用目标服务器配置目标端点的示例
<TargetEndpoint name="default"> <HTTPTargetConnection> <LoadBalancer> <Server name="target1" /> <Server name="target2" /> </LoadBalancer> <Properties> <Property name="io.timeout.millis">120000</Property> </Properties> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>
在 API 代理的 ServiceCallout 政策中配置 I/O 超时
本部分介绍了如何在
API 代理。可以通过 <Timeout>
元素配置 I/O 超时
或 io.timeout.millis
属性。<Timeout>
元素和
io.timeout.millis
属性表示以毫秒为单位的 I/O 超时值。
您可以使用以下方法之一在 ServiceCallout 政策中配置 I/O 超时:
<Timeout>
元素。io.timeout.millis
属性所定义)。
超时元素
使用 <Timeout>
在 ServiceCallout 政策中配置 I/O 超时
元素,请执行以下操作:
- 在 Edge 界面中,选择您要在其中配置 ServiceCallout 政策的新 I/O 超时值。
- 选择您要修改的特定 ServiceCallout 政策。
- 将具有适当值的元素
<Timeout>
添加到<ServiceCallout>
配置。例如,要将 I/O 超时更改为 120 秒,请添加下面这行代码:
<Timeout>120000</Timeout>
由于
<Timeout>
元素以毫秒为单位,因此 120 秒为120000
。以下示例展示了如何在 ServiceCallout 中配置 I/O 超时 使用
<Timeout>
元素设置此政策:使用后端服务器网址的 ServiceCallout 政策配置示例
<ServiceCallout name="Service-Callout-1"> <DisplayName>ServiceCallout-1</DisplayName> <Timeout>120000</Timeout> <HTTPTargetConnection> <Properties/> <URL>https://mocktarget.apigee.net/json</URL> </HTTPTargetConnection> </ServiceCallout>
- 保存对 API 代理所做的更改。
io.timeout.millis 属性
要使用
io.timeout.millis
属性,请执行以下操作:
- 在 Edge 界面中,选择您要在其中配置的特定 API 代理 ServiceCallout 政策的新 I/O 超时值。
- 选择您要修改的特定 ServiceCallout 政策。
- 将属性
io.timeout.millis
添加到 TargetEndpoint 配置中的<HTTPTargetConnection>
元素。例如,如需将 I/O 超时更改为 120 秒,请添加以下代码块 代码:
<Properties> <Property name="io.timeout.millis">120000</Property> </Properties>
由于
io.timeout.millis
属性以毫秒为单位,因此 120 秒为120000
。以下示例展示了如何在目标端点中配置 I/O 超时 API 代理的配置:
使用后端服务器网址的 ServiceCallout 政策配置示例
<ServiceCallout name="Service-Callout-1"> <DisplayName>ServiceCallout-1</DisplayName> <HTTPTargetConnection> <Properties> <Property name="io.timeout.millis">120000</Property> </Properties> <URL>https://mocktarget.apigee.net/json</URL> </HTTPTargetConnection> </ServiceCallout>
使用目标服务器的 ServiceCallout 政策配置示例
<ServiceCallout enabled="true" name="Service-Callout-1"> <DisplayName>ServiceCallout-1</DisplayName> <Response>calloutResponse</Response> <HTTPTargetConnection> <LoadBalancer> <Server name="target1" /> <Server name="target2" /> </LoadBalancer> <Properties> <Property name="io.timeout.millis">120000</Property> </Properties> <Path>/test</Path> </HTTPTargetConnection> </ServiceCallout>
- 保存对 API 代理所做的更改。
配置消息处理器的 I/O 超时
本部分介绍如何配置消息处理器的 I/O 超时。
可以通过 HTTPTransport.io.timeout.millis
属性配置 I/O 超时。
表示消息处理器组件上的 I/O 超时值(以毫秒为单位),
使用令牌
如何配置
Edge。
如需在消息处理器上配置 I/O 超时,请执行以下操作:
- 在消息处理器计算机上,在编辑器中打开以下文件。如果没有
已存在,然后创建它。
/opt/apigee/customer/application/message-processor.properties
例如,使用
vi
,请输入以下命令:vi /opt/apigee/customer/application/message-processor.properties
- 将以下格式的一行内容添加到属性文件中,并将
TIME_IN_MILLISECONDS:
conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
例如,要将消息处理器上的 I/O 超时更改为 120 秒, 添加以下行:
conf_http_HTTPTransport.io.timeout.millis=120000
- 保存更改。
- 确保属性文件归
apigee
用户所有,如下所示:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- 按如下所示重启消息处理器:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 如果您有多个消息处理器,请对所有消息重复上述步骤 处理器。
验证消息处理器上的 I/O 超时
<ph type="x-smartling-placeholder">本部分介绍如何验证是否已在 消息处理器。
即使您使用令牌 conf_http_HTTPTransport.io.timeout.millis
来设置
消息处理器上的 I/O 超时,您需要验证实际属性
已为 HTTPTransport.io.timeout.millis
设置新值。
- 在消息处理器计算机上,搜索属性
HTTPTransport.io.timeout.millis
位于/opt/apigee/edge-message-processor/conf
目录中,然后检查它 设置了新值,如下所示:grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
- 如果在消息处理器上成功设置了新的 I/O 超时值,则上述
命令会显示
http.properties
文件中的新值。 - 如果您仍然看到属性
HTTPTransport.io.timeout.millis
的旧值, 然后确认您已遵循 正确配置消息处理器上的 I/O 超时。如果您有 遗漏了任何步骤,请重新正确地重复所有步骤。 - 如果您仍然无法修改 I/O 超时,请联系 Apigee Edge 支持。
将 I/O 超时配置为 120 秒如下:
/opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
在上面的示例输出中,请注意属性
在“HTTPTransport.io.timeout.millis
”中设置了新值 120000
http.properties
。这表示已成功配置 I/O 超时
在消息处理器上延迟为 120 秒。
下一步是什么?
了解 <ph type="x-smartling-placeholder"></ph> 在路由器上配置 I/O 超时