摘要:對訂單類系統(tǒng)而言,單據(jù)號是非常重要的東西。一個好的單據(jù)號組成往往應(yīng)該包含豐富的元素,利于問題的調(diào)查,業(yè)務(wù)的擴(kuò)展。
對訂單類系統(tǒng)而言,單據(jù)號是非常重要的東西。一個好的單據(jù)號組成往往應(yīng)該包含豐富的元素,利于問題的調(diào)查,業(yè)務(wù)的擴(kuò)展。
這里列舉幾種不好的單據(jù)號范例:
單純的數(shù)字遞增: 001, 002, 003 //無業(yè)務(wù)含義
UUID//無業(yè)務(wù)含義,且無順序概念
日期+用戶ID//當(dāng)天同一用戶發(fā)生兩筆業(yè)務(wù)時可能重復(fù)
好的單據(jù)號規(guī)則
系統(tǒng)標(biāo)識 | 日期 | sequence空間 |
---|---|---|
表示當(dāng)前單據(jù)號是屬于哪個系統(tǒng)的,比如001表示支付系統(tǒng),002表示團(tuán)購系統(tǒng) | 表示這筆單據(jù)是發(fā)生在哪一天的,yyyyMMdd格式字符串 | 可放8位數(shù)字,支持一億的sequence,值可以來自當(dāng)前表的主鍵ID,不滿8位的左邊統(tǒng)一補0,這個保證了最終的唯一性 |
如果當(dāng)前系統(tǒng)有子單據(jù)概念,比如訂單系統(tǒng)里還有物流單的概念,則可以加入子業(yè)務(wù)單標(biāo)識
系統(tǒng)標(biāo)識 | 日期 | 子業(yè)務(wù)單標(biāo)識 | sequence空間 |
---|---|---|---|
- | - | 001表示物流單,002表示退款單 | - |
如果你的數(shù)據(jù)庫是分庫分表的,則強(qiáng)烈建議在單據(jù)號中加入分庫分表位,將有很大的收益
系統(tǒng)標(biāo)識 | 日期 | 分庫分表位 | sequence空間 |
---|---|---|---|
- | - | 0102表示01庫的02號表 | - |
總之好的單據(jù)號可以獲得如下收益:
根據(jù)單據(jù)號馬上可以知道這個來自哪個系統(tǒng),發(fā)生在哪一天
在這個系統(tǒng)中屬于具體哪一個子業(yè)務(wù)
這筆單子是屬于哪個庫哪個表的
在程序中只要你能獲得單據(jù)號,就能通過截取的方式獲得很多有價值的信息,便于邏輯的處理。久而久之你會不自主讓單據(jù)號貫穿整個系統(tǒng),也樂意在日志中打印,將極大方便你解決問題
當(dāng)整個系統(tǒng)群都遵守統(tǒng)一的標(biāo)準(zhǔn)時,你會發(fā)現(xiàn)當(dāng)進(jìn)入任意一個新系統(tǒng)時,只要給你這個系統(tǒng)的單據(jù)號則你都能快速定位日志,代碼,數(shù)據(jù)庫表,非常利于學(xué)習(xí)
讓我們擁抱好的單據(jù)號生成習(xí)慣吧!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/11782.html
摘要:有些接口可以天然的實現(xiàn)冪等性,比如查詢接口,對于查詢來說,你查詢一次和兩次,對于系統(tǒng)來說,沒有任何影響但對于有寫庫操作的增刪改接口,多次調(diào)用就會對系統(tǒng)有多次影響。 寫在前面:之前在設(shè)計接口時因經(jīng)驗尚淺,并未過多考慮冪等性,但這兩天出現(xiàn)的一個線上問題讓我認(rèn)識到了某些情況下接口冪等性的重要性; 非冪等場景:服務(wù)A將單據(jù)A信息通過RPC遠(yuǎn)程過程調(diào)用傳給下游服務(wù)B接口(非冪等接口)用于生成關(guān)聯(lián)...
摘要:解決冪等問題的三部曲,也是作者的思考框架。這是解決冪等問題的第二部曲列出并減少副作用的分析維度。所以在并發(fā)執(zhí)行的維度,將并發(fā)重復(fù)執(zhí)行變成串行重復(fù)執(zhí)行是最好的冪等解決方案。 綱要 文章目的:本文旨在提煉一套分布式冪等問題的思考框架,而非解決某個具體的分布式冪等問題。在這個框架體系內(nèi),會有一些方案舉例說明。文章目標(biāo):希望讀者能通過這套思考框架設(shè)計出符合自己業(yè)務(wù)的完備的冪等解決方案。文章內(nèi)容...
摘要:如果要消滅大程序,那就得切分,做好切分必然離不開高內(nèi)聚低耦合的核心思想。分布式系統(tǒng)關(guān)注點高內(nèi)聚低耦合詳解這篇聊的就是這個。也是分布式系統(tǒng)的分治思想體現(xiàn)。垂直切分垂直切分有時候也會被稱作縱向切分。題外話不到迫不得己,盡量避免進(jìn)行水平切分。 如果第二次看到我的文章,歡迎下方掃碼訂閱我的個人公眾號(跨界架構(gòu)師)喲~本文長度為5389字,建議閱讀14分鐘。堅持原創(chuàng),每一篇都是用心之作~ 沒...
摘要:建立后臺觸發(fā)熔斷操作入口,人工錄入熔斷配置或資損防控檢測出異常新增并生效熔斷配置,應(yīng)急情況生效熔斷,日常支付鏈路不會過熔斷判斷。確認(rèn)無誤或故障處理完成后,觸發(fā)解熔斷操作,業(yè)務(wù)繼續(xù)處理或駁回。 1. 資損盲區(qū) 隨著有贊支付體量的增大,資產(chǎn)部門承擔(dān)的資金管理,風(fēng)險把控的責(zé)任也越大。我們一方面要小步快跑,快速支撐業(yè)務(wù),又要穩(wěn)住底盤,守好底線。支付業(yè)務(wù)底線就是守護(hù)用戶的每一分錢,不能有資金損失...
閱讀 1702·2021-11-18 10:02
閱讀 2218·2021-11-15 11:38
閱讀 2666·2019-08-30 15:52
閱讀 2190·2019-08-29 14:04
閱讀 3231·2019-08-29 12:29
閱讀 2086·2019-08-26 11:44
閱讀 994·2019-08-26 10:28
閱讀 830·2019-08-23 18:37