簡體   English   中英

Azure 作為消息隊列的持久函數

[英]Azure Durable Functions as Message Queue

我有一個無服務器 function 接收訂單,每天大約 30 個。 這個 function 依賴於第三方 API 來執行一些額外的查找和檢查。 但是,這個外部端點不是 100% 可靠,如果另一個 API 在幾個小時(或更長時間......)內不可用,我需要能夠存儲訂單請求。

我最初的想法是將 function 分成兩部分,第一部分將接收訂單,進行一些初始檢查,例如驗證訂單,然后將請求發布到消息隊列或發布/訂閱系統中。 另一方面,有一個消費者讀取訂單並嘗試執行 API 請求,如果 API 不可用,訂單將被發送回隊列。

然而,有人建議我簡單地使用 Azure 持久 Function 來處理請求,並將當前積壓存儲在 function state 中,使用聚合器模式(特別是因為 API 將在 99.99..% 的時間內工作)。 這將使架構更簡單。

使用一個比另一個有什么優點/缺點,我是否遺漏了任何重要的考慮因素? 如果您有任何見解或其他建議,我將不勝感激。 讓我知道是否需要其他信息。

您可以使用 Durable Task Framework 或 Azure 存儲或服務總線隊列來解決此問題,但在您的事務量下,我認為這會使解決方案過於復雜。

如果您每天要處理約 30 個訂單,請考慮一種更簡單的解決方案:

  • 使用Polly ,這是一個得到良好支持的彈性和容錯框架。
  • 將請求信息寫入您的數據庫。 偶爾讀取 Azure Function 計時器觸發器並完成處理未標記為完成的訂單。

當您的工作量很大時,Durable Task Framework 非常有用。 但是這個框架有一個不平凡的學習曲線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM