查看 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:
|
這是「訊息處理者」執行下列步驟的時間上限:
如果後端伺服器在這個逾時期間內沒有回應,則 訊息處理器逾時。
根據預設,這個屬性會採用
訊息處理器的 如果此屬性已經過特定 API Proxy 的新逾時值修改, 那麼只有該 API Proxy 會受到影響 |
HTTPTransport.io.timeout.millis
|
訊息處理器 |
這是「訊息處理者」執行下列步驟的時間上限:
如果後端伺服器在這個逾時期間內沒有回應,則 訊息處理器逾時。 這個屬性用於這個訊息處理器上執行的所有 API Proxy。
此屬性的預設值為
您可以修改這項屬性,方法如下:
設定訊息處理器的 I/O 逾時,或
在 API 中設定 |
事前準備
使用本文件中的步驟前,請務必先瞭解下列主題:
- 如果您不熟悉 I/O 逾時,請參閱
io.timeout.millis
屬性 中的說明 TargetEndpoint 傳輸屬性規格。 - 如果您不熟悉為 Private Cloud 設定屬性的方式,請參閱 如何設定 Edge。
- 請務必遵循 設定 I/O 逾時的最佳做法。
設定 API Proxy 的 I/O 逾時
下列 API Proxy 位置可設定 I/O 逾時:
- 目標端點
- 服務呼叫政策
設定 API Proxy 目標端點的 I/O 逾時
本節說明如何在 API Proxy 目標端點中設定 I/O 逾時。
您可以透過屬性 io.timeout.millis
設定 I/O 逾時,
代表 I/O 逾時值 (以毫秒為單位)。
- 在 Edge UI 中,選取要設定新 Pod 的特定 API Proxy I/O 逾時值。
- 選取您要修改的特定目標端點。
- 在
io.timeout.millis
TargetEndpoint
設定中的<HTTPTargetConnection>
元素。 - 儲存對 API Proxy 所做的變更。
舉例來說,如要將 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>
設定 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 逾時時間
元素時,請執行以下操作:
- 在 Edge UI 中,選取要設定哪個特定 API Proxy 服務呼叫政策的新 I/O 逾時值。
- 選取要修改的服務摘要政策。
- 在
<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>
- 儲存對 API Proxy 所做的變更。
io.timeout.millis 屬性
如要在服務呼叫政策中設定 I/O 逾時,請使用
io.timeout.millis
屬性,請執行以下操作:
- 在 Edge UI 中,選取要設定的特定 API Proxy ServiceCALL 政策的新 I/O 逾時值。
- 選取要修改的服務摘要政策。
- 在
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>
- 儲存對 API Proxy 所做的變更。
設定訊息處理器的 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
- 在屬性檔案中加入下列格式的 1 行,並將
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 逾時
本節將說明如何驗證 I/O 逾時是否已成功修改 訊息處理器。
雖然使用 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 秒