上门陪玩app开发,软件搭建,程序制作、系统设计彧昪翀
像游戏陪玩源码这种涉及订单交易的程序,在开发时需要特别注意重复提交问题,前端提交后锁住按钮或服务端加上判断等方式,虽然可以起到作用,但只能解决一部分问题,并不能完美解决,那么在游戏陪玩源码开发中还可以采用什么方式呢?
一、服务端收到重复请求的可能场景
1、如果游戏陪玩源码前端把关不严,就有可能会出现用户点击完提交按钮,但提交按钮未被禁用的情况,在这种情况下,如果用户点击多次提交按钮,就会向服务端发起多次请求。
2、如果游戏陪玩源码程序出现错误或遇到攻击行为,就会出现对同一业务发起多次服务请求的情况。
3、如果在游戏陪玩源码前端或后端设置的重试逻辑发生异常,就会出现一次业务多次请求服务的情况。
4、如果在游戏陪玩源码的多线程和分布式环境下,由于数据一致性导致重复判断失效,就会出现业务被重复处理的情况。
二、用限流解决重复提交问题
1、前端把关不严
在游戏陪玩源码开发服务端时,可以对用户提交的时间跨度进行限流,例如设置为5秒1次,则用户在5秒内只能进行一次提交操作,如果出现了重复提交操作前端会向用户提示服务端返回的错误码,并跳转到结果查询页面。
2、程序出现错误
在游戏陪玩源码开发时,服务端可以对同一用户的提交进行时间跨度的限流,在规定时间内如果出现了重复提交的情况则给予像增加限流时限这种类型的限流惩罚,,以此来降低外部程序异常为服务的影响。
3、程序重试
在游戏陪玩源码中,只需要在业务的发起处进行重试设置,像中间服务发起提交行为就没有必要进行重试设置,限流处理可以在上层引入,并针对合适的限流目标设置适合的限流阈值和限流时间跨度,像比较可靠的内部服务就没有引入限流的必要。
4、重复判断失效
在游戏陪玩源码中,可以通过分布式一致性的限流算法保证重复判断结果的有效性,在规定的时间段内只进行一次提交操作,这样业务就不会被重复处理了。
其实限流也并不是解决重复提交问题完美的方式,但却是一种通用且成本很低的方式,相比其他方法而言,限流能在有限的成本中,很大程度的降低重复提交。限流在实现时,还需要游戏陪玩源码前后端的其他配合,这样才能发挥出更好的效果。