日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
互聯(lián)網(wǎng)高頻面試題,什么是冪等?如何解決冪等性問題

一個在傳統(tǒng)行業(yè)工作了 7 年的粉絲私信我。說他最近去很多互聯(lián)網(wǎng)公司面試,遇到的很多技術(shù)和概念都沒聽過。其中就有一道題是:”什么是冪等、如何解決冪等性問題“?他說,這個概念聽都沒聽過,怎么可能回答出來。

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、做網(wǎng)站、大理州網(wǎng)絡(luò)推廣、小程序開發(fā)、大理州網(wǎng)絡(luò)營銷、大理州企業(yè)策劃、大理州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供大理州建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com

接下來,我借這位同學(xué)的問題,給大家分享一下我對這個問題的理解。

1.什么是冪等?

其實冪等,是一個數(shù)學(xué)上的概念。而在計算機(jī)編程領(lǐng)域中,冪等是指一個方法被多次重復(fù)執(zhí)行的時候所期望的結(jié)果要和第一次執(zhí)行所期望的結(jié)果保持一致。簡單理解就是,一個邏輯即使被重復(fù)執(zhí)行多次,也不影響最終結(jié)果的一致性,這叫冪等。

之所以要考慮到冪等性問題,是因為在網(wǎng)絡(luò)通信中,有這兩種行為都有可能會導(dǎo)致接口被重復(fù)執(zhí)行。

第一種是,用戶的重復(fù)提交或者用戶的惡意攻擊;

第二種是,分布式系統(tǒng)中,為了避免數(shù)據(jù)丟失,采用的超時重試機(jī)制。

這兩種情況都有可能導(dǎo)致服務(wù)接口被重復(fù)調(diào)用。所以在程序設(shè)計中,對于數(shù)據(jù)變更類操作的接口,需要保證接口的冪等性。

而冪等性的核心思想,其實就是保證這個接口的執(zhí)行結(jié)果只影響一次,后續(xù)即便再次調(diào)用,也不能對數(shù)據(jù)產(chǎn)生影響,所以基于這樣一個需求,我們?nèi)绾谓鉀Q冪等性問題呢?

2.如何解決?

解決冪等性問題的方法有很多,下面我分享一下常用幾種方案。

第1種方案,就是使用數(shù)據(jù)庫的唯一約束來實現(xiàn)冪等,比如對于數(shù)據(jù)插入類的場景,比如創(chuàng)建訂單,因為訂單號肯定是唯一的,所以如果是多次調(diào)用就會觸發(fā)數(shù)據(jù)庫的唯一約束異常,從而避免一個請求創(chuàng)建多個訂單的問題。

第2種方案,就是使用 Redis 提供的 setNX 指令,比如對于 MQ 消費的場景,為了避免 MQ 重。

復(fù)消費導(dǎo)致數(shù)據(jù)多次被修改的問題,可以在接受到 MQ 的消息時,把這個消息通過 setNX 寫入到 Redis 中,一旦這個消息被消費過,就不會再次消費。

第3種方案,使用狀態(tài)機(jī)來實現(xiàn)冪等,所謂的狀態(tài)機(jī)是指一條數(shù)據(jù)的完整運行狀態(tài)的轉(zhuǎn)換流程,比如 ,因為它的狀態(tài)只會向前變更,所以多次修改同一條數(shù)據(jù)的時候,一旦狀態(tài)發(fā)生變更,那么對這條數(shù)據(jù)修改造成的影響只會發(fā)生一次。

當(dāng)然,除了以上3種常用的意外,還可以基于 Token 機(jī)制或者增加去重表等方法來實現(xiàn),但是不管是什么方法,無非就是兩種思路,要么就是接口只允許調(diào)用一次,比如唯一約束、基于 Redis 的鎖機(jī)制。

要么就是對數(shù)據(jù)的影響只會觸發(fā)一次,比如樂觀鎖等。

以上就是我對這個問題的理解。

技術(shù)這個行業(yè)的發(fā)展是很快的,如果自己的技術(shù)能力和認(rèn)知跟不上變化。那基本上可以說是被時代淘汰了,所以保持持續(xù)學(xué)習(xí)是非常重要的。


網(wǎng)站標(biāo)題:互聯(lián)網(wǎng)高頻面試題,什么是冪等?如何解決冪等性問題
本文鏈接:http://m.5511xx.com/article/dhcgdec.html