昨天我們深入剖析了 Timeout 設定與容量規劃的數學公式,證明了盲目放寬 Timeout 只會讓連線池乾涸。 今天,我們要將壓力測試的視角從PUT上傳轉向l...
前幾天我們完成了微服務容器化(Docker)、Prometheus/Grafana 監控服務建立、破除長 Timeout 迷思、並透過壓力測試驗證了listOb...
昨天我們成功在 JMeter 上傳併發測試中,證明了前面寫的保護api的功能將 3 秒超時引發的錯誤率從 53% 降至 0%,並透過 Grafana 發現真正的...
昨天我們完成了 Double-Check Pattern 的實作,當 putObject 發生 timeout 時,後端不再直接回傳失敗,而是使用 headOb...
在前兩篇中,我們在本地開發環境裡,利用了 simulateScenario 在代碼內部模擬超時,驗證了自我修復確實可以起死回生,手把手完成了微服務的三層防禦盾牌...
昨天我們說明了網路世界最殘酷的一面。當微服務呼叫 AWS S3 上傳檔案時,如果發生 TimeoutException時不能直接斷言上傳一定失敗,也有可能是上傳...
昨天我們用 JMeter 與 JConsole 進行了本地端的第一波大壓測,親眼見證了非同步 Netty 在面對高併發流量時,如何以極其穩定的執行緒表現,不過在...
昨天我們用 Spring Boot 框架將 Apache 同步與 Netty 非同步引擎封裝成了對外的微服務 API。 理論說得天花亂墜,但在本機電腦上,這兩...
昨天我們親眼見證了同步連線的慘況:當大量併發請求湧入時,少量的執行緒會因為等待 I/O 而卡死(執行緒飢餓);但如果無腦加開成千上萬個執行緒,又會讓伺服器記憶體...
前幾天的單機壓測中,目睹了伺服器在極限流量下崩潰的瞬間。不論如何優化Netty的Event Loop,當請求像海嘯般湧入時,記憶體指標依然無情地飆升,最終迎來O...
昨天我們用餐廳的比喻了解了同步與非同步的差異。今天,我們要會透過程式碼,重現傳統同步連線在面對併發請求時,伺服器會面對哪些問題 為了專注於觀察底層行為,我們今天...
前兩天我們聊了系統設計的思維,以及高併發情境下(如演唱會搶票)伺服器連線池被榨乾的慘況。今天,我們終於要切入正題,來面對那個讓無數後端工程師頭痛的終極殺手——高...
在實作之前,我們必須先釐清真實世界的系統到底長什麼樣子。回想以前自己寫些小專案時,只要資料庫寫得進去、畫面出得來就好。但在真實的商業環境裡,不同類型的服務面臨著...
前言 嗨,我是前端工程師 Jimmy,於 22 年初轉職,轉職後沒多久 GitHub Copilot 發布,在開發領域掀起不小的話題,同年底 OpenAI 發布...
目標 我們在Day 23 學習到了後端框架的選擇以及簡單的CRUD[Day23] Python專案 - 網頁開發 - (2) 高速的服務提供者Fast API...
在這個大數據時代,後端開發扮演著至關重要的角色。隨著數位轉型的加速,幾乎所有行業都在尋求強大的後端開發來分析、處理海量數據。讓我們深入探討為什麼後端開發如此重...
若您與我成功熬過了這三十天的內容,並且實際上手練習、吸收進去的話 ── 那麼恭喜您!您肯定已經具備著一定的網頁設計實力了。 不過呢,這三十天的內容都只教了些基礎...
昨日了解完Flask的安裝至頁面跳轉、動態生成等內容後,今天我們要更深入介紹Flask的請求和表單製作! Flask請求 在學習請求前,我們要先了解HTTP方...
在大概摸索Python的基本語法和函式修飾器後,我們今天終於可以回歸正題 —— 使用Python架設一個輕量級的網頁後端伺服器! 我們今天要接觸的東西名為Fla...
我們上一篇學會怎麼將我們的 FastAPI 應用程式打包成 Docker 容器,今天要教大家怎麼用 GCP 的 Cloud Run 將之前的庫存系統範例部屬到雲...
我們的30天也接近尾聲了,該學的東西也學習的差不多,接著我們可以來思考該怎麼將服務進行部署,通常我們會使用 Docker,將應用程式容器化,藉此部署在我們想要的...
今天我們要介紹如何使用 FastAPI 來建立可以提供檔案上傳的 API 接口。 安裝套件 pip install python-multipart 由於上...
我們在實務上面常常會遇到要定期執行某項事件的時候,這個時候有很多套件或軟體可以達成這件事情,今天要介紹的是 Python 中的 ApScheduler 這個套件...
今天我們要來講解如何在 FastAPI 中使用 WebSocket,首先我們先來了解甚麼是 WebSocket吧。 WebSocket WebSocket 是一...
前一章節我們介紹了非同步的 database 連線,那對於網路請求我們也可以使用非同步的方式,讓我們在存取第三方 API 或是與其他微服務串接時能夠提升效能。...
今天我們將介紹如何在 fastapi 中集成與資料庫的非同步連線。 我們與官方文件教學不同的是使用 sqlalchemy 本身的 asyncio 功能,筆者記得...
session與cookie的差異? 知道他們分別怎麼應用嗎? A:參考答案 請問一個表格最多可以建立多少個叢集索引? [SQL] A:1個...
我們在使用 FastAPI 時常常會看到路徑操作函式會定義為 async def 的函式,而不是一般直接使用 def 聲明,使用 async def 聲明是表示...
當我們在撰寫程式時,需要對自己的程式碼進行自動化測試時,FastAPI 可以使用 Pytest 進行測試。 由於 FastAPI 是基於 Starlette 開...
前言 話不多說就讓我們開始吧!完整code 架構 app/ ├── api/ │ ├── __init__.py │ ├── api.py │ └─...