日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[架构]--高并发问题及解决方案

發(fā)布時間:2025/7/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [架构]--高并发问题及解决方案 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

本文一共分析了三個案例,分別介紹并發(fā)系統(tǒng)中的共享資源并發(fā)訪問、計算型密集型任務(wù)緩存訪問 、單一熱點(diǎn)資源峰值流量問題和解決方案。


Q1:訂票系統(tǒng),某車次只有一火車票,假定有1w個人同打開12306網(wǎng)站來票,如何解決并發(fā)問題

A1: 首先介紹數(shù)據(jù)庫層面的并發(fā)訪問,解決的辦法主要是樂觀鎖和悲觀鎖。

樂觀鎖

假設(shè)不會發(fā)生并發(fā)沖突,只在提交操作時檢查是否違反數(shù)據(jù)完整性。

樂觀鎖使用一個自增的字段表示數(shù)據(jù)的版本號(或者timestamp),更新的時候檢查版本號是否一致,比如數(shù)據(jù)庫中版本號為4,更新時版本號使用版本號version=5,與數(shù)據(jù)庫中的版本號version+1=5)做比較,如果相等,則可以更新,如果不相等,其他程序已更新該記錄,返回錯誤。

觀鎖

假定會發(fā)生并發(fā)沖突,屏蔽一切可能違反數(shù)據(jù)完整行的操作。

一般需要使用數(shù)據(jù)庫的鎖機(jī)制,比如MysqlInnoDB引擎的行級鎖。

結(jié)論:在實(shí)際生產(chǎn)環(huán)境中,如果并發(fā)量不大且不允許臟讀(原始數(shù)據(jù)為5AB兩個事務(wù),B其他事務(wù)更新數(shù)據(jù)為2,事務(wù)未提交時,A讀取到的仍然為5),可以使用悲觀鎖。并發(fā)訪問量大時,使用悲觀鎖有非常大的性能問題,可以選擇樂觀鎖。

其次,介紹一下MemcachedCAS機(jī)制

CAS,又稱Compare-and-Swap,代表一種原子操作。

MemcachedCAS機(jī)制解決的問題及其原理:

1. 實(shí)現(xiàn)了Check-and-Set原子操作功能;
2.
其使用方式為:首先使用gets指令一個key-valuekey對應(yīng)value的版本號;其次操作產(chǎn)生新的value值;最后使用cas指令重新提交key-value,并附帶剛剛獲得到的版本號;
3.
當(dāng)服務(wù)端判斷cas操作中的版本號不是最新的時,則認(rèn)為改key的值已經(jīng)被修改,本次cas操作失敗。程序設(shè)計人員通過CAS機(jī)制可實(shí)現(xiàn)自增和自減的原子操作;

可以看到MemCacheCAS機(jī)制和數(shù)據(jù)庫的樂觀鎖實(shí)現(xiàn)原理非常類似。

Q2:假設(shè)系統(tǒng)中圖片存儲在TFSTaobao File System)中,接口提供縮略圖服務(wù),首先在緩存中查找是否有縮略圖,如果沒有,則從TFS加載原圖片,然后請求縮略圖服務(wù),縮略圖計算完成后,設(shè)置回緩存服務(wù)中。

遇到的問題:當(dāng)一張圖片分享給100w個人以后,同一時間有1w個并發(fā)請求,由于縮略圖計算耗時較長(假設(shè)1s), 在這1s內(nèi),每個請求查詢緩存都沒有找到然后申請計算縮略圖,導(dǎo)致重復(fù)的縮略圖計算量和資源消耗。

?

A2:對于縮略圖這種耗時的服務(wù),非常適合使用緩存,不過在使用的時候,對于同一個圖片,原則上只需要計算一次縮略圖,在縮略圖未計算完成時,可以對每張圖片做額外的標(biāo)記表示其正在Processing,并發(fā)請求遇到縮略圖Processing時,可以等待縮略圖計算完成(這是建議的方式)后從緩存直接讀取,也可以是直接返回錯誤,通過客戶端重試來解決。

? ? 本案例中,如果縮略圖請求在上傳圖片1分鐘后才發(fā)生,則可以在后臺預(yù)先計算縮略圖并存儲到緩存。另外就是在上傳圖片的時候計算縮略圖,不過會增加上傳圖片的時間。

Q3:單點(diǎn)峰值流量,在并發(fā)系統(tǒng)中,除了請求整體的并發(fā)量高,還常見單一熱點(diǎn)資源的并發(fā)請求量很高。例如,1萬個人每人分享了一張圖片,其中9999張圖片的縮略圖請求在10 QPS以內(nèi),剩下的一張圖片為新聞熱點(diǎn)圖片,峰值請求在10QPS左右, 系統(tǒng)會遇到的容量問題包括:1)接口前端機(jī)容量不夠;2)緩存資源單實(shí)例遇到瓶頸。

A3:針對單點(diǎn)峰值流量可能遇到的性能瓶頸,解決方案如下。

1)接口層容量不夠:這個問題比較簡單,只要接口層設(shè)計是無狀態(tài)的,當(dāng)容量達(dá)到預(yù)警線,可以通過快速水平擴(kuò)容解決。

2)緩存資源單實(shí)例遇到性能瓶頸:如果使用的是分布式緩存,當(dāng)希望突破單一key的訪問瓶頸時(這個瓶頸既有可能是CPU資源緊張,也有可能是單機(jī)網(wǎng)絡(luò)帶寬跑滿,還有可能是磁盤IO吞吐不夠),一個辦法是分布式緩存做多副本(x3)冗余設(shè)計,這樣系統(tǒng)的吞吐量(x3)可以提高3倍,不過成本也提高3倍。另外一個辦法是針對極熱點(diǎn)數(shù)據(jù),除了分布式緩存,同時在前端機(jī)上打開localCache,依靠數(shù)量眾多的前端機(jī)來抗極熱點(diǎn)請求。


本文來自:架構(gòu)師微信公眾平臺


轉(zhuǎn)載于:https://my.oschina.net/CandyDesire/blog/482664

總結(jié)

以上是生活随笔為你收集整理的[架构]--高并发问题及解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品无码Av中文字幕 | 欧美做爰爽爽爽爽爽爽 | 毛片网在线 | 免费a级片在线观看 | 男人的网站在线观看 | 久久视频在线观看免费 | 中文字幕1 | 中文字幕精品一区二区精品 | 久久久久久18 | 久久久久久久久精 | 国产极品在线播放 | av在线播放不卡 | 国产一区二区在线免费观看 | 亚洲无吗av | 欧美 日韩 中文字幕 | 日韩欧美成人免费视频 | 欧美日韩国产在线一区 | 亚洲人成影视 | 亚洲色图插插插 | 欧美精品一区二区三区久久久竹菊 | 丰满熟女人妻一区二区三区 | 欧洲三级在线 | 免费涩涩视频 | 91精品视频在线播放 | 蜜臀999 | 日本两性视频 | 夜夜狠狠擅视频 | 另类欧美日韩 | 天天操夜夜骑 | 69精品人妻一区二区三区 | 日日草草 | 日本精品免费在线观看 | 国产精品九九九九九 | 亚洲资源在线观看 | 日本亚洲精品 | 91娇羞白丝 | 中文字幕精品在线视频 | 天堂中文网 | 韩国av不卡| 超碰在线免费公开 | 另类少妇人与禽zozz0性伦 | 久久刺激 | 在线成人一区 | 成人综合色站 | 尤物视频最新网址 | 插插插网站 | 91成人在线免费 | 欧美另类v | 日本a网| 六月激情网| 综合狠狠开心 | 亚洲一区二区三区四区五区六区 | 日本少妇全体裸体洗澡 | 香蕉视频在线免费播放 | 青青草原综合久久大伊人精品 | 激情啪啪网 | 打开免费观看视频在线播放 | 99爱精品| 精品精品精品 | 亚洲图片欧美日韩 | 波多野结衣一区二区 | 九一网站在线观看 | 国内自拍欧美 | 91av综合 | 色噜噜狠狠狠综合曰曰曰88av | 黄色国产一区二区 | 免费看的黄色小视频 | 爱逼综合 | 国产又黄又猛又爽 | 欧美激情亚洲综合 | 一区二区三区美女视频 | 成人久久网站 | 国产精品一区二区6 | 黄色一级片在线免费观看 | 久久久久人妻一区精品色欧美 | 亚洲av无码精品色午夜果冻不卡 | 亚洲中文字幕无码av永久 | jzz在线观看 | 四虎精品永久在线 | 女人的天堂av在线 | 91精品亚洲| 久久精品一区二区三区黑人印度 | 婷婷伊人综合中文字幕 | 精品国产97 | 国产微拍一区 | 日本一本久久 | 香蕉视频日本 | 99热| 婷婷麻豆| 日韩欧美在线观看免费 | 亚洲一区在线不卡 | 波多野结衣调教 | 亚洲天堂2015 | 中文在线不卡视频 | 中文字幕国产一区 | 国产v在线观看 | 久久精品aⅴ无码中文字字幕重口 | 99视频免费看| 永久免费在线 |