[英]Fallback for DynamoDB with SQS
我們有一個同步的 REST 端點,除了將項目保存到 DynamoDB 數據庫之外,它還會進行其他處理,以供以后使用。
如果由於任何類型的異常導致數據庫保存失敗,則要求不出錯。
我們如何處理整個區域中 dynamo db 出現故障的情況(罕見但可能)。發布到 SQS 並通過 ping 它(ListTables 或 ping)有一個單獨的進程消耗並保存到 DynamoDB 是否是正確的模式。
我們應該退回到另一個區域還是發布到 SQS? 是否值得使用resilience4j斷路器模式?
讓 API 簡單地將請求排隊到 SQS 是一種常見模式。 這有很多好處,例如允許更高的吞吐量、將生產者和消費者解耦以及更好的容錯性。
這將是一個很好的設計,但是您的 REST API 將不再是同步的,並且調用者將不太知道操作是否已成功處理,因此您可能需要添加另一個端點來獲取請求的狀態。
我對 resilence4j 斷路器不是非常熟悉,但這可能不是必需的,因為如果這是您尋求的主要好處,亞馬遜 SDK 已經內置了重試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.