為什麼我在服務之間選 gRPC,以及它真實的坑
當服務開始拆分,第一個要決定的就是:服務之間怎麼溝通。多數人預設用 REST/JSON,這沒錯,但在內部服務之間,我越來越常選 gRPC。這篇講我選它的理由,以及實際用下來真實的坑——因為它不是沒有代…
繼續閱讀 →當服務開始拆分,第一個要決定的就是:服務之間怎麼溝通。多數人預設用 REST/JSON,這沒錯,但在內部服務之間,我越來越常選 gRPC。這篇講我選它的理由,以及實際用下來真實的坑——因為它不是沒有代…
繼續閱讀 →很多人對 Redis 的印象停在「一個很快的快取」。它確實是,但在我做的高併發系統裡,Redis 扮演的角色遠不只如此。這篇講我實際用 Redis 的幾種方式、各自要注意什麼,以及那些「用錯會出大事」…
繼續閱讀 →撮合引擎是交易所的心臟。它要做的事情聽起來很單純:把買單和賣單湊在一起成交。但當你真的動手寫,而且還要承受每秒上萬筆下單、絕對不能算錯一分錢的時候,魔鬼全在細節裡。這篇是我用 Go 實作撮合引擎時,真…
繼續閱讀 →「一筆訂單成立後,要寄通知、更新庫存、產發票、加積分……」如果這些全部同步做完才回應使用者,那使用者要等很久,而且任何一步掛掉,整筆就失敗。訊息佇列就是用來解決這種問題的。這篇講我在金流與訂單系統裡,…
繼續閱讀 →寫一個能跑的 API 很快,但設計一個「會被別人用很多年、而且你還得持續維護」的 API,是完全不同的功夫。一旦有人開始依賴你的 API,你的每一個設計決定都變成要長期背負的承諾。這篇講我設計 API…
繼續閱讀 →金流是那種「平常沒事、出事就是錢」的系統。我整合過好幾家金流商,從信用卡到第三方支付,最深的體會是:金流串接真正的難度不在「打 API 送出付款」,而在處理各種「我不確定到底成功了沒」的中間狀態。這篇…
繼續閱讀 →任何對外的 API 都會遇到這個問題:有人(不管是惡意攻擊、寫壞的程式、還是爬蟲)瘋狂打你的服務。沒有限流,一個失控的來源就能把你的系統資源吃光,害到所有其他正常使用者。這篇講限流的幾個常見演算法,以…
繼續閱讀 →活動網站最刺激的時刻,就是整點開搶的那一秒。平常每秒幾十個請求的系統,在開搶瞬間可能衝到每秒上萬。而且搶購有個比一般流量更難的點:庫存是有限的,而且絕對不能超賣。送出 100 個名額,結果賣出 101…
繼續閱讀 →這是我面試後端工程師時很愛問的一題:「金額為什麼不能用 float?」聽起來基礎,但能完整講清楚、又知道實務上怎麼解的人,其實不多。這篇把我在交易所和金流系統累積的金額處理經驗講一遍。 問題的根源:二…
繼續閱讀 →Tech Hub 由台灣的後端工程師 Louis Wu 經營。我做過加密貨幣/證券交易所的撮合引擎與訂單系統、整合過多家金流(冪等、對帳、Webhook)、也建過後台管理系統與高併發的活動搶購網站,並以 .NET Core 搭配 Vue 做全端開發。
這個站的目標是「深度勝過數量」:文章少而精,每篇都源自正式環境的真實取捨與失敗經驗。 關於