設定訊息處理工具的持續運作逾時

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

本文說明如何為 Apigee Edge 訊息處理器設定保持運作逾時。

訊息處理器上的保持運作逾時可讓單一 TCP 連線從後端伺服器收發多個 HTTP 要求/回應,而不必為每個要求/回應組合開啟新的連線。

訊息處理器上保持運作逾時屬性的預設值是 60 秒。此逾時期間適用於目標端點設定中指定的後端伺服器,以及 API Proxy 的 ServiceCallout 政策中。

您可以根據自身需求,將訊息處理器的保持運作逾時時間從 60 秒的預設值調高或調低。您可以用以下方式設定:

  • 在 API Proxy 中
    • 在目標端點中
    • ServiceCallout 政策中
  • 在訊息處理器上

下列屬性可控制訊息處理器的保持運作逾時:

資源名稱 位置 說明
keepalive.timeout.millis API Proxy:
  • 目標端點
  • ServiceCallout」政策

這是訊息處理者允許單一 TCP 連線收發多個 HTTP 要求/回應的時間上限,而不必針對每個要求/回應組合開啟新連線。

根據預設,這個屬性會採用在訊息處理器中設定 HTTPClient.keepalive.timeout.millis 屬性的值,其中預設值為 60 秒。

如果修改這個屬性,也就是目標端點所用的目標伺服器新的逾時值,或是特定 API Proxy 中的 ServiceCallout 政策,則只有該特定目標伺服器的保持運作時間會受到影響。

HTTPClient.keepalive.timeout.millis 訊息處理器

這是訊息處理者允許單一 TCP 連線收發多個 HTTP 要求/回應的時間上限,而不必針對每個要求/回應組合開啟新連線。

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

此屬性的預設值為 60 秒。

您可以修改這個屬性,如下方「設定訊息處理器的保持運作逾時」一節所述,或者您也可以在 API Proxy 層級設定 keepalive.timeout.millis 屬性來覆寫這個值。

事前準備

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

設定 API Proxy 保持運作逾時

您可以在 API Proxy 的下列位置設定保持運作逾時:

  • 目標端點
  • ServiceCallout」政策

設定 API Proxy 目標端點的保持運作逾時

本節說明如何在 API Proxy 的目標端點中設定保持運作逾時。你可以透過 keepalive.timeout.millis 屬性設定保持運作逾時,該屬性代表保持運作逾時值 (以毫秒為單位)。

  1. 在 Edge UI 中,選取要用來設定新的保持運作逾時值的特定 API Proxy。
  2. 選取您要修改的特定目標端點。
  3. TargetEndpoint 設定的 <HTTPTargetConnection> 元素下方,為含有適當值的屬性新增 keepalive.timeout.millis

    例如,如要將保持運作逾時時間變更為 30 秒,請新增下列程式碼區塊:

    <Properties>
      <Property name="keepalive.timeout.millis">30000</Property>
    </Properties>
    

    由於 keepalive.timeout.millis 屬性以毫秒為單位,因此 30 秒的值為 30000

    以下範例說明如何在 API Proxy 的目標端點設定中設定保持運作逾時:

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

    <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>
    
  4. 儲存對 API Proxy 所做的變更。

設定 API Proxy 的 Service callout 政策保持運作逾時

本節說明如何在 API Proxy 的 ServiceCallout 政策中設定保持運作逾時。您可以透過 the keepalive.timeout.millis 屬性設定保持運作逾時,該屬性代表保持運作逾時值 (以毫秒為單位)。

如要在 ServiceCallout 政策中使用 keepalive.timeout.millis 屬性設定保持運作逾時,請按照下列指示操作:

  1. 在 Edge UI 中,選取要在 ServiceCallout 政策中設定新的保持運作逾時值的特定 API Proxy。
  2. 選取要修改的特定 ServiceCallout 政策。
  3. TargetEndpoint 設定的 <HTTPTargetConnection> 元素下方,為含有適當值的屬性 keepalive.timeout.millis

    例如,如要將保持運作逾時時間變更為 30 秒,請新增下列程式碼區塊:

    <Properties>
      <Property name="keepalive.timeout.millis">30000</Property>
    </Properties>
    

    由於 keepalive.timeout.millis 屬性以毫秒為單位,因此 30 秒的值為 30000

    以下範例說明如何在 API Proxy 的 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>
    

    使用目標伺服器的 Service Call 政策設定範例

    <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>
    
  4. 儲存對 API Proxy 所做的變更。

設定訊息處理器的保持運作逾時

本節說明如何在「訊息處理器」上設定保持運作逾時。您可以透過 HTTPClient.keepalive.timeout.millis 屬性設定保持運作逾時,該屬性代表訊息處理器元件中的保持運作逾時值 (以毫秒為單位)。由於這個屬性已註解於訊息處理器,因此您必須使用特殊語法 conf/http.properties+HTTPClient.keepalive.timeout.millis,如 如何設定 Edge 中的「 設定目前已加註的憑證」一節所述。

如要為訊息處理器設定保持運作逾時,請按照下列步驟操作:

  1. 在訊息處理器電腦上,在編輯器中開啟下列檔案。如果還沒有的話,請建立一個。
    /opt/apigee/customer/application/message-processor.properties
    

    舉例來說,如要使用 vi 開啟檔案,請輸入以下內容:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. 在屬性檔案中加入以下格式的一行,並將 TIME_IN_MILLISECONDS 取代為值:
    conf/http.properties+HTTPClient.keepalive.timeout.millis=TIME_IN_MILLISECONDS
    

    舉例來說,如要將訊息處理器的保持運作逾時變更為 30 秒,請新增以下這一行:

    conf/http.properties+HTTPClient.keepalive.timeout.millis=30000
    
  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. 如果您有多個訊息處理器,請對所有訊息處理器重複上述步驟。

驗證訊息處理器的持續逾時

本節說明如何驗證保持運作逾時是否已在訊息處理器上成功修改。

即使您使用特殊語法 conf/http.properties+HTTPClient.keepalive.timeout.millis 設定訊息處理工具的保持運作逾時,仍須確認實際的 HTTPClient.keepalive.timeout.millis 屬性是否已設定新的值。

  1. 在訊息處理器機器中,在 /opt/apigee/edge-message-processor/conf 目錄中搜尋 HTTPClient.keepalive.timeout.millis 屬性,並檢查是否已以新的值設定,如下所示:
    grep -ri "HTTPClient.keepalive.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. 如果您成功在訊息處理器上成功設定新的保持運作逾時值,則上述指令會在 http.properties 檔案中顯示新的值。

    設定保持運作逾時為 30 秒後,上述指令的範例結果如下:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPClient.keepalive.timeout.millis=30000
    

    請注意,在上述輸出範例中,請注意 http.properties 中的新值 30000 已設為 HTTPClient.keepalive.timeout.millis 屬性。這表示在訊息處理器中,保持運作逾時已成功設為 30 秒。

  3. 如果還是看到屬性 HTTPClient.keepalive.timeout.millis 的舊值,請確認您已正確遵循「設定訊息處理器的保持運作逾時」一文所述的所有步驟。如果您錯過任何步驟,請再次正確重複所有步驟。
  4. 如果您仍然無法修改保持運作逾時,請與 Google Cloud Apigee Edge 支援團隊聯絡。