自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

弱網(wǎng)環(huán)境測試與重復(fù)提交問題總結(jié)

網(wǎng)絡(luò) 網(wǎng)絡(luò)優(yōu)化 網(wǎng)絡(luò)運維
我們的做的那款A(yù)pp有個簽到功能,該功能的基本邏輯是:用戶當(dāng)天簽到時會先去數(shù)據(jù)庫查詢一下是否已經(jīng)簽到過,如果沒有則插入數(shù)據(jù)作為當(dāng)天的簽到記錄。有段時間經(jīng)常發(fā)現(xiàn)會有重復(fù)簽到的問題,某些用戶幾乎同一個時間點會有多次簽到記錄,后來經(jīng)過排查發(fā)現(xiàn)在弱網(wǎng)環(huán)境會出現(xiàn)這種情況,詳情如下。

一、弱網(wǎng)環(huán)境測試

所謂弱網(wǎng)環(huán)境簡單來說就是網(wǎng)絡(luò)質(zhì)量較差導(dǎo)致丟包和延遲等現(xiàn)象,具體現(xiàn)象就是app響應(yīng)很慢。測試工具用的是強大的fillder(沒用過的自行g(shù)oogle),fiddler是通過延遲發(fā)送或接收數(shù)據(jù)的時間來模擬限速,設(shè)置方法是:Rules → Performances → Simulate Modem Speeds,然后按Ctrl+r快捷鍵會自動打開一個CustomRules.js文件,里面有各種自定義的規(guī)則。其中有這么一段:

if (m_SimulateModem) {
oSession["request-trickle-delay"] = "300";
oSession["response-trickle-delay"] = "150";
}

意思是每延遲300ms發(fā)送1kb的數(shù)據(jù),每延遲150ms下行1kb的數(shù)據(jù),具體值可以修改,自定義限速。定義完數(shù)據(jù)保存之后,已經(jīng)勾選的SimulateModem Speeds會被取消,按照上面的步驟再次將其勾選即可。

再說下通過fillder來調(diào)試手機app運行所需要的基本設(shè)置:

設(shè)置手機代理IP和端口

找到手機的設(shè)置–>WLAN–>已連接的WiFi,長按,彈出修改網(wǎng)絡(luò)的選項,點擊進入,在“顯示高級選項”前打鉤,將電腦的IP和端口設(shè)置進去,端口一般選的是8080,但是可能會出現(xiàn)此端口被占用的情況,選擇其他端口也可以。

2.設(shè)置filler,如下圖

 弱網(wǎng)環(huán)境測試與重復(fù)提交問題總結(jié)

3.打開app點擊簽到功能,發(fā)現(xiàn)簽到響應(yīng)緩慢,可重復(fù)點擊,這就造成了幾乎同一時間,同一個用戶有多個簽到請求發(fā)送到服務(wù)器,這幾個請求檢查是否已經(jīng)簽到時發(fā)現(xiàn)當(dāng)天記錄為空(還都沒有來得及寫進到數(shù)據(jù)庫),這樣在高并發(fā)的情況下就會有多條記錄同時寫入簽到記錄表。

二、并發(fā)重復(fù)提交解決方案

弱網(wǎng)環(huán)境所引發(fā)的這個并發(fā)重復(fù)提交問題,在服務(wù)器端有一個比較簡單的解決方案:利用mysql***索引機制的驗證,當(dāng)有重復(fù)數(shù)據(jù)寫入時就會被拒絕,保證數(shù)據(jù)的***性。

另外一種方案是利用redis計數(shù)器特性,由于redis是單線程原子性操作,不存在多線程并發(fā)的問題,將userId和年月日作為key,每次簽到請求進來加1,如果得到的值等于1,說明這是當(dāng)天***次簽到,寫入數(shù)據(jù)庫,如果大于1,則直接返回“已簽到”信息提醒用戶即可。

責(zé)任編輯:何妍 來源: CSDN博客
相關(guān)推薦

2016-06-28 11:28:11

2020-06-22 14:18:02

運維架構(gòu)技術(shù)

2024-03-27 07:55:58

SpringRedis海量

2022-11-11 07:34:43

2022-09-15 17:37:40

網(wǎng)絡(luò)傳輸鏈路數(shù)據(jù)包數(shù)據(jù)擁塞

2024-11-05 09:56:30

2009-11-17 11:30:31

PHP表單

2009-06-05 10:37:52

struts2 國際化表單

2018-03-28 15:07:16

測試環(huán)境vagrant

2013-11-13 14:39:53

表單提交開發(fā)

2024-07-26 07:59:25

2016-01-07 10:47:06

TCP網(wǎng)絡(luò)協(xié)議廣域網(wǎng)

2018-03-21 14:23:39

vagrant測試環(huán)境

2009-09-23 17:52:16

Hibernate概念Hibernate常見

2013-11-13 11:01:14

表單表單重復(fù)提交表單策略

2022-11-15 07:39:48

2022-11-17 07:43:13

2009-09-21 17:59:13

Spring REST

2023-08-24 08:02:19

冪等性API請求

2022-09-13 13:49:05

數(shù)據(jù)庫隔離
點贊
收藏

51CTO技術(shù)棧公眾號