Soft_Job 板


LINE

最近要開始搞 DB了 不過對於交易這塊不知道要怎樣去寫CODE EX 進入帳 錢匯進來 可能有兩處的DB的不同TABLE要更新資訊 (兩個要一起成功 只要一個失敗就是得ROLLBACK) 但有張TABLE可能會經常被其他支程式LOCK住(需要頻繁的UPDATE) 不知道關於這方面大家都是怎樣學的 是書上建議怎樣做就照著做了嗎? 還是看前人的CODE這樣用就用了 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.180.20
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1559214112.A.D66.html
1F:→ alan3100: 錢進來要邏輯不給進嗎? rollback後退錢? 05/30 19:17
2F:→ alan3100: transaction-like:saga , w/r分離:cqrs 05/30 19:21
銀行方通知到帳後 需要把錢加上去 然後再回傳給銀行SUCCESS 的這種需求
3F:→ worcdlo: 寫db慢不意外吧,改用c寫,自己用socket去對接送資料給 05/30 19:44
4F:→ worcdlo: 你的server,進來的資料肯定有文件跟你說body怎麼拆,想 05/30 19:44
5F:→ worcdlo: 辦法串封包之後再解析出這些body,另外資料存在memory, 05/30 19:44
6F:→ worcdlo: 自定義一些資料結構去接你要的data,一般電腦的處理速度 05/30 19:44
7F:→ worcdlo: 絕對來的及在交易所送下筆封包給你時把他處理完 05/30 19:44
資料要留存的 ※ 編輯: MOONY135 (123.194.180.20), 05/30/2019 19:53:10
8F:→ x000032001: 2PC 3PC 05/30 19:56
9F:→ worcdlo: fwrite啊…,證交所+期交所日盤,整天的封包量也不過3gb 05/30 20:01
10F:→ worcdlo: 多,大致分給尖峰時段4小時,其實資料量相比電腦運算速 05/30 20:01
11F:→ worcdlo: 度少的可憐,更何況當中還有很多format是重複發送,也有 05/30 20:01
12F:→ worcdlo: 不少根本是heartbeat不用存 05/30 20:01
13F:→ worcdlo: 還是你很執著要寫在db? 指MySQL嗎? 05/30 20:07
就會用到DB MSSQL ※ 編輯: MOONY135 (123.194.180.20), 05/30/2019 20:15:19
14F:→ worcdlo: db不是很熟,你lock住是直接離開嗎?還是會卡在那個點? 05/30 20:20
15F:→ worcdlo: 有沒有類似waitevent之類的東西,就交給os幫你等待 05/30 20:22
應該說會設計成有人在使用 那張TABLE就會被鎖住(要確保資料的完整性) 但我不知道怎樣去測試有沒有UPDATE成功 或者是UPDATE成功 卻只有一邊成功這樣 ※ 編輯: MOONY135 (123.194.180.20), 05/30/2019 20:25:05
16F:→ alan3100: 假設只是要ack就單向寫入cmd進多少錢, 並不需要立刻處理 05/30 20:24
17F:→ worcdlo: 一開始沒看仔細,以為是指那種交易,然後要trigger多種 05/30 20:25
18F:→ worcdlo: 價格之類的任務 05/30 20:25
19F:→ alan3100: 只有花錢需要確定不會透支,所以並不需要等扣錢的lock 05/30 20:26
20F:→ worcdlo: 如果是你自己的系統,流量不大任務又簡單的話,可以考慮 05/30 20:28
21F:→ worcdlo: 在外面掛一個所有人共同的event,所有讀寫都先檢查這個e 05/30 20:28
22F:→ worcdlo: vent,就不用擔心不同步的問題 05/30 20:28
23F:推 ripple0129: 自己的系統也不用event了吧,一個exception 兩個都rol 05/30 20:36
24F:→ ripple0129: lback 05/30 20:36
25F:→ worcdlo: 他的問題我猜是擔心一張寫一張沒寫,帳目上的錯誤在金融 05/30 20:40
26F:→ worcdlo: 領域是很危險的,所以我才覺得統一用一個event,要嘛整 05/30 20:40
27F:→ worcdlo: 個db都是你的要嘛就是乖乖排隊 05/30 20:40
你說的需求沒錯! 不過是兩個DB的兩個TABLE ※ 編輯: MOONY135 (123.194.180.20), 05/30/2019 20:42:50
28F:→ lwtech: 沒有SA,這樣子大家會很擔心你,PM知道這件事嗎 05/30 20:46
這只是我自己在練習的部分而已 不是公司用的 如果公司可以讓我這樣亂來 也是心蠻大的
29F:推 Caninee: 解法很多 但你這樣沒能做的範圍,很難回答 05/30 20:48
30F:→ lwtech: 頻繁的UPDATE這點不太正常. 05/30 20:54
31F:→ lwtech: 常用的資料就 dirty read 就好, 整個拿到前端都可以 05/30 20:56
32F:→ lwtech: 另外,為什麼是不同DB ? 做確認頂多另外開個 temp table 05/30 20:59
33F:→ lwtech: 不同DB 是指一個是MSSQL 另一個是 Redis 這樣? 05/30 21:00
兩個都是MSSQL 那我應該指的是同一個DB不同資料庫(?)
34F:→ hsnuyi: 會計DB? 借貸要平衡齁 05/30 21:00
35F:→ lwtech: 以前的做法是每天對帳一張表,給你參考,雖然我看了也傻眼 05/30 21:02
XDDDDDDDDDDD
36F:推 snick: two phase commit 05/30 21:35
※ 編輯: MOONY135 (123.194.180.20), 05/30/2019 22:16:38
37F:→ lwtech: 不同Schema...警察 !! 05/30 22:18
38F:推 rexhuang: https://bit.ly/2QzhvHj,先解決Blocking或Deadlock問題 05/31 00:13
39F:推 rexhuang: 也可以寫入不同帳務暫存檔,再整批過帳到主檔,避免lock 05/31 00:21
40F:→ rexhuang: 感覺你需求只要日終帳正確,悠遊卡和ATM系就不能這樣處理 05/31 00:22
41F:→ MOONY135: 要悠遊卡那種的 不能整天過完在算 05/31 02:01
42F:→ flowwinds: 2 phase commit 05/31 03:00
43F:推 ripple0129: 需求不清楚下,直接給你關鍵字distributed transactio 05/31 03:55
44F:→ ripple0129: n去翻文章看比較快 05/31 03:55
45F:推 alihue: 拿第三個 db 紀錄那兩個 table trans 有沒有各自完成,第 05/31 09:05
46F:→ alihue: 三個 db 有收到那兩個 trans 都完成,就完成本次交易。當 05/31 09:05
47F:→ alihue: 然上述流程是在 ap 端做,只是借用 db trans 的成熟度來當 05/31 09:05
48F:→ alihue: log 確保交易進度 05/31 09:05
49F:→ MOONY135: 感謝各位大大的回覆 05/31 09:14
50F:推 jej: 另開一個table紀錄本次交易 再弄一個批次去更新別的資料庫? 06/01 17:38
51F:推 dsakryk: 可以看看阿里開源的https://github.com/seata/seata 06/01 23:02







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping 或 站內搜尋

TOP