當前位置:名人名言大全網 - 經典說說 - “spring cloud”(39)使用分布式鎖來控制微服務的重復請求。

“spring cloud”(39)使用分布式鎖來控制微服務的重復請求。

通常我們可以通過前端的防抖和節流來解決短時間內重復提交請求的問題。如果網絡問題、Nginx重試機制、微服務佯重試機制或者用戶故意繞過前端的防抖和節流設置直接頻繁發起請求,系統的防重復請求就會失敗,甚至導致後臺出現多條重復記錄。這時,我們需要考慮在後臺添加防重復設置。

考慮到微服務的分布式場景,本文采用Redisson分布式鎖+自定義註釋+AOP來實現後臺防止重復請求的功能。基本實現思路是:在需要防復制的接口上添加自定義防復制註釋,設置防復制參數,通過AOP攔截請求參數,根據註釋配置生成分布式鎖的密鑰,設置生效時間。每次請求訪問時,您都會嘗試獲取鎖。如果妳得到它,妳將執行它。如果取不到,說明請求在設定的重復請求間隔內,會返回提示信息“不要頻繁請求”。

相關參考:

1.通過SpringExpression獲取的防重復配置項及相應參數:/p /p/77895a822237

2.Redisson分布式鎖及相關工具:/wsh _寧靜/article/details/115326052。

GitEgg: GitEgg是壹個開源免費的企業級微服務應用開發框架,旨在整合當前主流穩定的開源技術框架,集成最佳的常用項目解決方案,實現可以直接使用的微服務快速開發框架。

GitHub-WMZ 1930/git egg:git egg是壹個開源免費的企業級微服務應用開發框架,旨在整合當前主流穩定的開源技術框架,集成常用的最佳項目解決方案,實現可以直接使用的微服務快速開發框架。