iT邦幫忙

後端相關文章
共有 135 則文章
鐵人賽 Software Development DAY 20

技術 [ Day 20 ] 寫入靠背壓,讀取靠快取 - 為什麼對 List API 限流是反效果?Cache 才是救星!

昨天我們深入剖析了 Timeout 設定與容量規劃的數學公式,證明了盲目放寬 Timeout 只會讓連線池乾涸。 今天,我們要將壓力測試的視角從PUT上傳轉向l...

鐵人賽 Software Development DAY 22

技術 [ Day 22 ] 重新部署就爆出 5xx 警報?零停機部署與 0 封包遺失的優雅停機!

前幾天我們完成了微服務容器化(Docker)、Prometheus/Grafana 監控服務建立、破除長 Timeout 迷思、並透過壓力測試驗證了listOb...

鐵人賽 Software Development DAY 19

技術 [ Day 19 ] 盲目調大 Timeout 讓記憶體暴增 15 倍!解密微服務連線池乾涸與 OOM 爆發點

昨天我們成功在 JMeter 上傳併發測試中,證明了前面寫的保護api的功能將 3 秒超時引發的錯誤率從 53% 降至 0%,並透過 Grafana 發現真正的...

鐵人賽 Software Development DAY 12

技術 [ Day 12 ] 前端重試一百次也絕不產生髒資料!實作客戶端重試與 Idempotency 設計

昨天我們完成了 Double-Check Pattern 的實作,當 putObject 發生 timeout 時,後端不再直接回傳失敗,而是使用 headOb...

鐵人賽 Software Development DAY 14

技術 [ Day 14 ] 初探混沌工程(Chaos Engineering ):本地端用 tc 製造網路延遲與封包遺失

在前兩篇中,我們在本地開發環境裡,利用了 simulateScenario 在代碼內部模擬超時,驗證了自我修復確實可以起死回生,手把手完成了微服務的三層防禦盾牌...

鐵人賽 Software Development DAY 11

技術 [ Day 11 ] 實作 Double-Check Pattern:狀態的二次確認機制

昨天我們說明了網路世界最殘酷的一面。當微服務呼叫 AWS S3 上傳檔案時,如果發生 TimeoutException時不能直接斷言上傳一定失敗,也有可能是上傳...

鐵人賽 Software Development DAY 10

技術 [ Day 10 ] 當延遲和封包遺失讓網路不再可靠:告別強一致性,擁抱最終一致性

昨天我們用 JMeter 與 JConsole 進行了本地端的第一波大壓測,親眼見證了非同步 Netty 在面對高併發流量時,如何以極其穩定的執行緒表現,不過在...

鐵人賽 Software Development DAY 9

技術 [ Day 9 ] Jmeter 壓力測試 : 同步Apache vs. 非同步Netty連線AWS S3 API 效能對決

昨天我們用 Spring Boot 框架將 Apache 同步與 Netty 非同步引擎封裝成了對外的微服務 API。 理論說得天花亂墜,但在本機電腦上,這兩...

鐵人賽 Software Development DAY 5

技術 [ Day 5 ] 非同步救星:初探 Netty 與 Event Loop 事件驅動模型

昨天我們親眼見證了同步連線的慘況:當大量併發請求湧入時,少量的執行緒會因為等待 I/O 而卡死(執行緒飢餓);但如果無腦加開成千上萬個執行緒,又會讓伺服器記憶體...

鐵人賽 Software Development DAY 21

技術 [ Day 21 ] 程式語言底層對決Java vs Node.js vs Python:為什麼非同步不是萬靈丹?單核、多核與OOM的挑戰

前幾天的單機壓測中,目睹了伺服器在極限流量下崩潰的瞬間。不論如何優化Netty的Event Loop,當請求像海嘯般湧入時,記憶體指標依然無情地飆升,最終迎來O...

鐵人賽 Software Development DAY 4

技術 [ Day 4 ] 傳統的極限:實作同步連線與執行緒飢餓(Thread Starvation)

昨天我們用餐廳的比喻了解了同步與非同步的差異。今天,我們要會透過程式碼,重現傳統同步連線在面對併發請求時,伺服器會面對哪些問題 為了專注於觀察底層行為,我們今天...

鐵人賽 Software Development DAY 3

技術 [ Day 3 ] 為什麼伺服器會卡死?圖解同步、非同步與阻塞的愛恨情仇

前兩天我們聊了系統設計的思維,以及高併發情境下(如演唱會搶票)伺服器連線池被榨乾的慘況。今天,我們終於要切入正題,來面對那個讓無數後端工程師頭痛的終極殺手——高...

鐵人賽 Software Development DAY 2

技術 [ Day 2 ] 理想與現實的落差:大型系統到底在考量什麼?

在實作之前,我們必須先釐清真實世界的系統到底長什麼樣子。回想以前自己寫些小專案時,只要資料庫寫得進去、畫面出得來就好。但在真實的商業環境裡,不同類型的服務面臨著...

技術 Road To Full-Stack:前端轉全端的 Instagram 挑戰 - Day 1

前言 嗨,我是前端工程師 Jimmy,於 22 年初轉職,轉職後沒多久 GitHub Copilot 發布,在開發領域掀起不小的話題,同年底 OpenAI 發布...

鐵人賽 Python DAY 26

技術 [Day25] Python專案 - 網頁開發 - (4) Fast API 進階後端工程師該思考的幾件事

目標 我們在Day 23 學習到了後端框架的選擇以及簡單的CRUD[Day23] Python專案 - 網頁開發 - (2) 高速的服務提供者Fast API...

技術 市場趨勢解析:軟體正在吞食這個世界

在這個大數據時代,後端開發扮演著至關重要的角色。隨著數位轉型的加速,幾乎所有行業都在尋求強大的後端開發來分析、處理海量數據。讓我們深入探討為什麼後端開發如此重...

鐵人賽 Modern Web DAY 30

技術 【Day30】後記:鐵人煉成,然後呢?

若您與我成功熬過了這三十天的內容,並且實際上手練習、吸收進去的話 ── 那麼恭喜您!您肯定已經具備著一定的網頁設計實力了。 不過呢,這三十天的內容都只教了些基礎...

鐵人賽 Modern Web DAY 29

技術 【Day29】Flask請求 & 表單實作

昨日了解完Flask的安裝至頁面跳轉、動態生成等內容後,今天我們要更深入介紹Flask的請求和表單製作! Flask請求 在學習請求前,我們要先了解HTTP方...

鐵人賽 Modern Web DAY 28

技術 【Day28】Flask基本架構

在大概摸索Python的基本語法和函式修飾器後,我們今天終於可以回歸正題 —— 使用Python架設一個輕量級的網頁後端伺服器! 我們今天要接觸的東西名為Fla...

鐵人賽 Modern Web DAY 29
FastAPI 入門30天 系列 第 29

技術 Day-29 部屬到GCP Cloud Run

我們上一篇學會怎麼將我們的 FastAPI 應用程式打包成 Docker 容器,今天要教大家怎麼用 GCP 的 Cloud Run 將之前的庫存系統範例部屬到雲...

鐵人賽 Modern Web DAY 28
FastAPI 入門30天 系列 第 28

技術 Day-28 容器化

我們的30天也接近尾聲了,該學的東西也學習的差不多,接著我們可以來思考該怎麼將服務進行部署,通常我們會使用 Docker,將應用程式容器化,藉此部署在我們想要的...

鐵人賽 Modern Web DAY 27
FastAPI 入門30天 系列 第 27

技術 Day-27 檔案上傳

今天我們要介紹如何使用 FastAPI 來建立可以提供檔案上傳的 API 接口。 安裝套件 pip install python-multipart 由於上...

鐵人賽 Modern Web DAY 26
FastAPI 入門30天 系列 第 26

技術 Day-26 定時任務與 FastAPI

我們在實務上面常常會遇到要定期執行某項事件的時候,這個時候有很多套件或軟體可以達成這件事情,今天要介紹的是 Python 中的 ApScheduler 這個套件...

鐵人賽 Modern Web DAY 25
FastAPI 入門30天 系列 第 25

技術 Day-25 WebSocket 接口

今天我們要來講解如何在 FastAPI 中使用 WebSocket,首先我們先來了解甚麼是 WebSocket吧。 WebSocket WebSocket 是一...

鐵人賽 Modern Web DAY 24
FastAPI 入門30天 系列 第 24

技術 Day-24 非同步網路請求

前一章節我們介紹了非同步的 database 連線,那對於網路請求我們也可以使用非同步的方式,讓我們在存取第三方 API 或是與其他微服務串接時能夠提升效能。...

鐵人賽 Modern Web DAY 23
FastAPI 入門30天 系列 第 23

技術 Day-23 非同步的 database

今天我們將介紹如何在 fastapi 中集成與資料庫的非同步連線。 我們與官方文件教學不同的是使用 sqlalchemy 本身的 asyncio 功能,筆者記得...

鐵人賽 自我挑戰組 DAY 18

技術 day26.後端面試相關(二):有遇過的面試題part2

session與cookie的差異? 知道他們分別怎麼應用嗎? A:參考答案   請問一個表格最多可以建立多少個叢集索引? [SQL] A:1個...

鐵人賽 Modern Web DAY 22
FastAPI 入門30天 系列 第 22

技術 Day-22 並發與非同步

我們在使用 FastAPI 時常常會看到路徑操作函式會定義為 async def 的函式,而不是一般直接使用 def 聲明,使用 async def 聲明是表示...

鐵人賽 Modern Web DAY 21
FastAPI 入門30天 系列 第 21

技術 Day-21 測試與FastAPI

當我們在撰寫程式時,需要對自己的程式碼進行自動化測試時,FastAPI 可以使用 Pytest 進行測試。 由於 FastAPI 是基於 Starlette 開...

鐵人賽 Modern Web DAY 18

技術 [Day-18] Blueprint 包裝你的flask(3)

前言 話不多說就讓我們開始吧!完整code 架構 app/ ├── api/ │ ├── __init__.py │ ├── api.py │ └─...