做床爱全过程激烈视频网站,伊人色综合久久天天五月婷,一性一交一口添一摸视频,在线观看人成激情视频,呦系列视频一区二区三区

數(shù)十年專注企業(yè)數(shù)字化轉型、智能化升級、企業(yè)上云解決方案服務商
工單提交 實名認證 騰佑科技咨詢熱線咨詢熱線: 400-996-8756
百度云服務中心騰佑科技公司
云服務器活動 服務器租用 服務器托管 機柜租賃 帶寬租賃
  • 最新資訊
  • 熱門資訊
  • 最熱資訊
智能建站

電子商務網站擊殺和限時搶購中多見的分布式系統(tǒng)怎么處理?

發(fā)布時間:2022-07-15 作者:admin

簡述:一、大規(guī)模并發(fā)帶來的挑戰(zhàn)在過去的工作中,我曾經面對過5w每秒的高并發(fā)秒殺功能,在這個過程中,整個Web系統(tǒng)遇到了很多的問題和挑戰(zhàn)。如果Web系統(tǒng)不做針對性的優(yōu)化,會輕而易舉地陷入到異常狀態(tài)。我們現(xiàn)在一起來討論下,優(yōu)化的思路和方法哈。1.請求

一、規(guī)模性高并發(fā)產生的考驗

在從前的工作上,曾經的我應對過5w每秒鐘的分布式系統(tǒng)擊殺作用,在這一情況下,全部Web系統(tǒng)碰見了許多的難題和考驗。假如Web系統(tǒng)不做針對性的提升,會毫不費力地深陷到異常狀態(tài)?,F(xiàn)在我們一起來探討下,提升的構思和辦法哈。

1.請求接口的有效設計構思

一個擊殺或是限時搶購網頁頁面,一般可分為2個一些,一個是靜態(tài)數(shù)據(jù)的HTML等信息,另一個便是參加擊殺的Web后臺管理請求接口。

一般靜態(tài)數(shù)據(jù)HTML等信息,是通過CDN的構建,一般壓力不大,關鍵短板事實上在后臺管理請求接口上。這一后端接口,一定要可以適用分布式系統(tǒng)要求,與此同時,非常重要的一點,務必盡量“快”,在最短的時間里回到使用者的要求結論。為了實現(xiàn)盡量快這一點,界面的后臺儲存應用運行內存等級的使用會更快一點。依然立即面對MySQL之類的儲存是不合適的,假如有這類繁雜工作的要求,都提議選用多線程載入。

自然,還有一些擊殺和限時搶購選用“落后意見反饋”,就是說擊殺時下不清楚結論,一段時間后才能夠從網頁中見到客戶是不是擊殺取得成功??墒?,這類歸屬于“懶惰”個人行為,并且給客戶的感受也不好,非常容易被客戶認為是“弄虛作假”。

2.分布式系統(tǒng)的考驗:一定要“快”

我們通??剂恳粋€Web系統(tǒng)的吞吐率的技術指標是QPS(QueryPerSecond,每秒鐘解決要求數(shù)),處理每秒鐘數(shù)十萬次的分布式系統(tǒng)情景,這一指標值十分重要。舉例說明,大家假定解決一個服務要求均值響應速度為100ms,與此同時,系統(tǒng)軟件內有20臺Apache的Web服服務器,配備MaxClients為500個(表明Apache的最大連接數(shù)目)。

那樣,他們的Web系統(tǒng)的基礎理論最高值QPS為(理想的計算方法):

20*500/0.1=100000(10萬QPS)

咦?他們的系統(tǒng)軟件好像很強大,1秒能夠解決完10萬的要求,5w/s的擊殺似乎是“縮頭烏龜”哈。具體情況,或許并沒有那么理想化。在分布式系統(tǒng)的現(xiàn)實情景下,設備都處在高負載的情況,在這個時候均值響應速度會被大大增加。

就Web服務端來講,Apache開啟了越多的是聯(lián)接過程,CPU必須解決的語義轉換也越大,附加增強了CPU的耗費,然后就立即造成均值響應速度提升。因而以上的MaxClient數(shù)量,要依據(jù)CPU、運行內存等硬件配置要素充分考慮,絕對不是愈多愈好。能通過Apache內置的abench來測試一下,取一個適合自己的值。隨后,大家挑選運行內存實際操作等級的儲存的Redis,在分布式系統(tǒng)的情況下,儲存的響應速度尤為重要。服務器帶寬盡管都是一個要素,但是,這類要求數(shù)據(jù)文件一般比較小,一般非常少變成要求的難題。web服務變成系統(tǒng)軟件短板的情形特別少,在這兒不做探討哈。

問題來了,假定他們的系統(tǒng)軟件,在5w/s的分布式系統(tǒng)情況下,均值響應速度從100ms變成250ms(具體情況,乃至大量):

20*500/0.25=40000(4萬QPS)

因此,他們的系統(tǒng)軟件剩下了4w的QPS,應對5w每秒鐘的要求,正中間相距了1w。

隨后,這才是真正的噩夢逐漸。舉例說明,高速路口,1秒左右來5部車,每秒鐘根據(jù)5部車,高速路口運行正常的。忽然,這一街口1秒左右只有根據(jù)4部車,交通量依然依舊,結論必然發(fā)生大塞車。(5條行車道突然變?yōu)?條行車道的覺得)

同樣,某一個秒內,20*500個可以用聯(lián)接過程都是在超負荷工作上,卻仍舊有1萬只剛來要求,并沒有聯(lián)接過程可以用,系統(tǒng)軟件深陷到異常狀態(tài)都是預估以內。

我覺得在正常情況下的非分布式系統(tǒng)的業(yè)務場景中,還有相似的狀況產生,某一業(yè)務流程請求接口出現(xiàn)問題,響應速度極慢,將全部Web要求響應速度拉得很長,慢慢將Web服務端的可以用線程數(shù)布滿,別的正常的的服務要求,無連接過程可以用。

更可怕的問題是,是使用者的行為特點,系統(tǒng)軟件越發(fā)不能用,客戶的點一下越經常,惡循環(huán)最后造成“山崩”(在其中一臺Web機器掛掉,造成總流量分散化到別的正常工作的設備上,再造成正常的的設備也掛,隨后惡循環(huán)),將全部Web系統(tǒng)壓垮。

3.重新啟動與過壓保護

假如系統(tǒng)軟件產生“山崩”,輕率重新啟動服務項目,是沒法解決問題。最常見的現(xiàn)象是,運行出來后,馬上掛了。這個時候,最好是在通道層將總流量回絕,然后將重新啟動。假如是redis/memcache這類服務項目也掛掉,重新啟動的情況下應注意“加熱”,而且很有可能必須非常長的的時間。

擊殺和預購的情景,總流量往往是遠超大家操作系統(tǒng)的打算和想像中的。這個時候,過載保護器是必需的。假如檢驗到系統(tǒng)軟件滿負荷情況,拒絕請求也是一種保障措施。在前面設定過慮是最簡單的方式,可是,這類作法是被客戶“死不足惜”的個人行為。更合適一點是指,將過壓保護設定在CGI通道層,迅速將顧客的同時要求回到。

二、出軌的方式:攻擊與防御

擊殺和限時搶購收到了“大量”的要求,事實上里邊的水份是挺大的。許多客戶,為了能“搶“到產品,會應用“刷投票專用工具”等種類的輔助軟件,協(xié)助她們推送盡可能多的要求到網絡服務器。還有一部分高端客戶,制做強勁的全自動要求腳本制作。這類作法的原因也非常簡單,也是在進行擊殺和預購的要求中,自身的申請數(shù)量占有率越大,成功的概率越大。

這都是歸屬于“出軌的方式”,但是,有“攻擊”就會有“防御”,這是一場沒有硝煙的作戰(zhàn)哈。

1.同一個賬戶,一次性傳出好幾個要求

一部分客戶根據(jù)瀏覽器的外掛或是別的專用工具,在擊殺逐漸的時間里,以自己的賬戶,一次傳送幾百乃至更多的是要求。事實上,這種客戶破壞擊殺和預購的公平公正。

這些要求在一些沒有做網絡信息安全解決的系統(tǒng)里,也有可能導致另外一種毀壞,造成一些判斷條件被繞開。比如一個簡單領到邏輯性,先分辨客戶是不是有參加紀錄,要是沒有則領取成功,最終載入到參加紀錄中。這是一個非常簡單的邏輯性,可是,在分布式系統(tǒng)的情景下,存有深深的系統(tǒng)漏洞。好幾個高并發(fā)要求根據(jù)web服務網絡服務器,分派到內網的幾臺Web服服務器,他們最先向儲存推送查看要求,隨后,在某些要求取得成功載入?yún)⒓蛹o錄的時間間隔內,別的的要求獲查看到的結論全是“沒參加紀錄”。這兒,就存有判斷推理被繞開的風險性。

解決計劃方案:

在程序流程入口,一個賬戶只容許接納1個要求,別的要求過慮。不但解決了同一個賬戶,推送N個要求的情況,還確保了后面的邏輯性步驟的安全性。實現(xiàn)方案,能通過Redis這類運行內存緩存文件服務項目,載入一個標志寄存器(只準許1個要求寫取得成功,融合watch的樂觀鎖的特點),取得成功載入的則能夠再次參與。

或是,自身完成一個服務項目,將同一個賬戶的要求放進一個序列中,處置完一個,再處理下一個。

2.好幾個賬戶,一次性推送好幾個要求

許多企業(yè)的賬號申請作用,在發(fā)展趨勢初期幾乎是沒有限制的,比較容易就能夠申請注冊很多個賬戶。因而,也導致了出現(xiàn)了一些獨特的工作室,根據(jù)撰寫自動注冊腳本制作,積累了一大批“喪尸賬戶”,總數(shù)巨大,十幾萬乃至幾十萬的賬戶不一,專業(yè)做各種各樣刷的個人行為(這就是新浪微博里的“死粉“的由來)。舉例說明,比如新浪微博含有轉發(fā)抽獎的主題活動,如果我們應用幾萬個“僵尸號”去混進去分享,這樣就能夠大大的提高大家得獎的幾率。

這類賬戶,應用在擊殺和限時搶購里,都是同一個大道理。比如,iPhone官網的限時搶購,火車票黃牛黨。

解決計劃方案:

這類情景,能通過檢驗特定設備IP要求工作頻率就還可以處理,一旦發(fā)現(xiàn)某一IP要求工作頻率非常高,能夠給它彈出來一個短信驗證碼或是立即嚴禁它要求:

彈出來短信驗證碼,最關鍵的追求完美,也是辨別出實際客戶。因而,大伙兒很有可能常常發(fā)覺,網址彈出的短信驗證碼,有一些是“神鬼狂舞”的模樣,有時候使我們根本無法認清。許多人這樣做的緣故,其實也就是為了讓短信驗證碼的照片不被隨便鑒別,由于強勁的“自動腳本”能通過識別圖片里邊的標識符,隨后讓腳本制作全自動填好短信驗證碼。事實上,有一些十分革新的短信驗證碼,成效會比較合適,比如給你一個簡單問題使你回應,或是使你進行一些簡易實際操作(比如貼吧百度的短信驗證碼)。立即嚴禁IP,實際上是有一些粗魯?shù)模捎谟幸恍┱嬲褂谜叩幕ヂ?lián)網情景正好是同一出入口IP的,很有可能會出現(xiàn)“弄傷“??墒沁@一個作法簡單高效,依據(jù)具體情景應用能夠得到不錯的成效。

3.好幾個賬戶,不一樣IP推送不一樣要求

所說道高一尺,魔高一丈。有攻擊,就會出現(xiàn)防御,絕不停止。這種“個人工作室”,發(fā)覺你對單機版IP要求工作頻率有操縱以后,她們也應對這類情景,想起了他的“新攻擊計劃方案”,便是持續(xù)更改IP。

有老同學聚會好奇心,這種任意IP服務項目怎么來的。有一些是一些公司自身占有一批單獨IP,之后制成一個任意代理商IP的業(yè)務,有償服務給予給這種“個人工作室”應用。還有一些更加黑喑一點的,便是根據(jù)木馬病毒黑掉一般用戶的計算機,這種木馬病毒都不毀壞客戶計算機的常規(guī)運行,只做一件事情,也是分享IP包,一般用戶的筆記本被變成了IP代理出口。根據(jù)這些作法,網絡黑客就拿到了很多的自主IP,隨后構建為任意IP服務項目,便是為了掙錢。

解決計劃方案:

坦白說,這類情景下的要求,和實際客戶的手段,早已基本一致了,想要做辨別非常困難。再做進一步的限定非常容易“弄傷“真正客戶,這個時候,一般只有經過設定業(yè)務流程門檻高來局限這類要求了,或是根據(jù)賬戶個人行為的”大數(shù)據(jù)挖掘“來提早清理掉他們。

喪尸賬戶也或是有一些相互特點的,比如賬戶很有可能歸屬于同一個號段甚至是連號的,活躍性度不高,級別低,材料不全這些。依據(jù)這種特性,適度設定參加門坎,比如限定參加擊殺的賬戶級別。根據(jù)這種業(yè)務流程方式,都是能夠進行過濾掉一些僵尸號。

4.火車車票的限時搶購

見到這兒,大家是不是搞清楚你為什么搶不了火車車票?假如你僅僅踏踏實實地去搶票,很難。根據(jù)多賬戶的方法,車票的黃牛黨將許多火車票的人數(shù)占有,一部分強勁的黃牛黨,在解決短信驗證碼層面,也是“技高一籌“。

高端的黃牛黨刷投票時,在鑒別短信驗證碼的情況下應用真實的人,正中間構建一個展現(xiàn)驗證碼圖片的轉站軟件技術服務,真人版瀏覽圖片并填好下真正短信驗證碼,回到給轉站手機軟件。對這類方法,短信驗證碼的保障限定功效被廢止了,現(xiàn)階段都沒有有效的解決方法。

由于火車車票是依據(jù)身份證件實名登記的,這兒還有一個火車車票的出讓操作方式。大概的操作方式,是先用顧客的身份證打開一個搶票工具,不斷發(fā)送請求,黃牛黨賬戶挑選退票費,之后黃牛黨顧客取得成功根據(jù)自身的身份證購票成功。當一列車箱沒有票了的情況下,是沒好多人盯著看的,更何況黃牛黨們的搶票工具也很強大,即便使我們看到有退票費,大家也不一定能搶到過她們哈。

最后,黃牛黨成功將火車車票遷移到顧客的身份證下。

解決方法:

并未有效的解決方法,唯一可以動想法的也許是對賬戶信息開展“大數(shù)據(jù)挖掘”,這種黃牛黨賬戶都是有一些相互特點的,比如常常網上搶票和退票費,節(jié)假日日出現(xiàn)異?;钴S性這些。將他們剖析出去,再做進一步解決和鑒別。

三、分布式系統(tǒng)下的網絡信息安全

我們知道在線程同步載入同一個文件的情況下,會存現(xiàn)“線程安全”的難題(好幾個進程與此同時運作同一段編碼,假如每一次運作結論和并行處理運作的結論是一樣的,效果和預計同樣,也是線程安全的)。假如是MySQL數(shù)據(jù)庫,可以用它內置的鎖體制非常好的解決困難,可是,在大量潛在的情景中,不是推薦使用MySQL的。擊殺和搶購的情景中,還有此外一個問題,便是“超發(fā)”,假如在這些方面操縱不小心,會造成推送過多的是狀況。人們也以前聽說過,一些電子商務搞砍價活動,顧客取得成功拍下后,店家卻不承認訂單信息合理,回絕送貨。這兒的難題,說不定并不一定是商戶狡詐,反而是系統(tǒng)軟件技術層面存有超發(fā)風險性造成的。

1.超發(fā)的緣故

假定某一限時搶購情景中,大家一共僅有100個產品,在最后一刻,我們已經耗費了99個產品,僅存最后一個。這個時候,系統(tǒng)軟件發(fā)過來好幾個高并發(fā)要求,這批要求載入到的產品容量全是99個,隨后都通過了這一個容量分辨,最后造成超發(fā)。(同文章內容前邊講的情景)

在里面的這一圖上,就導致了高并發(fā)客戶B也“限時搶購取得成功”,多讓一個人贏得了產品。這類情景,在分布式系統(tǒng)的前提下很容易發(fā)生。

2.悲觀鎖構思

處理線程安全的策略許多,能從“悲觀鎖”的方位逐漸探討。

悲觀鎖,其實就是在修改數(shù)據(jù)的情況下,選用鎖住情況,抵觸外界要求的改動。碰到上鎖的情況,就務必等候。

雖說以上的計劃方案確實解決了線程安全的難題,可是,別忘了,他們的情景是“分布式系統(tǒng)”。換句話說,會許多這種改動要求,每一個要求都要等候“鎖”,一些進程很有可能永遠都沒有機會搶得這一“鎖”,這類要求便會死在那里。與此同時,這些要求會許多,一瞬間擴大體系的均值響應速度,結果是可以用線程數(shù)被耗光,操作系統(tǒng)深陷出現(xiàn)異常。

3.FIFO序列構思

哪好,這么大家略微修改一下上邊的情景,人們可以直接將要求放進序列里的,選用FIFO(FirstInputFirstOutput,先進先出法),那樣的話,咱們就不可能造成一些要求始終獲得不上鎖。見到這兒,是否有點兒強制將線程同步變?yōu)閱魏说母惺芄?/p>

隨后,現(xiàn)在我們解決了鎖的難題,所有要求選用“先進先出法”的序列方法來解決。那樣一個新的那么問題來了,并發(fā)的情景下,是因為要求許多,很有可能一瞬間將序列運行內存“撐爆”,隨后系統(tǒng)軟件又深陷到異常狀態(tài)?;蚴窃O計一個巨大的運行內存序列,也是一種計劃方案,可是,系統(tǒng)軟件解決完一個序列內要求的速率根本無法和玩命涌進序列里的數(shù)量對比。換句話說,序列里的要求會越積攢越大,最后Web系統(tǒng)均值回應情況下依然會大幅度降低,系統(tǒng)軟件或是深陷出現(xiàn)異常。

4.樂觀鎖構思

這個時候,人們就能夠討論一下“樂觀鎖”的策略了。樂觀鎖,是相對于“悲觀鎖”選用更加比較寬松的上鎖體制,大都是選用帶版本信息(Version)升級。完成便是,這一數(shù)據(jù)信息全部要求都是有資質去改動,但會得到一個該信息的版本信息,僅有版本信息合乎的才可以升級取得成功,別的的回到限時搶購不成功。那樣的話,人們也不必須考慮到序列的難題,但是,它會擴大CPU的測算花銷??墒?,綜合性而言,這是一個比較好的解決方法。

Web系統(tǒng)規(guī)模性高并發(fā)——電子商務擊殺與限時搶購–徐漢彬Hansion–技術性旅人

有許多手機軟件和業(yè)務都“樂觀鎖”作用的適用,比如Redis里的watch便是其中之一。根據(jù)這一完成,大家確保了信息的安全性。

四、總結

互聯(lián)網技術已經高速發(fā)展,應用信息服務的客戶越大,并發(fā)的情景也變的愈來愈多。電子商務擊殺和限時搶購,是2個較為常見的互聯(lián)網技術分布式系統(tǒng)情景。雖然我們解決問題實際技術規(guī)范很有可能各有不同,不過碰到的考驗則是類似的,因而解決問題構思也如出一轍。

騰佑科技IDC給予香港主機、香港服務器等全世界國外服務器租賃代管,是地區(qū)鏈、銷售、流媒體服務器、出口外貿、手機游戲、電子商務、智能家居系統(tǒng)等網絡服務器解決方法優(yōu)選知名品牌。!實際詳情請網上客服!

點擊展開全文

騰佑科技(www.158100.cn)成立于2009年,總部位于河南鄭州,是一家集互聯(lián)網基礎設施及軟硬件于一體化的高新技術企業(yè),具有IDC/ISP/ICP/云牌照、雙軟等資質,并擁有多個國家版權局認證。公司自成立以來,一直致力于發(fā)展互聯(lián)網IDC數(shù)據(jù)中心DataCenter、云計算Cloud、大數(shù)據(jù)BigDate、人工智能AI、內容加速CDN、互聯(lián)網安全、軟件定制開發(fā)等產品服務及行業(yè)客戶技術一體化智能解決方案;2018年成為百度智能云AI河南服務中心。

售前咨詢熱線:400-996-8756

備案提交:0371-89913068

售后客服:0371-89913000

熱門活動

百度云服務中心
  • 熱門資訊
  • 隨便看看