與外部系統整合 external-systems

本頁介紹Journey Optimizer在整合外部系統時提供的各種護欄,以及最佳實務:如何使用上限API最佳化外部系統的保護、如何設定歷程逾時,以及重試如何運作。

Journey Optimizer 可讓您透過自訂資料來源與自訂動作來設定與外部系統的連線。 舉例來說,這可讓您利用來自外部訂房系統的資料,或利用第三方系統(例如Epsilon或Facebook)傳送訊息,讓您的歷程更為豐富。

整合外部系統時,您可能會遇到幾個問題:系統可能緩慢、停止回應,或是可能無法處理較大的磁碟區。 Journey Optimizer提供數個護欄,可保護您的系統避免過載。

所有外部系統的效能都不同。 您需要調整設定以符合使用案例。

Journey Optimizer執行外部API呼叫時,技術護欄會依照以下方式執行:

  1. 套用上限或節流規則:如果達到最大速率,則會捨棄剩餘呼叫或將其排入佇列。

  2. 逾時並重試:如果達到上限或節流規則,Journey Optimizer會嘗試執行呼叫,直到逾時期間結束時為止。

上限和節流API capping

關於上限和節流API

當設定資料來源或動作時,您需建立與系統的連線,以擷取要用於歷程的其他資訊,或傳送訊息或 API 呼叫。

歷程 API 每秒最多支援 5000 個事件,但某些外部系統或 API 可能沒有等效的輸送量。若要避免這些系統超載,您可以使用 上限節流 API用來限制每秒傳送的事件數。

歷程每次執行 API 呼叫時,都會透過 API 引擎。如果您使用上限API,在達到API中設定的上限時,將會拒絕呼叫,或是將呼叫排入最多6小時的佇列,並在您使用節流API時,會儘快以收到的順序處理呼叫。

例如,假設您已為外部系統定義每秒 200 次呼叫的上限或節流規則。10 個不同歷程的自訂動作會呼叫您的系統。 如果一個歷程每秒收到 300 個呼叫,則將使用 200 個可用插槽,並捨棄或將剩餘的 100 個插槽加入佇列。由於已超過最大速率,其他 9 個歷程將沒有任何插槽。 此詳細程度有助於保護外部系統免於過載及損毀。

IMPORTANT
上限規則 在沙箱層級針對特定端點(呼叫的URL)設定,但全域於該沙箱的所有歷程。 資料來源和自訂動作都有上限。
節流規則 ​僅在生產沙箱針對特定端點進行設定,但會針對所有沙箱的所有歷程進行全域設定。 每個組織只能有一個節流設定。 節流僅適用於自訂動作。
maxCallsCount 值必須大於1。

如需如何使用API的詳細資訊,請參閱下列章節:

API的詳細說明請參閱 Adobe Journey Optimizer API檔案

資料來源和自訂動作容量 capacity

對於​ 外部資料來源,每秒的呼叫數上限為 15。 如果超過此限制,系統會根據正在使用的 API 將其他呼叫捨棄或排入佇列。可以透過聯絡 Adobe 將端點加入允許清單,以提高這項針對私人外部資料來源的限制,但此選項不適用於公開外部資料來源。* 了解如何設定資料來源

NOTE
如果資料來源使用的自訂驗證與用於資料來源的端點不同,則需聯絡 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

如何設定上限或節流規則? 有預設規則嗎?

依預設,沒有上限或節流規則。 規則是使用上限或節流API,在特定端點(呼叫的URL)的沙箱層級定義。 請參閱本節

執行多少次重試? 我可以變更重試次數或定義兩次重試之間的最短等待期間嗎?

對於指定的呼叫,在第一次呼叫之後最多可以執行三次重試,直到逾時持續時間結束為止。 無法變更重試次數和每次重試之間的時間。 請參閱本節

我可以在哪裡設定逾時? 有最大值嗎?

在每個歷程中,您可以定義逾時持續時間。 逾時期間是在歷程的屬性中設定。 逾時持續時間必須介於1秒到30秒之間。 請參閱 本節此頁面.

recommendation-more-help
b22c9c5d-9208-48f4-b874-1cefb8df4d76