iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
佛心分享-IT 人自學之術

軟體工程師的湖濱散記系列 第 10

010 IO 密集&交易管理

  • 分享至 

  • xImage
  •  

訪問 Redis 也好、MySQL 都是一種網路通信,屬於 IO 密集型的任務。

任務中,若能在最小 IO 操作次數的條件下完成任務是最好。

我今天一個 api 不算訪問 DB 的話,跟 Redis 有 6-8 次的連接,包含了 tryLock 跟 unLock,明天計畫要用 Lua 腳本看可不可以只用一次連接把結果都聚合後再到 Java 做 CPU 密集型的任務。

預計這樣會在高併發的環境下降低不少的效能消耗,我蠻期待的。

另外 TX 的範圍也要縮小,需要重新規劃一下,不然現在同一個 TX 下要做的操作太多了,交易時間會拉很長。交易時間很長的話,其他想要存取相同資源的線程就會等很久,整個系統變很慢,有點像鎖的概念吧,DB 連線被佔用,後面來的請求就沒有連線可以用。

再來就是整個交易期間一定會有更多資料被載入 JVM,不管是物件還是什麼,時間拉越長這些東西就會一直清不掉,因為在交易結束前是不會 GC 這些東西的,這樣會增加記憶體負擔。


上一篇
09 DNS 雜談
下一篇
011 Lua
系列文
軟體工程師的湖濱散記11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言