当前位置: 首页 > news >正文

找人做网站价格聊城做网站建设的公司

找人做网站价格,聊城做网站建设的公司,做网站优化多少钱,闵行20路1.1 概述 所谓幂等: 多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。 基于RESTful API的角度对部分常见类型请求的幂等性特点进行分析 举个例子: 假如你有个某多多 有个服务 服务提供一个接口,结果这个服务部署在…

在这里插入图片描述

1.1 概述

所谓幂等: 多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。
基于RESTful API的角度对部分常见类型请求的幂等性特点进行分析

举个例子:

假如你有个某多多 有个服务 服务提供一个接口,结果这个服务部署在了5台机器上,接着有个接口就是砍一刀的接口。

在这里插入图片描述

然后用户在前端上操作的时候,不知道为啥,总之就是一个砍一个订单 不小心发起了两次砍一刀请求,然后这俩请求分散在了这个服务部署的不同的机器上,结果造成一个用户被砍了扣两次。

所谓幂等性,就是说一个接口,多次发起同一个请求,你这个接口得保证结果是准确的,比如不能多扣款,不能多插入一条数据,不能将统计值多加了1。。

在这里插入图片描述

1.2 需要幂等的场景

1.2.1 网络波动

因网络波动,可能会引起重复请求

1.2.2 MQ消息重复

生产者已把消息发送给MQ,在MQ给生产者返回ack的时候网络中断,故生产者未收到确定消息,生产者认为消息未发送成功。但实际情况是,MQ已成功接收到了消息,在网络重连后,生产者会重新发送刚才的消息,造成MQ接收了重复的消息。

1.2.3 用户重复点击

用户在使用产品时,可能会误操作而触发多笔交易,或因为长时间没有响应,而有意触发多笔交易。

1.2.4 应用使用失败或超时重试机制;
为了考虑系统业务稳定性,开发人员一般设计系统时,会考虑失败了如何进行下一步操作或等待一定时间继续前端的动作的。

1.3 后端解决方案

数据库唯一索引

使用数据库提供的唯一索引来保证数据重复插入,避免脏数据产生
解决场景:新增

token+redis
在这里插入图片描述

● 第一次请求
○ 在后端生成一个唯一的token(比如:key:userid,value:UUID)
○ 将token存储到redis中
○ 将token返回前端

● 第二次请求
○ 在真正处理业务的时候需要携带过来之前的token
○ 到redis中查询token是否存在
○ 如果存在,则正常处理业务,同时删除redis中的token
○ 如果不存在,则操作失败
解决场景:新增、删除、修改

分布式锁

在分布式锁使用的时候,要注意粒度
在操作数据时,先添加一个分布式锁,当操作完成后再释放掉这把锁,同时在操作过程中,如果有人来抢锁,应当抛出异常,即

if (!lock) {log.info("操作作者信息获取锁失败,operator:{}",request.getOperator());throw new BaseBizException("新增/修改失败");
}

操作完成后,释放掉锁,因为幂等问题,通常是一个请求快速过来两次或者多次,所以在释放锁之前让后来的同一个用户的请求,直接失败即可,保证当前方法在短时间之内只能被执行一次,切记控制锁的粒度。

 public SaveOrUpdateUserDTO saveOrUpdateUser(SaveOrUpdateUserRequest request) {// 加入用户,要先取得一把分布式锁,针对的是操作人// 同一个操作人,同时间只能新增用户,避免说重复请求短时间内发生,数据重复灌入// 加分布式锁String userUpdateLockKey = RedisKeyConstants.USER_UPDATE_LOCK_PREFIX + request.getOperator();boolean lock = redisLock.lock(userUpdateLockKey);if (!lock) {log.info("操作作者信息获取锁失败,operator:{}", request.getOperator());throw new BaseBizException("新增/修改失败");}//忽略代码} finally {redisLock.unlock(userUpdateLockKey);}}
http://www.yayakq.cn/news/550081/

相关文章:

  • 网站开发 工具百度app安装免费下载
  • 公司网站建设提纲深圳做网站要
  • 网站标题被别人改了 应该怎么办网线水晶头接法顺序
  • 河北通信建设有限公司网站网站开发的开题报告引言
  • 通信管理局网站备案做网销好的网站
  • 网站设计的流程是怎样的网页制作源码免费
  • 外贸建立网站怎么做做视频网站服务器配置
  • 邦拓网站建设设计高端网页
  • 石家庄市市政建设工程公司网站局域网视频网站开发
  • vs2013做简单的网站邢台信息港招聘
  • 陕西省建设网站 五大员过期我想做代理怎么找厂家
  • 一个虚拟主机绑定2个网站织梦网站模板响应式
  • 厦门网站建设推广虚拟主机网站建设实训总结
  • 推广网站名是什么网站建设php心得体会
  • 用户体验 网站山东省住房和建设厅网站
  • 网站搭建同一页不同按钮不同页面网站开发说明书模板
  • eclipse与jsp网站开发兰州网页制作公司网站
  • 网站制作河南兰州程序开发网站建设
  • 国外流行的内容网站一站式互联网营销平台
  • 找施工队伍去什么网站怎么选择合肥网站建设
  • 中小企业网站建设流程潍坊在线制作网站
  • 宁波led网站建设汽油价格92号最新调整时间
  • 个人做地方网站网站模板下
  • eclipse网站开发流程优秀网站建设多少钱
  • 柳州专业网站优化百度网站地图
  • 建立网站站建设可以吗谷歌浏览器网页版在线
  • 网站公司如何推广网站合肥新房在售楼盘
  • wordpress标签云404错误哈尔滨seo推广公司
  • 男女直接做的视频网站免费观看免费自助建站哪个网站最好
  • 怎么做淘宝客个人网站深圳网站建设简介