設定訊息處理工具的 I/O 逾時

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

本文說明如何設定 Apigee Edge 訊息處理器的 I/O 逾時。

訊息處理器上的 I/O 逾時時間代表訊息處理者 等待接收來自後端伺服器的回應,或等待通訊端準備寫入 將要求傳送至後端伺服器

訊息處理器 I/O 逾時預設值為 55 seconds。此逾時設定 經期適用 指向在目標端點設定和 Service 摘要中設定的後端伺服器 定義您的 API Proxy 政策

「訊息處理器」的 I/O 逾時設定可透過預設值 55 seconds。您可以在下列位置設定這項功能:

  • 在 API Proxy 中
    • 目標端點
    • 服務呼叫政策
  • 在訊息處理器中

下列屬性可控制訊息處理器的 I/O 逾時:

資源名稱 位置 說明
io.timeout.millis

API Proxy:

  • 目標端點
  • 服務呼叫政策

這是「訊息處理者」執行下列步驟的時間上限:

  • 在建立 連線並傳送要求至後端伺服器,或
  • 等待通訊端準備就緒,訊息處理器將要求傳送至 後端伺服器

如果後端伺服器在這個逾時期間內沒有回應,則 訊息處理器逾時。

根據預設,這個屬性會採用 訊息處理器的 HTTPTransport.io.timeout.millis 屬性。 預設值為 55 seconds

如果此屬性已經過特定 API Proxy 的新逾時值修改, 那麼只有該 API Proxy 會受到影響

HTTPTransport.io.timeout.millis 訊息處理器

這是「訊息處理者」執行下列步驟的時間上限:

  • 建立連線後,等待接收來自後端伺服器的回應 並將要求傳送至後端伺服器,或
  • 等待通訊端準備就緒,訊息處理器將要求傳送至 後端伺服器

如果後端伺服器在這個逾時期間內沒有回應,則 訊息處理器逾時。

這個屬性用於這個訊息處理器上執行的所有 API Proxy。

此屬性的預設值為 55 seconds

您可以修改這項屬性,方法如下: 設定訊息處理器的 I/O 逾時,或 在 API 中設定 io.timeout.millis 屬性來覆寫這個值 Proxy 級別

事前準備

使用本文件中的步驟前,請務必先瞭解下列主題:

,瞭解如何調查及移除這項存取權。

設定 API Proxy 的 I/O 逾時

下列 API Proxy 位置可設定 I/O 逾時:

  • 目標端點
  • 服務呼叫政策

設定 API Proxy 目標端點的 I/O 逾時

本節說明如何在 API Proxy 目標端點中設定 I/O 逾時。 您可以透過屬性 io.timeout.millis 設定 I/O 逾時, 代表 I/O 逾時值 (以毫秒為單位)。

,瞭解如何調查及移除這項存取權。
  1. 在 Edge UI 中,選取要設定新 Pod 的特定 API Proxy 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 逾時 設定:

    使用後端伺服器的網址的目標端點設定範例

    <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 Proxy 所做的變更。

設定 API Proxy 服務呼叫政策中的 I/O 逾時設定

本節說明如何在應用程式的 ServiceNotify 政策中設定 I/O 逾時 並存取 API Proxy您可以透過 <Timeout> 元素設定 I/O 逾時 或 io.timeout.millis 屬性。<Timeout> 元素和 io.timeout.millis 屬性代表 I/O 逾時值 (以毫秒為單位)。

,瞭解如何調查及移除這項存取權。

您可以使用下列其中一個方法,在 ServiceSummary 政策中設定 I/O 逾時:

  • <Timeout> 元素。
  • io.timeout.millis 屬性。

逾時元素

使用 <Timeout> 設定 Service callout 政策中的 I/O 逾時時間 元素時,請執行以下操作:

  1. 在 Edge UI 中,選取要設定哪個特定 API Proxy 服務呼叫政策的新 I/O 逾時值。
  2. 選取要修改的服務摘要政策。
  3. <Timeout> <ServiceCallout> 設定。

    舉例來說,如要將 I/O 逾時改為 120 秒,請加入以下這行程式碼:

        <Timeout>120000</Timeout>
    

    由於 <Timeout> 元素是以毫秒為單位,因此 120 秒為 120000

    以下範例說明如何在 Service callout 中設定 I/O 逾時 使用 <Timeout> 元素處理政策:

    使用後端伺服器網址的服務摘要政策設定示例

    <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 Proxy 所做的變更。

io.timeout.millis 屬性

如要在服務呼叫政策中設定 I/O 逾時,請使用 io.timeout.millis 屬性,請執行以下操作:

  1. 在 Edge UI 中,選取要設定的特定 API Proxy ServiceCALL 政策的新 I/O 逾時值。
  2. 選取要修改的服務摘要政策。
  3. io.timeout.millis <HTTPTargetConnection> 元素。

    舉例來說,如要將 I/O 逾時變更為 120 秒,請新增下列區塊 程式碼:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    由於 io.timeout.millis 屬性是以毫秒為單位,因此 120 秒為 120000

    以下範例說明如何設定目標端點中的 I/O 逾時 設定:

    使用後端伺服器網址的服務摘要政策設定示例

    <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 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 Proxy 所做的變更。

設定訊息處理器的 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. 在屬性檔案中加入下列格式的 1 行,並將 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 逾時

本節將說明如何驗證 I/O 逾時是否已成功修改 訊息處理器。

雖然使用 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」設為新值 120000http.properties。這表示 I/O 逾時設定已成功設定 時間到 120 秒

  4. 如果仍看到 HTTPTransport.io.timeout.millis 屬性的舊值, 請確認您已遵循 正確設定訊息處理器的 I/O 逾時。如果 錯過任何步驟,請再次正確重複所有步驟。
  5. 如果還是無法修改 I/O 逾時,請與 Apigee Edge 支援

接下來呢?

瞭解 設定路由器的 I/O 逾時