踏入軟體工程領域後最深的體悟是:「在本地端跑得好好的,一上線怎麼就炸了?」在學校,專案的目標只讓功能正常運作;但實務上卻要面對不可預測的流量、極端的網路環境以及錯誤處理。
利用 30 天打造一個高併發的AWS S3 儲存微服務。拋棄傳統同步 Apache連線,實作基於 Netty 的非同步連線來突破效能瓶頸。建立堅固的容錯處理,確保檔案狀態一致性。透過壓力測試找出單一Docker部屬瓶頸,完整保留壓測結果來佐證每一次技術決策,最終部屬在K8s 叢集上,實作真正的 HA 高可用架構。
這系列文章將帶你學會如何剖析效能盲區、設計驗證實驗,完成從初階開發者到具備架構思維的決策者蛻變之旅!
昨天我們說明了網路世界最殘酷的一面。當微服務呼叫 AWS S3 上傳檔案時,如果發生 TimeoutException時不能直接斷言上傳一定失敗,也有可能是上傳...
昨天我們完成了 Double-Check Pattern 的實作,當 putObject 發生 timeout 時,後端不再直接回傳失敗,而是使用 headOb...
昨天我們完成了 Idempotency 冪等性的實作!讓前端在發起請求前先生成唯一的 uploadId,並將此 ID 作為 S3 Key。搭配昨天的 S3 Us...
在前兩篇中,我們在本地開發環境裡,利用了 simulateScenario 在代碼內部模擬超時,驗證了自我修復確實可以起死回生,手把手完成了微服務的三層防禦盾牌...
在前幾天的文章中,我們在微服務中建構了多道盾牌,從透過headObject 探針解決網路超時問題的 Double-Check Pattern,實作 Idempo...
我們從一開始的三高指標與同步/非同步引擎對決,一路升級到分散式環境下的防禦機制(Semaphore 背壓限流、Double-Check 、uploadId 冪等...
昨天我們成功運用多階段建置(Multi-stage Build)技術,將非同步 S3 微服務打包成僅有 500MB 的極輕量 Docker 容器,並在獨立隔離的...
昨天我們成功運用 Docker Compose 建立App 微服務 + Prometheus + Grafana 的全套監控服務 現在,我們的容器不再是黑盒子了...
昨天我們成功在 JMeter 上傳併發測試中,證明了前面寫的保護api的功能將 3 秒超時引發的錯誤率從 53% 降至 0%,並透過 Grafana 發現真正的...
昨天我們深入剖析了 Timeout 設定與容量規劃的數學公式,證明了盲目放寬 Timeout 只會讓連線池乾涸。 今天,我們要將壓力測試的視角從PUT上傳轉向l...