如何利用限流解決遊戲陪玩app開發中的重複提交問題?
問題
select count(*) from table where mobile = 'xxx'
方案
限流方案
實現
Install-Package FireflySoft.RateLimit.AspNetCore
dotnet add package FireflySoft.RateLimit.AspNetCore
<ItemGroup><PackageReference Include="FireflySoft.RateLimit.AspNetCore" Version="2.*" /></ItemGroup>
public void ConfigureServices(IServiceCollection services){ ... services.AddRateLimit(new InProcessFixedWindowAlgorithm( new[] { new FixedWindowRule() { Id = "1", ExtractTarget = context => { // 限流的目標:使用者Id,這裡假設它是從HTTP Header中傳遞過來的 return (context as HttpContext).Request.GetTypedHeaders().Get<string>("userId"); }, CheckRuleMatching = context => { // 在這裡判斷當前請求是否 “提交行為”,提交行為才進行限流處理 var path = (context as HttpContext).Request.Path.Value; if(path == "/Comapny/Add" ||path == "/Comapny/Update" ||path == "/Goods/Purchase" ||path == "/Goods/ChangePrice" ||path == "/Order/Pay" ||path == "/Order/Cancel"){ return true; } return false; }, Name = "使用者提交行為限流", LimitNumber = 1, // 限流閾值 StatWindow = TimeSpan.FromSeconds(5), //限流的時間視窗,這裡是5秒 StartTimeType = StartTimeType.FromNaturalPeriodBeign } }) ); ...}public void Configure(IApplicationBuilder app, IWebHostEnvironment env){ ... app.UseRateLimit(); ...}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996194/viewspace-2845670/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring Boot + Redis 解決陪玩平臺原始碼重複提交問題Spring BootRedis原始碼
- 解決表單重複提交的問題
- 遊戲陪玩app開發中,Mysql的sql優化方法遊戲APPMySql優化
- 如何用分散式鎖解決陪玩平臺原始碼中的併發問題?分散式原始碼
- 遊戲陪玩app開發,高併發系統如何設計?遊戲APP
- 遊戲陪玩APP遊戲APP
- 測試遊戲陪玩app開發中的啟動效能,需要這樣做遊戲APP
- 遊戲陪玩app開發,訊息可靠性的實現遊戲APP
- 在遊戲陪玩系統開發中,如何進行效能測試?遊戲
- 遊戲陪玩app原始碼開發,常用的倒數計時功能如何實現?遊戲APP原始碼
- 什麼是遊戲陪玩app原始碼開發的過度設計,如何避免?遊戲APP原始碼
- 遊戲陪玩原始碼的輪詢鎖,使用時遇到的問題與解決方案遊戲原始碼
- 遊戲陪玩app開發,前端實現一個輪詢需要如何做?遊戲APP前端
- strust2 重複提交的問題Rust
- 簡單介紹redis分散式鎖解決表單重複提交的問題Redis分散式
- 分散式環境下利用快取解決重複性問題分散式快取
- 8 種方案解決重複提交問題!你選擇哪一種呀?
- 關於ajax提交表單,重複提交解決方法
- 提高遊戲陪玩app開發水準,熟練掌握正規表示式遊戲APP
- 遊戲陪玩app原始碼開發,啟動速度優化與監控遊戲APP原始碼優化
- 在遊戲陪玩原始碼開發中,兩種清空陣列的方式遊戲原始碼陣列
- PHP防止表單重複提交的解決方法PHP
- 解決winform窗體重複建立問題ORM
- 解決生產日誌重複列印的問題
- 解決alertmanager重複傳送訊息的問題
- 如何在遊戲陪玩app原始碼中實現簡訊驗證碼登入?遊戲APP原始碼
- 如何利用不同模式增加遊戲的重玩價值模式遊戲
- 利用函式索引解決複雜的約束問題函式索引
- 快速解決mongodb出現id重複問題MongoDB
- 重複登入問題最終解決方法
- Springboot+Redisson自定義註解一次解決重複提交問題(含原始碼)Spring BootRedis原始碼
- 遊戲陪玩系統開發,架構設計的開閉原則是如何實現的?遊戲架構
- 解決Linq.ToDictionary()時的鍵重複問題
- 前端如何防止介面重複提交前端
- 資料安全,是陪玩遊戲系統時刻關注的問題遊戲
- 利用 Transform 解決模組化開發服務呼叫問題ORM
- 分散式重複提交問題架構設計思路分散式架構
- 解決 HttpServletRequest 的輸入流不能重複讀的問題HTTPServlet