技術文章

後端、系統設計與工程實戰的第一手筆記

分類:
Backend Engineering2026年7月22日

一個上線半年沒人點的匯出按鈕,被新同事點了一下,整台服務就沒了

一個平常沒人碰的按鈕 那天下午我在改一支結帳的 bug,Slack 突然開始跳訊息:後台有幾支平常穩如老狗的 API 開始噴 502,接著監控告警一路串上來,某台機器的服務直接從監控圖上消失了一段。我第一反應是「又是哪個上游掛了嗎」,翻了一下卻發現不是網路、不…

繼續閱讀 7 分鐘
Backend Engineering2026年7月19日

同一個排程在三台機器上各跑了一次,那批獎金就這樣發了兩次半

財務同事那句「這批獎金怎麼發了兩次?」 那天下午財務同事拿著一張報表走到我旁邊,語氣還算客氣,但眼神已經在問罪:「這個月的推薦獎金,怎麼有一批人拿了兩次?金額對不上,差了快六位數。」 我第一反應是:不可能。那個發放邏輯我自己寫的,每筆都有 userid 跟金額…

繼續閱讀 7 分鐘
System Design2026年7月16日

下游只是抖了三秒,我們的無腦重試把它掛了半小時

那三秒,我們自己把它變成半小時 事故那天下午,我們的訂單服務所依賴的一個內部帳務 API,因為背後資料庫做了一次主從切換,短暫不可用了大概三秒。三秒,這種等級的抖動其實每個月都會發生幾次,正常來說沒人會察覺——重試一兩下就過去了。 但那天不一樣。三秒之後,帳務…

繼續閱讀 7 分鐘
System Design2026年7月14日

一行忘了關的 debug log,一夜之間把磁碟寫爆

凌晨三點的連環告警 那天凌晨三點十七分,我的手機開始震個不停。不是一則告警,是一整排:API 5xx 飆到 40%、下單服務健康檢查失敗、資料庫連線逾時、對帳批次 job 掛掉。Slack 的 oncall 頻道在幾分鐘內被紅色圖示塞滿。 我第一個念頭跟大部分…

繼續閱讀 7 分鐘
Backend Engineering2026年7月11日

一句 ALTER TABLE,把線上寫入鎖了整整兩分鐘

三秒後告警就開始響 那天下午的需求小到不能再小:訂單表要多一個 settledat 欄位,記錄清算完成的時間。我在本機測過,在 staging 也跑過,ALTER TABLE orders ADD COLUMN settledat TIMESTAMP 一秒就回…

繼續閱讀 7 分鐘
System Design2026年7月8日

我的 Kafka consumer 一直被踢出群組、rebalance 停不下來,最後發現是我自己一則訊息處理太久

那天早上我盯著一條一路往上的 lag 曲線 那是一個很普通的週二早上,我泡好咖啡打開 Grafana,看到訂單通知服務的 consumer lag 從平常穩定的幾百,一路爬到十幾萬,而且還在往上。與此同時客服群組炸開了:有客人抱怨同一筆訂單的通知簡訊收到了四、…

繼續閱讀 8 分鐘
Backend Engineering2026年7月6日

列表頁在測試機順到不行,一上線資料一多,ORM 的 N+1 直接把 DB 打爆

那天早上,DB 的告警比鬧鐘還早響 我做的是一個後台訂單管理系統,其中有一頁是「訂單列表」,一頁 50 筆,帶著客戶名稱、負責業務、最近一筆付款狀態這些欄位。開發時我在本機測,順到我還很得意——點下去大概 80 毫秒就回來了,我甚至覺得自己 code 寫得很乾…

繼續閱讀 7 分鐘
Backend Engineering2026年7月3日

一個背景 goroutine 沒接住的 panic,把整台服務帶走了

半夜三點,服務整個消失,但沒有任何一個請求對得上 那天凌晨的告警是「服務不可用」,不是「錯誤率上升」。這兩件事的差別,做過線上的人都懂。錯誤率上升,代表某些請求爛掉,但服務還活著;服務不可用,代表整台就這樣沒了。 我拉開監控,看到的是進程重啟曲線:撮合服務在 …

繼續閱讀 8 分鐘
Backend Engineering2026年7月1日

沒關 response body,我把服務的檔案描述符慢慢耗光了

半夜三點,那個每隔四小時就掛掉的服務 那陣子我過得很痛苦。我們有一個負責串接下游風控服務的 Go 服務,白天上線都好好的,可是每隔三到四個小時,它就會突然開始大量拒絕連線,健康檢查掛掉,然後被 orchestrator 重啟。重啟完又活蹦亂跳,再過幾個小時又倒…

繼續閱讀 9 分鐘

所有文章

全部 65 篇 · 完整列表