当前位置: 首页 > 科技观察

弱网环境测试和重复投稿总结

时间:2023-03-19 16:35:00 科技观察

1.弱网环境测试所谓弱网环境,简单的说就是网络质量不好导致丢包和延迟。具体现象是app响应很慢。测试工具使用了一个强大的fillder(没用过的自己google一下),fiddler通过延迟发送或接收数据的时间来模拟限速。设置方法为:Rules→Performances→SimulateModemSpeeds,然后按Ctrl+r快捷键会自动打开一个CustomRules.js文件,里面包含各种自定义规则。有这么一段话:if(m_SimulateModem){oSession["request-trickle-delay"]="300";oSession["response-trickle-delay"]="150";}表示每延迟300ms发送1kb数据,每延迟150ms下行1kb数据,具体值可以修改,可以自定义限速.定义数据保存后,已经勾选的SimulateModemSpeeds将被取消,只需按照上述步骤重新勾选即可。下面说一下通过fillder调试运行手机app需要的基本设置:设置手机代理IP和端口找到手机的设置-->WLAN-->连接WiFi,长按,弹出修改网络的选项,点击进入,在“显示”中勾选“高级选项”,设置电脑的IP和端口。端口一般为8080,但这个端口可能被占用,可以选择其他端口。2.设置填充物,如下图所示。3.打开应用程序,点击登录功能。发现登录反应慢,可以重复点击。这会导致同一用户的多个登录请求几乎同时发送到服务器。这些请求check是否有checkin的时候,发现当天的记录是空的(还没有写入数据库),这样在高并发的情况下,会写入多条记录到check-同时在记录表中。2、并发重复提交解决方案弱网环境导致的并发重复提交问题在服务器端有一个比较简单的解决方案:利用mysql***索引机制的校验,当有重复数据写入时,会被拒绝拒绝保证数据的完整性。另一种解决方案是使用redis计数器功能。由于redis是单线程原子操作,不存在多线程并发的问题。以userId和年月日为key,每有签到请求进来就加1,如果得到的值等于1,说明这是当天第一次签到,写入数据库,如果大于1,则直接返回“已登录”消息提醒用户。