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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]淘宝下单高并发解决方案

發布時間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]淘宝下单高并发解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

周末參加了@淘寶技術嘉年華 主辦的技術沙龍, 感覺收獲頗豐,非常感謝淘寶人的分享。這里我把淘寶下單高并發解決方案的個人理解分享一下。我不是淘寶技術人員,本文只是寫自己的理解,所以肯定是會有一些出入的。

  在session中牧勞為我們介紹了淘寶下單部分的技術方案變遷,我不介紹變遷,而只對現有系統做介紹。

  要優化下單,提高下單的TPS (Transaction per second),我們首先要做的是對下單的邏輯剝離,只保留核心部分,而把附加功能剔除出去。比如說下單要考慮庫存量,考慮發短信,要給賣家發旺旺消息通知,要對訂單做統計,要做銷售額統計等等,這些功能是必要的,但是也是附加的功能,要最大程度提高下單這一步的TPS,就要先不考慮這些東西。

  下單必然會涉及到買家查看訂單,和賣家查看收到的訂單,修改訂單價格等,這是下單的核心。 在下單這個操作中有買家和賣家兩個密切關聯而有不同的視角。牧勞稱為兩個不同的維度。據牧勞的介紹下單這一步只有5張表,這5張表涵蓋了這兩個維度的操作。

  下單是在一個數據庫事務中進行的,要提高數據庫的事務并發數,最有效的辦法是拆分,拆分有兩種,一是對庫進行拆分,另一種是在同一個庫中對表進行拆分。要做拆分首先就要考慮拆分依據的字段,淘寶是根據訂單號做拆分的,而下單中有兩個維度,買家和賣家,對訂單做拆分之后,必須還是可以通過買家,賣家方便的查詢著兩個維度的數據。該怎么辦呢?這里留個疑問,我先介紹淘寶拆分的規模,淘寶將訂單表拆分到16個mysql庫中,而在每個庫中又將訂單表橫向拆分為64份,相當于將一個表拆分為1024份。拆分之后事務會分散到1024套表中,這必然會很大程序上增加并發的事務處理能力(這兒我說是必然,但是淘寶在使用這種方案之前是要經過壓力測試,實際測試出這種方案的TPS之后,才會逐步采用這種方案的)。上面留了一個疑問,經過拆分之后如何保證買家賣家快速的查詢其下的訂單呢?最好的辦法是保證買家,賣家下的訂單在一張表中,如何保證呢?淘寶的做法是將買家的id取模后放到訂單號中。假定一個訂單號是142424594267664;這個訂單號對應的訂單該放在哪臺服務器上的哪個表中,是根據訂單的后四位7667,對1024取模之后決定的;同時7667是買家id的后四位。這樣買家在查詢其訂單時就可以通過其id獲得其訂單所在庫以及表,就可以方便有效的查詢買家訂單了。這里會帶來另外一個問題,賣家查詢訂單時怎么辦?前面我們已經提到賣家和買家被分成兩個不同的維度來做表設計,賣家查詢時不是直接查訂單表,而是通過賣家維度的表來做查詢。賣家維度的表的插入,更新是通過在訂單插入時發一個消息來通知插入的。同樣對于發短信、發旺旺也是通過消息來處理的,這些附加功能不參與到下單的事務中去。

  即使這樣做了庫,表的拆分,依然會有問題。淘寶在雙11時的一天的交易量就達到了5000多萬,這樣幾個月過去后,這些拆分后的表中的數據量也會達到很大的一個量,處理速度就會下降。淘寶的做法是把三個月之前的老數據遷移到其他庫中,這樣就避免了數據量增大導致的系統響應時間降低的問題。但是會帶來另外一個問題,用戶在查詢訂單時需要同時查兩個庫,一個是歷史數據表,另一個是近期數據表;這個問題無可避免,就是通過查詢兩次解決。

  也許有的朋友會想到拆分之后對全數據做統計會有問題。如果在拆分后的表上做統計,是肯定會有問題的。怎么做呢?其實很簡單,把數據遷移到別的庫中去做統計。

  表做拆分可以大大的提高TPS,但是也會帶來一些問題,需要通過可靠的消息通知機制通知其他模塊做非核心處理的事情,需要通過高效的搜索系統保證搜索數據的及時更新。

  以上是我個人對淘寶下單高并發設計的理解。這是膚淺的,實際做的時候肯定還需要考慮更多的問題,比如數據庫的調優,磁盤IO方式,服務器穩定性;方案的可測試性,可量化等等。

  上周六的技術還分享介紹了很多其他方面的精彩內容。感謝主辦方,主持人! 期待@淘寶技術嘉年華 更多精彩的技術沙龍。

  訂單號介紹勘誤:

  文中對于訂單號的表述有點問題,對于16臺服務器,每臺服務器64張表只需要2位買家或賣家id的后兩位數字就可以準確定位到具體的庫和表。訂單號中同時存在買家id的最后兩位和賣家id的最后兩位。分別在訂單號的倒數第3,4位數和最后兩位數。

  假定買家id為123456789,那么在訂單號中的最后兩位就是89,通過89對16取模就可以定位到具體的庫上,通過對64取模就可以定位到具體的表上。

轉載于:https://www.cnblogs.com/jking10/p/4470690.html

總結

以上是生活随笔為你收集整理的[转]淘宝下单高并发解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费的三级网站 | 欧洲性开放大片 | 免费网站观看www在线观看 | 91小视频在线观看 | 91av毛片| 丰满少妇在线观看网站 | 香蕉成人在线视频 | 久久免费视频观看 | 亚洲一区二区精品 | 一个人在线观看www软件 | 国产二区av| 丝袜美女被c | 久国产| 国产精品av在线播放 | 国产成人三级在线观看 | 成人福利小视频 | 男女靠逼视频 | 日本韩国在线 | 69精品久久 | 亚洲啪啪免费视频 | 国产系列在线观看 | 久久久久国产精 | av在线观| 朝桐光av一区二区三区 | 欧美成人免费看 | 天天综合永久入口 | 女人17片毛片60分钟 | 精品人妻天天爽夜夜爽视频 | 一个色综合久久 | 精品探花| 亚洲视频日韩 | 青青操视频在线播放 | 日韩欧美中文一区 | 97精品人妻一区二区 | 在线成人国产 | 91插插插视频 | 午夜精品福利一区二区三区蜜桃 | 91麻豆国产福利精品 | 亚洲免费在线 | 伊人网伊人网 | 成人人人人人欧美片做爰 | 中文字幕亚洲乱码熟女一区二区 | 麻豆视频免费看 | 久久久久久久久久99精品 | 亚洲视频一区在线播放 | 手机av不卡| 亚洲第一区av | 少妇真实被内射视频三四区 | 欧美一级片在线 | 午夜爱| 日韩性网站 | 亚洲一区不卡在线 | 国产视频三级 | 大尺度床戏视频 | 国产一区二区三区三州 | 国产一线二线在线观看 | 欧美一级性片 | 深夜福利1000 | 欧美一区二区三区婷婷 | 一区免费在线观看 | jizz自拍| 亚洲大尺度视频 | 亚洲精品天堂成人片av在线播放 | 天天干天天操天天射 | 韩国三级视频在线 | 欧美激情亚洲综合 | 青草草在线视频 | 一曲二曲三曲在线观看中文字幕动漫 | 国产在线视频99 | 岛国av在线免费观看 | 国产对白在线 | 天天综合永久入口 | 日韩无码电影 | 精品国产福利 | 极品国产91在线网站 | 国产免费不卡av | 日本东京热一区二区 | 亚洲欧美另类在线 | 夜夜骚网站 | 在线观看亚洲国产 | 国产日韩欧美激情 | 午夜精品福利一区二区蜜股av | 免费在线日本 | 精品人妻一区二区三区在线视频 | 特黄大片又粗又大又暴 | 中文字幕在线观看视频免费 | 黄色视屏网站 | 欧美女人天堂 | 性久久久 | 国产欧美综合一区二区三区 | 久久yy | 亚洲蜜臀av乱码久久精品蜜桃 | 在线观看亚洲a | 伊人久久久久久久久久久 | 中文字幕一区二区三区人妻四季 | 香蕉视频网站入口 | 国产自产 | 国产福利免费 | 大尺度做爰啪啪床戏 |