在消息处理器上配置 I/O 超时

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

<ph type="x-smartling-placeholder">

本文档介绍了如何为 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 代理:

  • 目标端点
  • 服务宣传信息政策

这是消息处理器执行以下操作的最长时间:

  • 在建立 并向后端服务器发送请求,或者
  • 等待套接字准备就绪,以便消息处理器将请求发送到 后端服务器

如果在此超时期限内后端服务器没有响应,则 消息处理器超时。

默认情况下,此属性采用为 消息处理器上的 HTTPTransport.io.timeout.millis 属性。 默认值为 55 seconds

如果使用特定 API 代理的新超时值修改此属性, 则只有该 API 代理会受到影响

HTTPTransport.io.timeout.millis 消息处理器

这是消息处理器执行以下操作的最长时间:

  • 在建立连接后等待接收来自后端服务器的响应 并将请求发送到后端服务器,或者
  • 等待套接字准备就绪,以便消息处理器将请求发送到 后端服务器

如果在此超时期限内后端服务器没有响应,则 消息处理器超时。

该属性用于此消息处理器上运行的所有 API 代理。

此属性的默认值为 55 seconds

您可以按照 在消息处理器上配置 I/O 超时,或者, 您可以通过在 API 中设置 io.timeout.millis 属性来覆盖此值 代理级别。

准备工作

在使用本文档中的步骤之前,请确保您了解以下主题:

在 API 代理中配置 I/O 超时

可以在以下 API 代理位置配置 I/O 超时:

  • 目标端点
  • ServiceCallout 政策

在 API 代理的目标端点中配置 I/O 超时

本部分介绍了如何在 API 代理的目标端点中配置 I/O 超时。 可以通过 io.timeout.millis 属性配置 I/O 超时, 表示以毫秒为单位的 I/O 超时值。

<ph type="x-smartling-placeholder">。 <ph type="x-smartling-placeholder">
  1. 在 Edge 界面中,选择您要在其中配置新 API 代理的特定 API 代理 I/O 超时值。
  2. 选择要修改的特定目标端点。
  3. 将属性 io.timeout.millis 添加到 TargetEndpoint 配置中的 <HTTPTargetConnection> 元素。
  4. 例如,要将 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>
    
  5. 保存对 API 代理所做的更改。

在 API 代理的 ServiceCallout 政策中配置 I/O 超时

本部分介绍了如何在 API 代理。可以通过 <Timeout> 元素配置 I/O 超时 或 io.timeout.millis 属性。<Timeout> 元素和 io.timeout.millis 属性表示以毫秒为单位的 I/O 超时值。

<ph type="x-smartling-placeholder">。 <ph type="x-smartling-placeholder">

您可以使用以下方法之一在 ServiceCallout 政策中配置 I/O 超时:

  • <Timeout> 元素。
  • io.timeout.millis 属性所定义)。

超时元素

使用 <Timeout> 在 ServiceCallout 政策中配置 I/O 超时 元素,请执行以下操作:

  1. 在 Edge 界面中,选择您要在其中配置 ServiceCallout 政策的新 I/O 超时值。
  2. 选择您要修改的特定 ServiceCallout 政策。
  3. 将具有适当值的元素 <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>
    
  4. 保存对 API 代理所做的更改。

io.timeout.millis 属性

要使用 io.timeout.millis 属性,请执行以下操作:

  1. 在 Edge 界面中,选择您要在其中配置的特定 API 代理 ServiceCallout 政策的新 I/O 超时值。
  2. 选择您要修改的特定 ServiceCallout 政策。
  3. 将属性 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>
    
  4. 保存对 API 代理所做的更改。

配置消息处理器的 I/O 超时

本部分介绍如何配置消息处理器的 I/O 超时。 可以通过 HTTPTransport.io.timeout.millis 属性配置 I/O 超时。 表示消息处理器组件上的 I/O 超时值(以毫秒为单位), 使用令牌 如何配置 Edge

如需在消息处理器上配置 I/O 超时,请执行以下操作:

  1. 在消息处理器计算机上,在编辑器中打开以下文件。如果没有 已存在,然后创建它。
    /opt/apigee/customer/application/message-processor.properties
    

    例如,使用 vi,请输入以下命令:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. 将以下格式的一行内容添加到属性文件中,并将 TIME_IN_MILLISECONDS:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
    

    例如,要将消息处理器上的 I/O 超时更改为 120 秒, 添加以下行:

    conf_http_HTTPTransport.io.timeout.millis=120000
    
  3. 保存更改。
  4. 确保属性文件归 apigee 用户所有,如下所示:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. 按如下所示重启消息处理器:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. 如果您有多个消息处理器,请对所有消息重复上述步骤 处理器。

验证消息处理器上的 I/O 超时

<ph type="x-smartling-placeholder">

本部分介绍如何验证是否已在 消息处理器。

即使您使用令牌 conf_http_HTTPTransport.io.timeout.millis 来设置 消息处理器上的 I/O 超时,您需要验证实际属性 已为 HTTPTransport.io.timeout.millis 设置新值。

  1. 在消息处理器计算机上,搜索属性 HTTPTransport.io.timeout.millis 位于 /opt/apigee/edge-message-processor/conf 目录中,然后检查它 设置了新值,如下所示:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. 如果在消息处理器上成功设置了新的 I/O 超时值,则上述 命令会显示 http.properties 文件中的新值。
  3. 将 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 秒。

  4. 如果您仍然看到属性 HTTPTransport.io.timeout.millis 的旧值, 然后确认您已遵循 正确配置消息处理器上的 I/O 超时。如果您有 遗漏了任何步骤,请重新正确地重复所有步骤。
  5. 如果您仍然无法修改 I/O 超时,请联系 Apigee Edge 支持

下一步是什么?

了解 <ph type="x-smartling-placeholder"></ph> 在路由器上配置 I/O 超时