簡體   English   中英

REST API 中的並發控制

[英]Concurrency control in REST APIs

REST API 是否應該實現並發控制來控制對資源的幾乎同時修改?

例如,想象一個應用程序就像一個 Wiki,用戶可以在其中閱讀、編寫和編輯文章。 現在假設用戶 Bob 和用戶 Mary 同時修改同一篇文章,但 Bob 比 Mary 更快地更新文章並提交他的更改。 當 Mary 提交她的更改時,她會覆蓋 Bob 的更改。 這對 Bob 來說是個壞消息,因為他的更改丟失了。

避免這種情況的最佳方法是什么? 為此通常使用哪些技術?

避免這種情況的最佳方法是什么? 為此通常使用哪些技術?

在一般情況下,條件請求

簡短版本:您將驗證器前提條件頭結合起來以確保“第一個作者獲勝”語義。 對資源的不安全請求包括對預期版本的引用。 如果在處理您的請求時資源不在預期版本上,您將收到412 Precondition Failed響應,然后您選擇適當的補救措施。

專門針對共享創作場景,如您所描述的那樣? 您可能想要研究無沖突復制數據類型 (CRDT)。 Kleppmann 博士的演講非常平易近人:你可以從Goto 2016 的這個開始; 或查找他的書設計數據密集型應用程序

暫無
暫無

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

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