<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          面試題解答:?高并發(fā)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          共 1377字,需瀏覽 3分鐘

           ·

          2020-10-08 12:38

          高并發(fā)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)


          在開(kāi)發(fā)高并發(fā)系統(tǒng)時(shí)有三把利器用來(lái)保護(hù)系統(tǒng):緩存、降級(jí)和限流。
          • 緩存:緩存比較好理解,在大型高并發(fā)系統(tǒng)中,如果沒(méi)有緩存數(shù)據(jù)庫(kù)將分分鐘被爆,系統(tǒng)也會(huì)瞬間癱瘓。使用緩存不單單能夠提升系統(tǒng)訪問(wèn)速度、提高并發(fā)訪問(wèn)量,也是保護(hù)數(shù)據(jù)庫(kù)、保護(hù)系統(tǒng)的有效方式。大型網(wǎng)站一般主要是“讀”,緩存的使用很容易被想到。在大型“寫”系統(tǒng)中,緩存也常常扮演者非常重要的角色。比如累積一些數(shù)據(jù)批量寫入,內(nèi)存里面的緩存隊(duì)列(生產(chǎn)消費(fèi)),以及HBase寫數(shù)據(jù)的機(jī)制等等也都是通過(guò)緩存提升系統(tǒng)的吞吐量或者實(shí)現(xiàn)系統(tǒng)的保護(hù)措施。甚至消息中間件,你也可以認(rèn)為是一種分布式的數(shù)據(jù)緩存。
          • 降級(jí):服務(wù)降級(jí)是當(dāng)服務(wù)器壓力劇增的情況下,根據(jù)當(dāng)前業(yè)務(wù)情況及流量對(duì)一些服務(wù)和頁(yè)面有策略的降級(jí),以此釋放服務(wù)器資源以保證核心任務(wù)的正常運(yùn)行。降級(jí)往往會(huì)指定不同的級(jí)別,面臨不同的異常等級(jí)執(zhí)行不同的處理。根據(jù)服務(wù)方式:可以拒接服務(wù),可以延遲服務(wù),也有時(shí)候可以隨機(jī)服務(wù)。根據(jù)服務(wù)范圍:可以砍掉某個(gè)功能,也可以砍掉某些模塊。總之服務(wù)降級(jí)需要根據(jù)不同的業(yè)務(wù)需求采用不同的降級(jí)策略。主要的目的就是服務(wù)雖然有損但是總比沒(méi)有好。
          • 限流:限流可以認(rèn)為服務(wù)降級(jí)的一種,限流就是限制系統(tǒng)的輸入和輸出流量已達(dá)到保護(hù)系統(tǒng)的目的。一般來(lái)說(shuō)系統(tǒng)的吞吐量是可以被測(cè)算的,為了保證系統(tǒng)的穩(wěn)定運(yùn)行,一旦達(dá)到的需要限制的閾值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延遲處理,拒絕處理,或者部分拒絕處理等等。

          國(guó)慶節(jié),倒計(jì)時(shí),限量秒殺

          1核2G,1年62元,3年200元,國(guó)慶秒殺

          1核2G,1年62元,3年200元,國(guó)慶秒殺

          1核2G,1年62元,3年200元,國(guó)慶秒殺


          負(fù)載均衡算法:

          1. 輪詢
          2. 加權(quán)輪詢
          3. 隨機(jī)算法
          4. 一致性Hash
          常見(jiàn)的限流算法:

          常見(jiàn)的限流算法有計(jì)數(shù)器、漏桶和令牌桶算法。漏桶算法在分布式環(huán)境中消息中間件或者Redis都是可選的方案。發(fā)放令牌的頻率增加可以提升整體數(shù)據(jù)處理的速度,而通過(guò)每次獲取令牌的個(gè)數(shù)增加或者放慢令牌的發(fā)放速度和降低整體數(shù)據(jù)處理速度。而漏桶不行,因?yàn)樗牧鞒鏊俾适枪潭ǖ模绦蛱幚硭俣纫彩枪潭ǖ摹?/span>
          秒殺并發(fā)情況下庫(kù)存為負(fù)數(shù)問(wèn)題
          1. for update顯示加鎖
          2. 把update語(yǔ)句寫在前邊,先把數(shù)量-1,之后select出庫(kù)存如果>-1就commit,否則rollback。
          update products set quantity = quantity-1 WHERE id=3;
          select quantity from products WHERE id=3 for update;
          1. update語(yǔ)句在更新的同時(shí)加上一個(gè)條件
          quantity = select quantity from products WHERE id=3;
          update products set quantity = ($quantity-1) WHERE id=3 and queantity = $quantity;

          推薦閱讀


          程序員內(nèi)推群!北京!上海!廣州!深圳!杭州!鄭州!武漢!南京!西安

          瀏覽 52
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉在线视频精品视频 | 国产精品─色哟哟 | 国产一区二区无码午夜久久久豆花av | 免费观看黄色视频网站在线观看 | 亚洲yw无码在线免费观看 |