范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

高并发下接口幂等性解决方案

  一、 幂等性概念 在数学里,幂等有两种主要的定义。  1、在某二元运算下,幂等元素是指被自己重复运算(或对于函数是为复合)的结果等于它自己的元素。例如,乘法下唯一两个幂等实数为0和1。 2、某一元运算为幂等的时,其作用在任一元素两次后会和其作用一次的结果相同。例如,高斯符号便是幂等的。 3、一元运算的定义是二元运算定义的特例(详情请见下面)。
  二、 分布式系统中幂等性概念 就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。
  在编程中,一个幂等操作的特点是其任意多次操作所产生的影响与一次执行的影响相同。幂等函数或者幂等方法是指相同参数可以重复执行并获得相同结果的函数。
  这些函数不会影响系统状态,也不用担心重复执行对系统状态造成影响。例如:getPolicyNo()就是一个幂等函数。更复杂的幂等操作是利用唯一交易号(流水号)或者主键来实现。
  三、 幂等场景 查询操作:查询一次或者查询多次,在数据不变的前提下,返回结构都是一样的。查询操作具有天然的幂等性。 删除操作: 删除操作也是幂等的,删除一次和多次最终的实现结构相同,只是返回有差异。(第一次返回影响行数1,后续操作操作返回影响行数0) 唯一索引:防止新增脏数据,例如,支付宝的资金账号和用户账号,每个用户只能有一个资金账号,怎么防止给用户创建了多个账号呢?可以考虑给资金账号表中的用户Id创建唯一索引,所以对应一个用户 只能有一个资金账号。该设计下出现的问题就是,高并发下出现新增报错的情况,再查询一次就已经存在了。这就设计到了类似秒杀系统的一种高并发设计问题了,可关注该系列文章。 token机制,防止页面重复提交。原理上,通过session token实现的,当客户端请求时,服务器会随机生成一个token,并且将Token发给客户端,下次客户端请求时token会随着表单一起提交到服务器。服务器第一次验证通过后,会随即更改token数值这样若用户重复提交,第二次的验证就会失败,即服务端Token数值已经改变,但用户提交表单中的token数值并未改变。 悲观锁,获取数据的时候加锁获取。 select * from table_xxx where id="xxx" for update;  注意:id字段一定是主键或者唯一索引,不然是锁表,会死人的;悲观锁使用时一般伴随事务一起使用,数据锁定时间可能会很长,根据实际情况选用.
  6、乐观锁
  乐观锁只是更新的时候同时带上 更新条件,其他时间不锁表,可以通过 version 或者其他状态条件。
  7、分布式锁
  如果分布式系统,构建全局唯一索引比较困难,唯一性字段没法确认,这个时候就需要引入第三方协调系统,比如 redis 、zookeeper 来实现全局锁功能。获取分布式锁然后做操作,之后释放锁,这其实就是多线程并发的思路。 8、select + insert
  并发不高的后台系统,或者一些任务JOB,为了支持幂等,支持重复执行,简单的处理方法是,先查询下一些关键数据,判断是否已经执行过,在进行业务处理,就可以了。注意:核心高并发流程不要用这种方法; 9、状态机幂等
  在设计单据相关的业务,或者是任务相关的业务,肯定会涉及到状态机(状态变更图),就是业务单据上面有个状态,状态在不同的情况下会发生变更,一般情况下存在有限状态机,这时候,如果状态机已经处于下一个状态,这时候来了一个上一个状态的变更,理论上是不能够变更的,这样的话,保证了有限状态机的幂等。注意:订单等单据类业务,存在很长的状态流转,一定要深刻理解状态机,对业务系统设计能力提高有很大帮助 10、对外提供接口的api如何保证幂等
  如银联提供的付款接口:需要接入商户提交付款请求时附带:source来源,seq序列号;source+seq在数据库里面做唯一索引,防止多次付款(并发时,只能处理一个请求) 。 重点:对外提供接口为了支持幂等调用,接口有两个字段必须传,一个是来源source,一个是来源方序列号seq,这个两个字段在提供方系统里面做联合唯一索引,这样当第三方调用时,先在本方系统里面查询一下,是否已经处理过,返回相应处理结果;没有处理过,进行相应处理,返回结果。注意,为了幂等友好,一定要先查询一下,是否处理过该笔业务,不查询直接插入业务系统,会报错,但实际已经处理了。 四、总结
  幂等与你是不是分布式高并发还有JavaEE都没有关系。关键是你的操作是不是幂等的。一个幂等的操作典型如:把编号为5的记录的A字段设置为0这种操作不管执行多少次都是幂等的。一个非幂等的操作典型如:把编号为5的记录的A字段增加1这种操作显然就不是幂等的。要做到幂等性,从接口设计上来说不设计任何非幂等的操作即可。譬如说需求是:当用户点击赞同时,将答案的赞同数量+1。改为:当用户点击赞同时,确保答案赞同表中存在一条记录,用户、答案。赞同数量由答案赞同表统计出来。总之幂等性应该是合格程序员的一个基因,在设计系统时,是首要考虑的问题,尤其是在像支付宝,银行,互联网金融公司等涉及的都是钱的系统,既要高效,数据也要准确,所以不能出现多扣款,多打款等问题,这样会很难处理,用户体验也不好。

助力两轮电动车出行,易马达布局两轮车换电绿色能源网络REAL100记者李馨婷柯晓斌外卖骑手遍布大街小巷的今天,作为必不可少的短途交通工具,两轮电动车在即时配送领域拥有很大市场。目前,两轮车换电主要面对B端市场用户,服务于外卖骑手快递员等即时配送从15日开抢!最后一批彩云消费券要来了记者从云南省商务厅获悉1月15日将开启第四批彩云消费券的发放值得注意的是这也是最后一批彩云消费券彩云消费券分为通用券和专用券两种,每批次消费券发放时,消费者可通过一部手机逛商圈微信2022年开始不能摆脱电商直播的消费品公司注定慢慢死亡以鞋服公司为例证。先搞清楚一个问题,鞋服公司的钱应该花在什么地方,才能提高产品竞争力获得消费者愿意支付高溢价购买?只有一个地方,那就是研发和设计,也就是要把大量的费用花在研发师喝设块元素行内块元素行内元素小结很多人经常会把块元素行内块元素行内元素的知识混淆掉,今天我归纳下1。块元素独占一行,而行内块元素和行内元素可以和别人共处一行2。常见的块元素有pph1oluldltabelform科普猪心移植给人背后有哪些科技突破新华社北京1月11日电(记者冯玉婧)美国马里兰大学医学中心10日发布消息说,医学专家将经基因改造的猪的心脏移植入一名美国心脏病人体内,属全球首例。人体排异反应通常是异种器官移植中的输出最高分学生信息给定N个学生的基本信息,包括学号(由5个数字组成的字符串)姓名(长度小于10的不包含空白字符的非空字符串)和成绩(0,100区间内的整数),输出最高分的学生信息。函数接口定义str拉勾人才白皮书2021年互联网平均薪酬增长13,但求职招聘两头难来源中国经济周刊经济网中国经济周刊经济网讯1月11日消息,拉勾近日发布了2021年互联网人才招聘白皮书(下称白皮书),解读2021年度的互联网行业人才变化和趋势。白皮书显示,202黑莓新机仍在路上诺基亚又发四款新品,但你会买么?一代经典的黑莓手机,堪称多少人挥之不去的美好回忆。但随着加拿大黑莓公司宣布自2022年1月4日起,停止更新黑莓手机的服务系统后,或许经典注定成为回忆。不过上述事件还有续集,那就是O正在走红的指纹锁,为何很多人称它是智商税?来听听大实话随着人工智能和物联网技术的发展,这几年智能家居产品越来越受到人们的认可和欢迎!尤其是指纹锁,作为入口级的智能家居产品,随着品牌与种类的增多,加上价格的逐渐走低,指纹锁成为人们最受关MIUI13稳定版正式推送达4GB,这些机型设备来升级了小米MIUI13系统稳定版首批升级更新推送如期开始啦,小米在去年12月的时候推出了MIUI13系统,这是MIUI系统新的大版本升级,小米MIUI13系统增加了多个新功能在流畅性稳定运动潮玩尖货,南卡NANK骨传导RunnerPro3蓝牙耳机体验分享如果你是一位平时爱健身的小伙伴,肯定或多或少听过骨传导耳机系列的产品。只要你稍加留意就会发现无论是马拉松比赛还是户外骑行,已经有越来越多的运动爱好者戴上了骨传导蓝牙耳机。究其原因,
年初性价比最高的3款直屏手机,几乎无差评,最低千元出头最近有喜欢直屏手机的朋友,让我推荐几款性价比高的手机,说实话,现在大厂都喜欢出曲面屏,确实不好用,手汗多的更是噩梦。今天快哥整理了3款性价比最高的直屏手机,建议保存收藏,慢慢比较红华为悄然上架5G新机,100W快充5000万四摄,仅售3799元起国内消费者潜意识里常常会将国产手机厂商分为两类,一类是华为,一类是其它国产手机品牌,因为一直追求自研并且拥有核心卖点的华为手机确实要比其它国产手机更高一头,曾经华为手机凭借麒麟处理使用kubeadm的方式部署v1。21。2版本k8s环境信息操作系统CentOSLinuxrelease7。6。1810(Core)docker19。03。5kubernetesv1。21。2master01192。168。1。23科技早报丨于立国任小米汽车副总裁消息称盒马考虑以100亿美元估值进行融资于立国担任小米汽车副总裁1月14日消息,小米集团发布邮件,任命于立国担任小米汽车副总裁兼小米汽车北京总部政委,负责统筹小米汽车综合管理工作专项业务推进以及小米汽车北京总部组织和人才苹果接触韩国汽车零部件制造商,AppleCar或在2022年底敲定供应链记者伍洋宇编辑据韩媒ETNews报道,苹果公司于2021年12月派遣员工到访韩国,会见了几家零部件制造商。此前,苹果还曾在夏天前往韩国,与SK和LG两家公司讨论电动汽车电池。目前,C模板元编程系列专题2模板特化的概念从何而来0。前言C里的模板能做什么呢?它好比C语言中的宏C和Java中的自省(restropection)和反射(reflection),是C语言的外延。更极端一点地理解它是一门新的图灵完高配低价手机骁龙870三星E4屏12G256G,跌至2049元,真香随着高通骁龙8Gen1的发布,现在发布了搭载8Gen1的手机有摩托罗拉motoedgeX30小米12ProrealmeGT2Pro一加10ProvivoiQOO9。相信不久还会有更新机红魔7真机被确认,为游戏而生,直屏165瓦快充是亮点随着小米一加iQOO等手机品牌在2022年陆续发布旗舰机型抢占市场,其他手机品牌也不甘落后纷纷曝光了新机,2022年的市场竞争注定要比2021年还要激烈。定位于极致游戏体验的红魔手魅蓝10发布,虎贲芯片或迎来爆发期在市场预热魅蓝品牌回归多时之后,近日魅蓝回归之后的首款手机魅蓝10手机正式发布了。699元起的配置,预示着魅蓝在回归之后,主打的是入门级市场。从配置上来看魅蓝10使用的是分辨率为1K8s监控方案kubestack(prometheusoperator)安装写在前面学习K8s监控涉及网上的教程大都不全或者有些旧,所以整理分享给小伙伴。博文内容为K8s集群通过helm方式创建kubeprometheusstack监控平台教程折腾了一晚上公关资源网解读互联网营销方式汇总互联网营销方式有哪些?做品牌推广选哪些推广渠道比较好?公关资源网为您解读1,竞价排名。主要是百度竞价。2,信息流广告。3,论坛推广。4百度下拉框联想词优化。5B2B网站推广。6,邮