wordpress网站存放在/品牌宣传策略有哪些

wordpress网站存放在,品牌宣传策略有哪些,山西省网站建设价格,模特网站模板现在这个时代大家可能最关心的就是钱了,那么有没有想过你银行转账给你没有一次是转多的,要么失败,要么成功,为什么不能失误一下多转一笔呢?醒醒吧年轻人,别做梦了,做银行的能那么傻x吗&#xff…

现在这个时代大家可能最关心的就是钱了,那么有没有想过你银行转账给你没有一次是转多的,要么失败,要么成功,为什么不能失误一下多转一笔呢?醒醒吧年轻人,别做梦了,做银行的能那么傻x吗?

今天我们就来谈一谈为什么银行转账不能多给我转一笔?关乎到钱的问题,小伙伴们打起精神!!!

要想要理解上述的疑惑,不得不提的一个概念就是幂等性,至于什么是幂等性,如何通过代码实现幂等性,下面将会详细讲述。

 什么是幂等性          

所谓幂等性通俗的将就是一次请求和多次请求同一个资源产生相同的副作用。用数学语言表达就是f(x)=f(f(x))。

维基百科的幂等性定义如下:

幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。
在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。
幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。
例如,“setTrue()”函数就是一个幂等函数,无论多次执行,其结果都是一样的,更复杂的操作幂等保证是利用唯一交易号(流水号)实现.
 

为什么需要幂等性       

在系统高并发的环境下,很有可能因为网络,阻塞等等问题导致客户端或者调用方并不能及时的收到服务端的反馈甚至是调用超时的问题。总之,就是请求方调用了你的服务,但是没有收到任何的信息,完全懵逼的状态。比如订单的问题,可能会遇到如下的几个问题:

1. 创建订单时,第一次调用服务超时,再次调用是否产生两笔订单?

2. 订单创建成功去减库存时,第一次减库存超时,是否会多扣一次?

3. 订单支付时,服务端扣钱成功,但是接口反馈超时,此时再次调用支付,是否会多扣一笔呢?

作为消费者,前两种能接受,第三种情况就MMP了,哈哈哈!!!这种情况一般有如下两种解决方式:

1. 服务方提供一个查询操作是否成功的api,第一次超时之后,调用方调用查询接口,如果查到了就走成功的流程,失败了就走失败的流程。

2. 另一种就是服务方需要使用幂等的方式保证一次和多次的请求结果一致。

 

HTTP的幂等性       

GET:只是获取资源,对资源本身没有任何副作用,天然的幂等性。

HEAD:本质上和GET一样,获取头信息,主要是探活的作用,具有幂等性。

OPTIONS:获取当前URL所支持的方法,因此也是具有幂等性的。

DELETE:用于删除资源,有副作用,但是它应该满足幂等性,比如根据id删除某一个资源,调用方可以调用N次而不用担心引起的错误(根据业务需求而变)。

PUT:用于更新资源,有副作用,但是它应该满足幂等性,比如根据id更新数据,调用多次和N次的作用是相同的(根据业务需求而变)。

POST:用于添加资源,多次提交很可能产生副作用,比如订单提交,多次提交很可能产生多笔订单。

 

幂等性的实现方式        

对于客户端交互的接口,可以在前端拦截一部分,例如防止表单重复提交,按钮置灰,隐藏,不可点击等方式。但是前端进行拦截器显然是针对普通用户,懂点技术的都可以模拟请求调用接口,所以后端幂等性很重要。

后端的幂等性如何实现?将会从以下几个方面介绍。

1. 数据库去重表

在往数据库中插入数据的时候,利用数据库唯一索引特性,保证数据唯一。比如订单的流水号,也可以是多个字段的组合。

实现比较简单,读者可以自己实现看看,这里不再提供demo了。


2. 状态机

很多业务中多有多个状态,比如订单的状态有提交、待支付、已支付、取消、退款等等状态。后端可以根据不同的状态去保证幂等性,比如在退款的时候,一定要保证这笔订单是已支付的状态。

业务中常常出现,读者可以自己实现看看,不再提供demo。

3. TOKEN机制

针对客户端连续点击或者调用方的超时重试等情况,例如提交订单,此种操作就可以用Token的机制实现防止重复提交。

TOKEN机制如何实现?简单的说就是调用方在调用接口的时候先向后端请求一个全局ID(TOKEN),请求的时候携带这个全局ID一起请求,后端需要对这个全局ID校验来保证幂等操作,流程如下图:

主要的流程步骤如下:

1. 客户端先发送获取token的请求,服务端会生成一个全局唯一的ID保存在redis中,同时把这个ID返回给客户端。

2. 客户端调用业务请求的时候必须携带这个token,一般放在请求头上。

3. 服务端会校验这个Token,如果校验成功,则执行业务。

4. 如果校验失败,则表示重复操作,直接返回指定的结果给客户端。

通过以上的流程分析,唯一的重点就是这个全局唯一ID如何生成,在分布式服务中往往都会有一个生成全局ID的服务来保证ID的唯一性,但是工程量和实现难度比较大,UUID的数据量相对有些大,此处陈某选择的是雪花算法生成全局唯一ID

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker基础:Docker可视化面板portainer介绍

今天给大家分享Docker可视化面板portainer工具介绍,希望对大家能有所帮助! 1、什么是portainer? Portainer是Docker的图形化管理WEB工具,由GO语言编写的,提供状态显示、应用模板快速部署、对于Docker(容器、镜像、网络、数据卷)的基本操作、日志显示、容器控制台等功能。…

时间复杂度与O(1), O(n), O(logn), O(nlogn) 的区别

在描述算法复杂度时,经常用到O ( 1 ) , O ( n ) , O ( l o g n ) , O ( n l o g n ) O(1), O(n), O(logn), O(nlogn)O(1),O(n),O(logn),O(nlogn)来表示对应复杂度程度, 不过目前大家默认也通过这几个方式表示空间复杂度 。 那么,O ( 1 ) , O ( n ) , O …

Win10技巧:Win10任务管理器知识介绍

Win10操作系统的任务管理器应该是大家比较熟悉的软件,尤其是在你的电脑卡掉的时候,不得不打开任务管理器,结束掉进程卡死的进程,然后电脑就可以恢复正常使用,任务管理器作为Windows操作系统上一款使用频率非常高的软件…

安装Oracle数据库操作步骤

第一步: 第二步: 第三步: 第四步: 第五步:输入密码 第六步:继续 第七步: 第八步:进入主页后 第九步:登录进去后是这样子 第十步: 第十一步: 第十二…

电脑软件:推荐几款常用的浏览器

目录 1、微软官方的Edge浏览器 2、谷歌浏览器 3、华为浏览器 4、火狐浏览器 5、360极速浏览器 不知道大家在使用浏览器过程中,有没有遇到弹出窗口、各种广告、还有各种游戏推荐的情况?有的浏览器在安装的时候甚至还捆绑了其他软件。别着急&#xff…

TCP 的有限状态机

TCP 有限状态机的图中每一个方框都是 TCP 可能具有的状态。 每个方框中的大写英文字符串是 TCP 标准所使用的 TCP 连接状态名。 状态之间的箭头表示可能发生的状态变迁。 箭头旁边的字,表明引起这种变迁的原因,或表明发生状态变迁后又出现什么动作。 图…

数据库技巧:整理SQLServer非常实用的脚本

今天给大家分享自己在工作当中用到的SQLServer一些常用的脚本,希望能对大家有所帮助! 1、 查询数据库所有表结构 通过该脚本可以快速查找表字段,或者生成数据库设计文档、进行数据库对比。 SELECT obj.name 表名, col.colorder AS 序号 , co…

HTTPS与HTTP的一些区别

HTTPS与HTTP的一些区别 HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有传输的内容都经过加密的…

Docker知识:数据卷技术介绍

目录 Docker数据管理 1.2 Docker数据持久化 1.2 容器中数据管理的方式 2、数据卷的介绍 2.1 数据卷作用 2.2 卷的概念 2.3 数据卷的特点 3、Docker数据卷常见的作用 4、操作数据卷 4.1 常用命令 4.2 挂载数据卷 今天给大家简单聊聊Docker中的数据卷知识。 Docker数据管理 大家在…

Dubbo背景和简介

Dubbo背景和简介 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。 缺点:单一的系统架构&…

2/19 福建四校联考

1.设计图案 给你一个n*m的矩阵&#xff0c;每个格子必须填或者不能填&#xff0c;要用环和1*2的小方块填满它&#xff0c;求方案数。 比如3*2&#xff0c;每个格子都必须填 有6种填法。 n*m<300 当时一看就觉得不可做然后就放弃了..... 题解&#xff1a;有个结论&#xff…

RPC调用和HTTP调用的区别你知道吗

前言 很长时间以来都没有怎么好好搞清楚RPC&#xff08;即Remote Procedure Call&#xff0c;远程过程调用&#xff09;和HTTP调用的区别&#xff0c;不都是写一个服务然后在客户端调用么&#xff1f;这里请允许我迷之一笑~Naive&#xff01; 本文简单地介绍一下两种形式的C/…

C#实战:基于ItextSharp技术标签生成小工具

目录 1、运行主界面 2、标签生成界面 3、需要引入的依赖包 4、解决方案目录 5、主要代码 1、新建PdfUtils工具类 2、Form1.cs 窗体主要代码 IT技术分享社区 / Itext Sharp Demo GitCode 今天给大家分享小编基于ItextSharp制作的一款标签生成小工具&#xff0c;可供大家…

开发工具:推荐一款非常好用的SSH客户端WindTerm

目录 1、主要功能 2、安装WindTerm 3、设置与使用 3.1 设置终端字体 3.2 外观设置 3.3 配置会话 3.5 新建会话 4、软件性能 5、总结 今天给大家推荐一款基于C语言开发的支持跨平台SSH客户端WindTerm&#xff0c;感兴趣朋友可以下载试试。 1、主要功能 支持 SSH v2、T…

Java实战:指定大小分组压缩文件夹里面的文件案例

目录 一、前言 二、代码示例 新建FileModel.java 实体 Main.java 代码&#xff1a; 三、展示效果 四、最后 一、前言 今天给大家分享一个J自己写的ava实战的小案例&#xff0c;主要功能是实现指定一个文件夹&#xff0c;然后分组压缩里面的文件。其实这个案例还是有一定用…

mac系统快捷键大全详细介绍

对于使用苹果电脑的操作系统的新人来说&#xff0c;快捷键是个很麻烦的问题&#xff0c;要一个个的找到快捷键也不是很容易的问题&#xff0c;今天这篇文章就解决了到处找快捷键的麻烦。 Mac中主要有四个修饰键&#xff0c;分别是Command&#xff0c;Control&#xff0c;Optio…

Docker实战:Docker安装nginx并配置SSL

目录 1、拉取nginx镜像 2、启动nginx容器 3、创建挂载nginx目录 4、重新启动nginx容器 5、查看目录挂载是否成功 6、在宿主目录创建ssl目录&#xff0c;将ssl证书放在宿主主机 7、修改配置宿主主机nginx增加ssl证书配置 8、重启nginx容器 今天继续给大家分享Docker实战…

W模型和瀑布模型与“V”模式开发模型有何异同?

在做软件开发时&#xff0c;程序员们肯定接触过各式各样的软件开发模型&#xff0c;例如&#xff1a;写了再改模型、瀑布模型、增量模型等。其实&#xff0c;很多开发模型是在瀑布模型基础上衍生出来的。 然而&#xff0c;了解“V”模式开发模型的程序员应该不多。“V”模式开…