精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

前端交易型系統設計原則

開發 開發工具
設計了一些系統,也有了一些自己的觀點,個人認為設計系統要因場景因時間而異,一個系統不是一下子就設計的非常完美,在有限的資源情況下一定是先解決當下最核心的問題,并預測/發現未來可能出現的問題,一步步解決最痛點的問題。

[[177173]]

從畢業到現在已經快7年開發經驗了,做過基礎用戶系統、積分商城、偷菜游戲、論壇、博客等等;也一個人全棧開發在線視頻網站(http://sishuok.com/),也開發過幾萬、幾十萬、幾千萬、幾個億不同量級的系統,踩過不少坑,也學到許多經驗。

設計了一些系統,也有了一些自己的觀點,個人認為設計系統要因場景因時間而異,一個系統不是一下子就設計的非常***,在有限的資源情況下一定是先解決當下最核心的問題,并預測/發現未來可能出現的問題,一步步解決最痛點的問題。也就是說系統設計是不斷迭代的過程,在迭代中發現問題修復問題;即滿足需求的系統是不斷迭代優化出來的,不是一下子就架構的非常***,這是一個持續的過程,個人不相信***架構銀彈。不過如果一開始就有好的基礎系統設計,未來可以更容易達到一個比較滿意的目標。

在設計系統時應該多思考墨菲定律

1、任何事都沒有表面看起來那么簡單;

2、所有的事都會比你預計的時間長;

3、會出錯的事總會出錯;

4、如果你擔心某種情況發生,那么它就更有可能發生。

但是也要思考80/20法則,在系統設計初期將有限的資源用到刀刃上,我們的目標是系統滿足現有需求并能支持未來需求。

在持續開發系統過程中前輩們也總結了很多設計原則/經驗;而我個人也有幸運用了一些經驗/原則。設計原則是系統發展初期或進化過程中根據自己系統特征匹配使用的,如果剛開始不是核心問題請不要復雜化系統設計。

拆分

在系統設計初期,是做一個大而全的系統還是進行按功能拆分系統這個需要進行權衡;比如做私塾在線時本身用戶量/交易量不會特別大,而且開發就我一個人,資源有限,那就沒必要對系統拆分(比如拆分商品、訂單等等),就是做一個大而全的系統。而比如設計一個京東秒殺系統,預測到一旦上線量會非常大,而且投入的資源還是蠻充足的,這種情況下就要考慮進行按功能拆分系統。

筆者遇到的拆分主要有如下幾種情況:

  • 系統維度:按照系統功能/業務拆分,比如商品系統、購物車、結算、訂單系統等等;
  • 功能維度:對一個系統進行功能再拆分,比如優惠券系統,可以拆分為后臺券創建系統、領券系統、用券系統等;
  • 讀寫維度:根據讀寫比例特征進行拆分,比如商品系統,交易的各個系統都會讀取,讀大于寫,因此就可以進行拆分:商品寫服務、商品讀服務;讀服務可以考慮全量緩存提升性能;比如寫的量太大,需要考慮分庫分表;還有些聚合讀取的場景,如商品詳情頁,請考慮數據異構拆分系統,將分散在多處的數據聚合到一處存儲,提升讀的性能和可靠性;
  • AOP維度:根據訪問特征,按照AOP進行拆分,比如商品詳情頁,可以分為CDN、頁面渲染系統;CDN就是一個AOP系統;
  • 模塊維度:比如按照基礎或者代碼維護特征進行拆分,如基礎模塊:分庫分表、數據庫連接池等等;還有如代碼維護一般按照三層架構(Web、Service、DAO)進行劃分。

服務化

首先判斷是不是只需要簡單的單點遠程服務調用即可,如果單機扛不住了需要集群,是不是可以在客戶端注冊多臺機器,使用Nginx進行負載均衡即可解決;如果隨著調用方越來越多,就要考慮使用服務自動注冊和發現(如Dubbo使用zookeeper);還要考慮服務的分組/隔離,比如有的系統訪問量太大導致把整個服務打掛,因此需要為不同的調用方提供不同的服務分組,隔離訪問;后期還會隨著調用量的增加還要考慮如服務的限流、黑白名單等等。還有一些細節需要注意,如超時時間、重試機制、服務路由(能動態切換不同的分組)、故障補償等等,這些都會影響到服務的質量。

總結為進程內服務--->單點遠程服務--->集群手動注冊服務--->自動注冊和發現服務---->服務的分組/隔離/路由---->限流/黑白名單。

數據版本化,可回滾

在設計時考慮是否需要進行數據的版本化,數據維護出問題是否需要回滾。比如商品的維護是不是需要版本化。我們目前有一些非常重要的系統需要對數據進行版本化并且支持可回滾。整體設計類似于下圖設計:

對數據進行版本化并且支持可回滾的整體設計

流程可定義

如果接觸過保險業務,會發現不同的保險理賠服務是不一樣的,因此我們在系統設計時就設計了一套理賠流程服務。而承保流程和理賠流程是分離,然后進行關聯,從而可以復用一些理賠流程并提供個性化的理賠流程。

狀態與狀態機

在設計交易訂單系統時,會存在正向狀態(待付款、待發貨、已發貨、完成)和逆向狀態(取消、退款)等,正向狀態和逆向狀態應該根據自己系統的特征來決定是不是需要分離存儲。

另外還有訂單狀態的變遷,比如待支付、已支付待發貨、待收貨、完成的遷移;要考慮是不是需要使用狀態機來驅動狀態的變更和后續流程節點操作。

還要考慮并發狀態修改問題,同時對同一個訂單只存在一個修改;狀態變更的有序問題,狀態變更消息的先到后到問題,如支付成功消息和用戶取消消息的時間差。

消息隊列

消息隊列,用來解耦一些不需要同步調用的服務或者訂閱一些自己系統關心的變化;使用消息隊列可以實現服務解耦(一對多消費)、異步、緩沖(削峰)等。比如電商系統中的交易訂單數據,該數據有非常多的系統關心并訂閱,比如訂單生產系統、定期送系統、訂單風控系統等等;如果訂閱者太多,那么訂閱單個消息隊列就會成為瓶頸,此時需要考慮對消息隊列進行多個鏡像復制。

大流量緩沖持久化

在電商搞大促時,此時的系統流量會高于正常流量的幾倍甚至幾十倍,此時就要進行一些特殊的設計來保證系統平穩度過這段時期;而解決的手段很多,一般都是犧牲強一致性,而是保證最終一致性即可。

比如扣減庫存,可以考慮這樣設計:

扣減庫存的設計

直接在Redis中扣減,然后記錄下扣減日志,通過Worker去同步到DB。

還有如交易訂單系統,可以考慮這樣設計:

交易訂單系統的設計

首先結算服務調用訂單接單服務將訂單存儲到:訂單Redis和訂單隊列表,訂單隊列表可以按照需求水平擴展N個表,通過隊列緩沖表提升接單的能力;然后通過同步Worker同步到訂單中心表;假設用戶支付了訂單,訂單狀態機會驅動狀態變更,此時可能訂單隊列表的訂單還沒有同步到訂單中心表,此時狀態機就要根據實際情況進行重試。

如果用戶查看單個訂單詳情可以直接從訂單Redis就能查到;但如果查詢訂單列表需要考慮訂單Redis和列表的合并。

同步Worker在設計時需要考慮并發處理和重復處理的問題,單機串行掃描處理(每臺Worker只掃描其中的一部分表)還是集群處理(Map-Reduce),另外需要考慮是否需要對訂單隊列表添加相關字段:處理人(哪個應用正在處理)和處理狀態(正在處理、已處理、處理失敗)。

數據校對

在使用了消息異步機制的場景下,可能存在消息的丟失,需要考慮進行數據校對和修正來保證數據一致性和完整性。可以通過Worker定期去掃描原始表進行補償,掃描周期根據實際場景進行定義。

數據異構化

訂單分庫分表一般按照訂單ID進行分,那么如果要查詢某個用戶的訂單列表就需要聚合N個表的數據然后返回,這樣會導致訂單表的讀性能很低;此時需要對訂單表進行異構,異構一套用戶訂單表,按照用戶ID進行分庫分表;另外還需要考慮對歷史訂單數據進行歸檔處理。

還一種異構場景,如商品詳情頁,因為數據來源太多,影響服務穩定性的因素就太多了,因此***的辦法是把使用到的數據進行異構存儲,形成數據閉環;提升服務的性能和穩定性。而有些數據異構的意義不大,如庫存價格可以考慮異步加載,或者并發請求合并。

后臺系統操作可反饋

在我接觸過的很多系統,很多場景都需要反饋,比如修改了某些內容想預覽看看最終效果,即想得到一些反饋;還有一些是規則系統,希望看到這些規則在系統數據下的反饋。因此在設計后臺系統請考慮效果的可預覽、可反饋。

后臺系統審批化

對于有些重要的后臺功能需要設計審批流,比如調整價格,并對操作進行日志記錄從而保證操作可追溯、可審計。

防重設計

比如結算頁需要考慮重復提交,還有如下單扣減庫存時需要防止重復扣減庫存。解決方案可以考慮防重KEY、防重表。而有些場景如重復支付,如有的電商網站同時支持微信支付、京東支付,渠道不一樣是無法防止重復支付的,但是系統設計時需要將支付的每筆情況記錄下。比如下圖是我在京東使用京東支付和微信支付模擬的重復支付之后進行退款的支付明細:

冪等設計

在交易系統中經常會用到消息,而現有消息中間件基本不保證不發生重復消息的消費;因此需要業務系統考慮在重復消息消費時進行冪等處理。還有如使用第三方支付時,第三方支付會進行異步回調,因此也要考慮做好回調的冪等處理。

【本文是51CTO專欄作者張開濤的原創文章,作者微信公眾號:開濤的博客( kaitao-1234567)】

責任編輯:趙寧寧 來源: 開濤的博客
相關推薦

2025-06-03 08:05:00

設計原則開發代碼

2024-02-22 00:09:00

開發代碼

2024-08-16 14:01:00

2022-06-22 05:42:32

數據庫事務處理分析查詢

2016-03-29 09:59:11

JavaScriptAPI設計

2013-04-17 10:46:54

面向對象

2012-05-08 10:14:45

設計原則

2024-12-06 11:58:16

2012-03-15 11:15:13

Java設計模式

2013-06-09 11:04:07

設計扁平化設計平面化設計

2010-10-11 11:25:26

MySQL主鍵

2012-06-07 10:11:01

面向對象設計原則Java

2017-06-19 14:21:01

JavaScriptAPI設計原則

2011-06-01 10:58:57

2012-03-07 08:54:45

移動應用交易型元數據

2012-03-07 10:40:19

Java設計模式

2012-03-05 13:58:34

設計模式里氏置換

2012-03-07 11:03:13

Java設計模式

2011-05-31 17:59:48

C++

2014-05-04 11:06:41

移動網站移動設計
點贊
收藏

51CTO技術棧公眾號

国产污在线观看| 久久久久久久9| 99久久久久成人国产免费| 欧美精品一卡| 亚洲第一av网| 女人另类性混交zo| av在线free| 久久天天做天天爱综合色| 成人激情视频在线播放| 色播视频在线播放| 91精品一区二区三区综合| 亚洲黄一区二区| 欧美午夜精品理论片| 日韩 国产 在线| 欧美一级精品片在线看| 欧美va在线播放| 成人性视频欧美一区二区三区| 在线中文字幕第一页| 国产丝袜美腿一区二区三区| 亚洲综合中文字幕在线| 中文字幕在线观看视频免费| 欧美精品入口| 久久久国产91| 337人体粉嫩噜噜噜| 韩国精品福利一区二区三区| 7777精品伊人久久久大香线蕉最新版| 国产日韩一区二区在线观看| 国产第一页在线| 亚洲视频一区二区在线| 五月天亚洲综合情| 欧美在线观看在线观看| bt欧美亚洲午夜电影天堂| 91在线播放国产| 亚洲系列在线观看| 三级一区在线视频先锋| 91av免费观看91av精品在线| 久久久国产精华液| 亚洲91精品| 日韩日本欧美亚洲| 特级西西人体高清大胆| 五月天婷婷激情网| 亚洲国产综合网| 亚洲欧美日韩国产一区二区| 欧美激情a在线| 三上悠亚作品在线观看| 日韩一级毛片| 色天天综合狠狠色| 亚洲精品国产91| 综合亚洲自拍| 亚洲精选在线观看| 在线免费观看日韩av| 麻豆精品99| 亚洲精品电影在线| 鲁大师私人影院在线观看| 国产成人tv| 精品成a人在线观看| 国产ts在线观看| 伊人久久亚洲| 亚洲福利视频专区| av在线播放网址| 久久99国产精品久久99大师| 女同一区二区免费aⅴ| 91蜜桃网址入口| 免费久久久一本精品久久区| 蜜芽tv福利在线视频| 国产亚洲制服色| 日韩在线电影一区| 永久免费av在线| 亚洲免费在线观看视频| 国产乱子伦精品视频| 色呦呦在线资源| 亚洲成人精品一区| 日本精品一区在线观看| 欧美日韩精品一区二区三区视频| 91国产免费看| 亚洲理论中文字幕| gogo久久日韩裸体艺术| 国产偷亚洲偷欧美偷精品| 欧美偷拍一区二区三区| 97精品国产福利一区二区三区| 超碰精品一区二区三区乱码| 日本熟妇成熟毛茸茸| 久久av一区二区三区| 国产精品高潮呻吟久久av黑人| 97超碰人人草| 成人网在线播放| 欧美第一黄网| 免费在线观看黄色网| 亚洲图片有声小说| 青青草av网站| 日韩精品成人在线观看| 日韩精品一区二区视频| 国产午夜精品久久久久久久久| 亚洲深深色噜噜狠狠爱网站| 9.1国产丝袜在线观看 | 先锋资源在线视频| 欧美激情极品| 日韩在线观看av| 亚洲视频免费播放| 蜜臀av一区二区| 国产精品有限公司| 91在线免费看| 欧美日韩国产综合新一区 | 欧美成人黄色| 亚洲精品按摩视频| 影音先锋男人资源在线观看| 国产精品日韩| 亚洲bt欧美bt日本bt| 亚洲欧美日韩免费| 悠悠色在线精品| 久久午夜夜伦鲁鲁一区二区| 丁香综合av| 久久久精品美女| 久久精品99北条麻妃| 成人美女视频在线观看18| 自拍偷拍亚洲色图欧美| 亚洲精品成人图区| 精品欧美久久久| 男人在线观看视频| 另类小说欧美激情| 欧美日韩国产精品一卡| а_天堂中文在线| 日韩视频在线一区二区| 日韩精品久久久久久久的张开腿让| 亚洲制服av| 国产精品.com| 羞羞网站在线看| 欧美老肥妇做.爰bbww| 日本美女xxx| 丝袜亚洲另类欧美综合| 久久久久无码国产精品一区| 国产精品一区hongkong| 91精品国产高清一区二区三区蜜臀| 久久日免费视频| 久久久xxx| 久久综合给合久久狠狠色| 国产亚洲成av人片在线观看| 日韩三级视频中文字幕| 丁香花五月激情| 精品一区二区三区的国产在线播放| 视频在线精品一区| 成人交换视频| 尤物九九久久国产精品的分类| 国产69精品久久久久久久久久| 国产成人超碰人人澡人人澡| 成人午夜视频免费观看| 国产一区二区av在线| 超碰精品一区二区三区乱码| h狠狠躁死你h高h| 亚洲一区在线观看免费| 国内精品免费视频| 在线欧美不卡| 久久精品二区| 欧美羞羞视频| 在线观看精品国产视频| 亚洲系列在线观看| 亚洲女性喷水在线观看一区| 日韩精品视频网址| 很黄很黄激情成人| 精品日韩美女| 在线观看精品| yw.139尤物在线精品视频| 国产精品久久久久毛片| 伊人开心综合网| 中文在线观看免费视频| 先锋亚洲精品| 一区二区不卡在线观看| 精品99re| 欧美中文字幕在线观看| 在线激情网站| 欧美成人女星排行榜| 成年人免费高清视频| 欧美韩国日本综合| 一级日本黄色片| 99日韩精品| 日韩欧美在线电影| 精品网站999| 欧美专区中文字幕| 免费在线午夜视频| 亚洲国产精品高清久久久| 无码人妻熟妇av又粗又大| 一色屋精品亚洲香蕉网站| 无码国产精品一区二区高潮| 国产视频一区三区| 最新精品视频| 任你躁在线精品免费| 国产欧美精品一区二区三区介绍| 日韩123区| 国产一区二区三区18| www黄色网址| 色婷婷综合激情| 欧美精品久久久久性色| 久久久精品日韩欧美| 少妇欧美激情一区二区三区| 小嫩嫩精品导航| 中文字幕在线中文| 夜夜春成人影院| 不卡日韩av| 日韩电影大全网站| 久久久人成影片一区二区三区观看| 国产美女视频一区二区三区 | 亚洲色图88| 欧美色欧美亚洲另类七区| 日韩视频一二区| 国产成人极品视频| 超碰在线最新网址| 色综久久综合桃花网| 深夜影院在线观看| 日韩精品一区二区在线| 中文字字幕在线中文乱码| 精品久久久精品| 人人澡人人澡人人看| 久久先锋影音av| 97精品人妻一区二区三区蜜桃| 奇米影视一区二区三区小说| 欧美aⅴ在线观看| 海角社区69精品视频| 吴梦梦av在线| 色婷婷色综合| 日韩欧美99| 女厕嘘嘘一区二区在线播放| 国产美女精品久久久| 国产高清亚洲| 国产欧美精品一区二区三区-老狼| 韩国美女久久| 欧美在线观看日本一区| 第一中文字幕在线| 欧美精品在线第一页| 亚洲s色大片| 国产一区二区成人| 国产在线你懂得| 亚洲美女精品成人在线视频| 天天色综合久久| 亚洲国产精彩中文乱码av| www国产一区| 精品国产精品网麻豆系列| 99在线精品视频免费观看软件| 7777精品伊人久久久大香线蕉经典版下载 | 国产在线中文字幕| 亚洲美女视频网| 日本啊v在线| 亚洲欧美中文日韩在线v日本| 色婷婷av一区二区三| 亚洲精品www久久久| 天堂网在线中文| 日韩精品电影网| 日本国产在线| 在线观看亚洲区| 在线视频婷婷| 欧美刺激性大交免费视频| h片在线观看网站| 精品中文字幕视频| 成人三级小说| 欧美一级在线亚洲天堂| 色尼玛亚洲综合影院| 国产精品一二三在线| 先锋影音网一区二区| 97超级碰碰| 免费萌白酱国产一区二区三区| 久久精品aaaaaa毛片| 欧美亚洲国产激情| 正在播放91九色| 中文无码久久精品| 国产中文字幕乱人伦在线观看| 亚洲激情社区| 91在线视频观看免费| 久久国产三级精品| 日本泡妞xxxx免费视频软件| aaa欧美日韩| 波多野结衣av在线观看| 国产精品剧情在线亚洲| 日本老熟俱乐部h0930| 精品magnet| 中文字幕丰满人伦在线| 日韩欧美中文字幕制服| 亚洲色偷精品一区二区三区| 中文字幕欧美精品在线| 超碰在线免费公开| 91精品国产免费久久久久久 | 久久国产精品免费一区| 精品视频黄色| 波多野结衣 作品| 久久av一区| 精产国品一区二区三区| 久久美女高清视频| 国产suv一区二区三区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | shkd中文字幕久久在线观看| 欧美成人激情在线| jizz内谢中国亚洲jizz| 亚洲精品免费av| 一区二区三区日本久久久| 久久久久久久久久久久久国产| 国产日韩欧美三级| 天天色天天综合网| 91免费看视频| 欧美国产精品一二三| 欧洲人成人精品| 免费国产羞羞网站视频| 一区二区三区四区视频| 国产亚洲成av人片在线观看| 成人写真视频福利网| 亚洲综合小说图片| 97超碰国产精品| 激情综合亚洲精品| 国产成人一区二区在线观看| 亚洲国产视频直播| 国产精品-色哟哟| 国产亚洲人成网站在线观看| av资源一区| 亚洲一区二区中文字幕| 国产欧美日韩影院| 欧美日韩性生活片| 国产精品白丝jk黑袜喷水| 国产又粗又硬视频| 色域天天综合网| 五月婷婷激情在线| 欧美国产中文字幕| 国产在线不卡一区二区三区| 天堂资源在线亚洲资源| 久久精品主播| 30一40一50老女人毛片| 亚洲高清免费在线| 成人av一区二区三区在线观看| 日韩在线播放av| 日韩成人综合网| 天天综合狠狠精品| 日本中文字幕一区| 国产成人福利在线| 色狠狠综合天天综合综合| 深夜福利视频在线观看| 97视频免费观看| 欧美有码在线| 国产原创popny丨九色| 成人激情免费网站| 久久婷婷国产麻豆91| 日韩欧美中文字幕公布| 亚洲欧美成人影院| 91超碰rencao97精品| 一本精品一区二区三区| 黄色片免费网址| 亚洲卡通动漫在线| 国产99久一区二区三区a片| 超薄丝袜一区二区| 91久久精品无嫩草影院| 国产精品日韩三级| 高清久久久久久| 日本在线视频免费| 日韩极品精品视频免费观看| 中文字幕在线视频久| 日本在线视频不卡| 蜜桃视频在线观看一区| 小泽玛利亚一区| 日韩欧美一级片| 成人黄色动漫| 欧美日韩一区在线观看视频| 久久精品三级| 黄色一级片一级片| 日韩一本二本av| 91破解版在线观看| 欧美国产一二三区| 精品一区二区免费看| 欧美日韩成人免费观看| 日韩高清av一区二区三区| av激情成人网| 99精品一级欧美片免费播放| 成人av在线看| 日日夜夜狠狠操| 久久激情视频免费观看| 中文字幕一区二区三区日韩精品| 色欲色香天天天综合网www| 久久久天堂av| 国产在成人精品线拍偷自揄拍| 色综合天天综合网国产成人网 | 日韩三级视频在线播放| 亚洲美女性视频| 成人在线日韩| 91成人在线观看喷潮教学| 亚洲国产高清在线观看视频| 99热这里精品| 国产成人精品视频| 国产精品99视频| 黄色av网址在线观看| 欧美三级中文字| 都市激情久久综合| 亚洲高清123| 成人av免费在线观看| 成人黄色三级视频| 欧美精品videosex性欧美| 国产一区网站| 国产裸体视频网站| 在线亚洲精品福利网址导航| 天堂成人av| 性欧美大战久久久久久久免费观看 | 国产人成视频在线观看| 91高清视频在线| 538在线观看| 在线综合视频网站| 久久久一区二区三区| 国产chinasex对白videos麻豆|