銷售伙伴 API 的使用方案和速率限制
API 的可靠性取決于確定您的容量和資源,從而滿足應(yīng)用程序隨時間推移而不斷變化的需求。因此您需要試圖了解并預(yù)測使用情況,然后管理請求速率,以防止在使用高峰期出現(xiàn)服務(wù)過多而癱瘓的情況。
在銷售伙伴 API 中,使用令牌存儲桶算法可以限制請求速率。該算法基于一個包含令牌的存儲桶類比,其中每個令牌均可交換以發(fā)出請求。令牌會按照設(shè)定的每秒速率自動添加到存儲桶,直到達(dá)到存儲桶的最大值。最大值也稱為突增速率。每發(fā)出一個請求,存儲桶就會減去一個令牌。如在發(fā)出請求時,存儲桶為空且無可用令牌,則會觸發(fā)限制。受限的請求會導(dǎo)致錯誤響應(yīng)。
使用方案
銷售伙伴 API 操作具有對應(yīng)的使用方案,這些方案指明速率限制。您可以在 API 參考文檔中進行查看。使用方案的定義如下:
-
速率 - 每秒添加到令牌存儲桶的請求數(shù),可用于提交請求且不會受限。如果您在長時間內(nèi)持續(xù)調(diào)用,請保持低于此速率以免請求受限。
-
突增 - 令牌存儲桶的最大值。此數(shù)值也表示在假定可填滿令牌存儲桶的情況下,您在一段時間內(nèi)建立并同時提交的最大請求數(shù)。
動態(tài)使用方案
這項新功能可根據(jù)業(yè)務(wù)的長期需求自動調(diào)整速率限制。
動態(tài)使用方案能夠根據(jù)每個銷售伙伴的當(dāng)前和歷史業(yè)務(wù)需求進行自動調(diào)整。采用多種措施作為規(guī)則,以動態(tài)調(diào)整速率限制。也就是說,對于采用動態(tài)使用方案的任何銷售伙伴 API 操作,您都可以預(yù)測其速率限制的變更。您可以按照 API 參考文檔中發(fā)布的默認(rèn)速率規(guī)劃應(yīng)用程序。但是,由于動態(tài)使用方案旨在根據(jù)時間的推移不斷調(diào)整限制,因此速率在日后會有所變化。當(dāng)您向銷售伙伴 API 操作提交請求時,該操作的當(dāng)前速率限制將發(fā)回至 x-amzn-RateLimit-Limit 響應(yīng)標(biāo)頭。
與亞馬遜商城網(wǎng)絡(luò)服務(wù)(亞馬遜 MWS)的比較
與亞馬遜 MWS 相比,動態(tài)使用方案旨在減少限制。當(dāng)前的亞馬遜 MWS 實行統(tǒng)一的速率限制,不考慮業(yè)務(wù)規(guī)模或隨時間而變化的業(yè)務(wù)需求。借助銷售伙伴 API 中的動態(tài)使用方案,您可以脫離“一刀切”的速率限制,轉(zhuǎn)而使用這個強調(diào)根據(jù)業(yè)務(wù)情況和隨時間而變化的業(yè)務(wù)需求,為每個銷售伙伴調(diào)整速率限制的靈活方案。
主要的設(shè)計改進如下:
-
動態(tài)使用方案會根據(jù)不斷變化的業(yè)務(wù)需求調(diào)整速率限制。為每個銷售伙伴設(shè)置了不同的速率限制。
-
動態(tài)使用方案可自動調(diào)整速率以改善流量性能。
常見問題
通用
我的應(yīng)用程序應(yīng)如何處理 429 響應(yīng)?
429 是一個可重試的狀態(tài)代碼。請再試一次,但重復(fù)受限的請求需要采取后退措施。請參閱 x-amzn-RateLimit-Limit 響應(yīng)標(biāo)頭,查看速率限制是否與您的預(yù)期不同。
如何測試應(yīng)用程序的使用方案?
銷售伙伴 API 測試沙箱采用的是生產(chǎn)使用方案。您可以在沙箱中查看與生產(chǎn)過程相同的速率限制行為。
我的應(yīng)用程序可以完全避免受到限制嗎?
不可以。您無法控制的任何因素都可能導(dǎo)致出現(xiàn)少量的瞬態(tài) 429 代碼。此結(jié)果屬于預(yù)料之中,應(yīng)在您的應(yīng)用程序代碼中加以考慮。
如果我的應(yīng)用程序一直受到限制,該怎么辦?
如果您的應(yīng)用程序始終為受限狀態(tài),您的調(diào)用模式可能需要進一步優(yōu)化。例如:
-
降低調(diào)用頻率,以符合您的速率限制。
-
通過輪詢機制推送通知。
-
盡可能使用批量 API。
對于我的使用實例來說,一次操作的速率限制過低??梢蕴岣呦拗茊??
我們的目標(biāo)是設(shè)置適當(dāng)限制,且高效的調(diào)用模式在理想情況下絕不會受到限制。如果您認(rèn)為我們未正確考慮您的使用實例,煩請?zhí)峤灰粋€支持 TT 予以告知。
當(dāng)我獲得更多授權(quán)時,我應(yīng)用程序的受限頻率會增加嗎?
不會。所有使用方案都是根據(jù)應(yīng)用程序-銷售伙伴成對提供的,因此您的吞吐量會隨客戶自然增長。
速率限制是否會改變?
我們可以隨時提高速率限制。如果我們降低了 API 參考文檔中發(fā)布的速率限制,我們會提前告知您,以便您在更改生效之前可以及時更新和測試您的應(yīng)用程序。
動態(tài)使用方案的速率限制(如下所述)會根據(jù)業(yè)務(wù)情況自動調(diào)高或調(diào)低。
動態(tài)使用方案
動態(tài)使用方案的總體目標(biāo)是什么?
根據(jù)歷史使用情況,我們注意到同類使用方案在某些情況下負(fù)載過大,而且更糟糕的是,對于其他情況而言,卻負(fù)載不足。動態(tài)使用方案的目標(biāo)是利用給定調(diào)用的已知背景為任何情況設(shè)置適當(dāng)限制。
影響動態(tài)使用方案的因素有哪些?
一般來說,速率限制由銷售伙伴業(yè)務(wù)的類型、規(guī)模和行為所決定。
特定使用方案的相關(guān)限制會多久更改一次?
我們的目標(biāo)是防止對限制頻繁地進行破壞性更改。通常情況下,在觀察到有需求時就會立即更改限制。
我應(yīng)該如何給我的應(yīng)用程序編碼以適應(yīng)動態(tài)限制?
以下是一些關(guān)于動態(tài)速率限制的良好應(yīng)用程序行為的建議。
-
讀取速率限制標(biāo)頭。
-
不要對計時器進行硬編碼。
-
自然而然地針對事件進行編碼,而非循環(huán)運行。如果您照做,根本不需要計時器。在重新定價的示例中,根據(jù)價格通知更新價格,而非每 n 秒更新一次價格。
銷售伙伴 API 中有哪些部分需要使用動態(tài)使用方案?
用于訂單的銷售伙伴 API。
為什么不是所有操作都支持動態(tài)使用方案?文章來源:http://www.zghlxwxcb.cn/news/detail-426852.html
我們正在努力研究中\(zhòng)!文章來源地址http://www.zghlxwxcb.cn/news/detail-426852.html
到了這里,關(guān)于亞馬遜銷售伙伴 API 的使用方案和速率限制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!