成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手把手教你五分鐘搞定冪等本質

系統
冪等性原本是數學上的概念,即使公式:f(f(x)) =f(x)能夠成立的數學性質。用在編程領域,則意為對同一個系統,使用同樣的條件,一次請求和重復的多次請求對系統資源的影響是一致的。冪等性是系統服務對外一種承諾,承諾只要調用接口成功,外部多次調用對系統的影響是一致的。

 冪等概念

冪等性原本是數學上的概念,即使公式:f(f(x)) =f(x)能夠成立的數學性質。用在編程領域,則意為對同一個系統,使用同樣的條件,一次請求和重復的多次請求對系統資源的影響是一致的。冪等性是系統服務對外一種承諾,承諾只要調用接口成功,外部多次調用對系統的影響是一致的。聲明為冪等的服務會認為外部調用失敗是常態,并且失敗之后必然會有重試。比如我們發起一筆付款請求,應該只扣用戶賬戶一次錢,當遇到網絡重發或系統問題重發,也應該只扣一次錢,具體冪等處理流程如下圖所示:


SQL中的冪等

SELECT col1 FROM tab1 WHER col2=1,無論執行多少次都不會改變狀態,是天然的冪等。

UPDATE tab1 SET col1=1 WHERE col2=1,無論執行成功多少次狀態都是一致的,因此也是冪等操作。

UPDATE tab1 SET col1=col1+1 WHERE col2=1,每次執行的結果都會發生變化,這種不是冪等的。

insert into user(userid,name) values(123456,'kevin') 如userid為唯一主鍵,即重復操作上面的業務,只會插入一條用戶數據,具備冪等性。

如userid不是主鍵,可以重復,那上面業務多次操作,數據都會新增多條,不具備冪等性。

delete from user where userid=123456,多次操作,結果一樣,具備冪等性

HTTP方法中的冪等

HTTP方法的冪等性是指一次和多次請求某一個資源應該具有同樣的副作用。

  • GET方法用于獲取資源,不應有副作用,所以是冪等的。
  • DELETE方法用于刪除資源,有副作用,但它應該滿足冪等性。例如:刪掉id為123456的帖子,調用者可以多次調用或刷新頁面而不必擔心引起錯誤。
  • POST方法不具備冪等性,兩次相同的POST請求會在服務器端創建兩份資源,它們具有不同的URI
  • PUT方法具備冪等性,他所對應的URI是要創建或更新資源的本身,對同一URI進行多次PUT的副作用和一次PUT是相同的。
  • PATCH不具備冪等性 他會將一組描述在請求實體里的更改應用到URI標志的資源。這組更改以 "補丁文檔" 的格式表示,如果URI未指向現有資源,服務器可能根據補丁文檔的類型和權限等來創建一個新資源。

測試角度看冪等

核心測試點包括:

  • 用戶重復提交
  • 網絡重發
  • 消息重發
  • 系統間重試

重點關注的內容如下:

1)需要關注業務性質和產品設計,是否需要做到冪等,是時間維度的冪等(即冪等對象的范圍,是個人還是機構,是某一次交易還是某種類型的交易)還是空間維度的冪等(即冪等的保證時間,是幾秒、幾分鐘還是永久性的)。

2)接口的冪等測試,在做接口測試時對每個接口都思考一下是否需要冪等。

3)業務場景,特別是涉及到錢的業務場景,對失敗重試機制一定要驗證。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2020-02-21 19:54:09

HTTPS 配置手把手教

2019-07-28 20:24:30

PyTorch深度學習代碼

2012-03-02 13:10:08

筆記本常見問題

2018-03-23 20:45:23

機器學習NLP文本數據

2020-12-08 10:32:15

Python郵件tcp

2011-01-10 14:41:26

2025-05-07 00:31:30

2011-05-03 15:59:00

黑盒打印機

2022-02-23 20:53:54

數據清洗模型

2021-12-01 06:50:50

Docker底層原理

2021-07-14 09:00:00

JavaFX開發應用

2011-02-22 13:46:27

微軟SQL.NET

2021-02-26 11:54:38

MyBatis 插件接口

2021-12-28 08:38:26

Linux 中斷喚醒系統Linux 系統

2022-03-14 14:47:21

HarmonyOS操作系統鴻蒙

2022-07-27 08:16:22

搜索引擎Lucene

2022-01-08 20:04:20

攔截系統調用

2023-04-26 12:46:43

DockerSpringKubernetes

2022-12-07 08:42:35

2025-03-18 09:20:00

Go語言Golang
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 又爽又黄axxx片免费观看 | 国产中的精品av涩差av | 亚洲三级av | 一区二区精品 | 91精品国产一区二区三区 | 欧美久久久久久久久中文字幕 | 日本久久久久久久久 | 国产欧美一区二区三区久久 | 亚洲欧美综合精品另类天天更新 | 天堂中文在线播放 | 九九国产在线观看 | 亚洲精品免费看 | 欧美成人精品二区三区99精品 | 黄视频网站在线 | 国产成人99久久亚洲综合精品 | 天天干天天操 | 国产精品一区二区三区在线 | 91精品国产91久久久久久密臀 | 亚洲性免费| 精精国产xxxx视频在线播放7 | 黄色免费av | 免费在线观看一区二区 | 亚洲二区精品 | 成人影院av | 成人免费在线小视频 | 成人免费视频网站在线观看 | h片免费在线观看 | 亚洲欧美v | 日韩有码一区二区三区 | 午夜国产羞羞视频免费网站 | 国产精品九九九 | 999精品在线| 国产精品视频一二三区 | 国产乱码精品一区二区三区av | 干干天天 | 久久久久网站 | 日韩精品在线观看视频 | aaa在线观看| 91精品久久久久久综合五月天 | 一区二区三区在线播放视频 | 国产高清免费 |