與外部系統整合 external-systems
本頁介紹Journey Optimizer在整合外部系統時提供的各種護欄,以及最佳實務:如何使用上限API最佳化外部系統的保護、如何設定歷程逾時,以及重試如何運作。
Journey Optimizer 可讓您透過自訂資料來源與自訂動作來設定與外部系統的連線。 舉例來說,這可讓您利用來自外部訂房系統的資料,豐富您的歷程,或是使用Epsilon或Facebook等協力廠商系統傳送訊息。
整合外部系統時,您可能會遇到幾個問題:系統可能緩慢、停止回應,或是可能無法處理較大的磁碟區。 Journey Optimizer提供數個護欄,可保護您的系統避免過載。
所有外部系統的效能都不同。 您需要調整設定以符合使用案例。
Journey Optimizer執行外部API呼叫時,技術護欄會依照以下方式執行:
-
套用上限或節流規則:如果達到最大速率,則會捨棄剩餘呼叫或將其排入佇列。
-
逾時並重試:如果達到上限或節流規則,Journey Optimizer會嘗試執行呼叫,直到逾時期間結束時為止。
cacheDuration設定之間至少保留一分鐘的緩衝區,尤其是在工作負荷繁重的情況下,以避免到期不相符和401錯誤。上限和節流API capping
關於上限和節流API
當設定資料來源或動作時,您需建立與系統的連線,以擷取要用於歷程的其他資訊,或傳送訊息或 API 呼叫。
歷程 API 每秒最多支援 5,000 個事件,但某些外部系統或 API 可能沒有等效的輸送量。若要防止這些系統超載,您可以使用 上限 和節流 API來限制每秒傳送的事件數目。
歷程每次執行 API 呼叫時,都會透過 API 引擎。如果您使用上限API,在達到API中設定的上限時,將會拒絕呼叫,或是將呼叫排入最多6小時的佇列,並在您使用節流API時,會儘快以收到的順序處理呼叫。
例如,假設您已為外部系統定義每秒200次呼叫的上限或節流規則。 10 個不同歷程的自訂動作會呼叫您的系統。 如果一個歷程每秒收到 300 個呼叫,則將使用 200 個可用插槽,並捨棄或將剩餘的 100 個插槽加入佇列。由於已超過最大速率,其他 9 個歷程將沒有任何插槽。 此詳細程度有助於保護外部系統免於過載及損毀。
如需如何使用API的詳細資訊,請參閱下列章節:
Adobe Journey Optimizer API檔案提供API的詳細說明
資料來源和自訂動作容量 capacity
對於外部資料來源,每秒的呼叫數上限為 15。 如果超過此限制,系統會根據正在使用的 API 將其他呼叫捨棄或排入佇列。可以透過聯絡 Adobe 將端點加入允許清單,以提高這項針對私人外部資料來源的限制,但此選項不適用於公開外部資料來源。* 了解如何設定資料來源。
對於自訂動作,您需要評估外部 API 的容量。 例如,如果Journey Optimizer每秒傳送1000次呼叫,而您的系統僅支援每秒200次呼叫,則您需要定義上限或節流設定,讓系統不會飽和。 了解如何設定動作
回應時間緩慢的端點 response-time
當端點的回應時間超過0.75秒時,其自訂動作呼叫會透過專用的慢速自訂動作服務 (而非預設服務)進行路由。
此緩慢自訂動作服務每30秒套用150,000次呼叫的上限限制。 此限制會使用滑動視窗來執行,滑動視窗可從該30秒期間內的任何毫秒開始。 視窗一旦滿滿,就會拒絕其他呼叫,並出現上限錯誤。 系統不會等待下一個固定間隔,而是在達到30秒臨界值後立即開始上限設定。
由於速度緩慢的端點會導致管道中所有佇列動作的延遲,因此建議不要使用回應時間緩慢的端點來設定自訂動作。 將此類動作路由至緩慢的服務有助於保護整體系統效能,並防止其他自訂動作增加延遲。
逾時和重試 timeout
如果符合上限或節流規則,則會套用逾時規則。
在每個歷程中,您可以定義逾時持續時間。 這可讓您設定呼叫外部系統時的最長持續時間。 逾時期間是在歷程的屬性中設定。 請參見此頁面。
此逾時對於所有外部呼叫(自訂動作和自訂資料來源中的外部API呼叫)都是全域的。 預設為30秒。
在定義的逾時期間,Journey Optimizer會嘗試呼叫外部系統。 在第一次呼叫後,最多可以執行三次重試,直到逾時持續時間結束為止。 無法變更重試次數。
每個重試使用一個插槽。 如果您有每秒100次呼叫的上限,且您的每個呼叫需要重試兩次,則速率會降至每秒30次呼叫(每個呼叫使用3個槽:第一次呼叫和兩次重試)。
逾時期間值取決於使用案例。 如果您想要快速傳送訊息(例如,當使用者端進入商店時),則您不想設定漫長的逾時。 此外,逾時時間越長,放入佇列中的專案就越多。 這可能會大幅影響效能。 如果Journey Optimizer每秒執行1000次呼叫,保留5或15秒的資料會迅速讓系統不知所措。
以逾時5秒為例。
-
第一個呼叫持續少於5秒:呼叫成功,不會執行重試。
-
第一個呼叫會持續更長的5秒:呼叫已取消,而且不會重試。 在報表中會計為逾時錯誤。
-
第一次呼叫在2秒後失敗(外部系統傳回錯誤):如果有上限插槽,重試還剩3秒。
- 如果在5秒結束前三次重試其中一次成功,則會執行呼叫,而且不會發生錯誤。
- 如果在重試期間到達逾時持續時間的結尾,則會取消呼叫,並在報表中計為逾時錯誤。
常見問題 faq
您將找到有關整合Journey Optimizer與外部系統的常見問題集。
需要更多詳細資訊嗎? 使用此頁面底部的意見回饋選項來提出您的問題,或與Adobe Journey Optimizer社群連絡。
啟用IP Proxy並且在目標端點上定義節流設定後,連線數量會根據速率(這些是預估值,不保證數量):
- 200到2000 c/s:50個連線
- 2000至3000之間:75個連線
- 3000到4000之間:100個連線
- 4000到5000之間:125個連線
如果端點未定義節流設定,則Journey Optimizer的引擎會設計為放大,並且可能會有大量的連線(超過2,000個)。 為了取得有限的連線數量,客戶需要使用節流設定。