與外部系統整合 external-systems
本頁介紹Journey Optimizer在整合外部系統時提供的各種護欄,以及最佳實務:如何使用上限API最佳化外部系統的保護、如何設定歷程逾時,以及重試如何運作。
Journey Optimizer 可讓您透過自訂資料來源與自訂動作來設定與外部系統的連線。 舉例來說,這可讓您利用來自外部訂房系統的資料,或利用第三方系統(例如Epsilon或Facebook)傳送訊息,讓您的歷程更為豐富。
整合外部系統時,您可能會遇到幾個問題:系統可能緩慢、停止回應,或是可能無法處理較大的磁碟區。 Journey Optimizer提供數個護欄,可保護您的系統避免過載。
所有外部系統的效能都不同。 您需要調整設定以符合使用案例。
Journey Optimizer執行外部API呼叫時,技術護欄會依照以下方式執行:
-
套用上限或節流規則:如果達到最大速率,則會捨棄剩餘呼叫或將其排入佇列。
-
逾時並重試:如果達到上限或節流規則,Journey Optimizer會嘗試執行呼叫,直到逾時期間結束時為止。
上限和節流API capping
關於上限和節流API
當設定資料來源或動作時,您需建立與系統的連線,以擷取要用於歷程的其他資訊,或傳送訊息或 API 呼叫。
歷程 API 每秒最多支援 5000 個事件,但某些外部系統或 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 次呼叫,則您需要定義上限或節流設定,以使系統不會飽和。了解如何設定動作
逾時和重試 timeout
如果符合上限或節流規則,則會套用逾時規則。
在每個歷程中,您可以定義逾時持續時間。 這可讓您設定呼叫外部系統時的最長持續時間。 逾時期間是在歷程的屬性中設定。 請參見此頁面。
此逾時對於所有外部呼叫(自訂動作和自訂資料來源中的外部API呼叫)都是全域的。 預設為30秒。
在定義的逾時期間,Journey Optimizer會嘗試呼叫外部系統。 在第一次呼叫後,最多可以執行三次重試,直到逾時持續時間結束為止。 無法變更重試次數。
每個重試使用一個插槽。 如果您有每秒100次呼叫的上限,且您的每個呼叫需要重試兩次,則速率會降至每秒30次呼叫(每個呼叫使用3個槽:第一次呼叫和兩次重試)。
逾時期間值取決於使用案例。 如果您想要快速傳送訊息(例如,當使用者端進入商店時),則您不想設定漫長的逾時。 此外,逾時時間越長,放入佇列中的專案就越多。 這可能會大幅影響效能。 如果Journey Optimizer每秒執行1000次呼叫,保留5或15秒的資料會迅速讓系統不知所措。
以逾時5秒為例。
-
第一個呼叫持續少於5秒:呼叫成功,不會執行重試。
-
第一個呼叫會持續更長的5秒:呼叫已取消,而且不會重試。 在報表中會計為逾時錯誤。
-
第一次呼叫在2秒後失敗(外部系統傳回錯誤):如果有上限插槽,重試還剩3秒。
- 如果在5秒結束前三次重試其中一次成功,則會執行呼叫,而且不會發生錯誤。
- 如果在重試期間到達逾時持續時間的結尾,則會取消呼叫,並在報表中計為逾時錯誤。
常見問題 faq
如何設定上限或節流規則? 有預設規則嗎?
若要建立上限或節流規則,請參閱本節。 依預設,沒有節流規則,但針對所有自訂動作、每個主機和每個沙箱,有一分鐘的時間上限為300,000次呼叫。 此限制是根據客戶使用情況來設定,可保護自訂動作鎖定為目標的外部端點。您必須在以對象為基礎的歷程考慮這一點,透過定義適當的讀取率 (使用自訂動作時為每秒 5000 個設定檔)。如有需要,您可以透過我們的上限/節流API定義較大的上限或節流限制來覆寫此設定。
執行多少次重試? 我可以變更重試次數或定義兩次重試之間的最短等待時間嗎?
對於指定的呼叫,在第一次呼叫之後最多可以執行三次重試,直到逾時持續時間結束為止。 無法變更重試次數和每次重試之間的時間。 請參閱本節。
我可以在哪裡設定逾時? 有最大值嗎?
在每個歷程中,您可以定義逾時持續時間。 逾時期間是在歷程的屬性中設定。 逾時持續時間必須介於1秒到30秒之間。 請參閱此章節和此頁面。