iT邦幫忙

spring boot相關文章
共有 372 則文章
鐵人賽 Software Development DAY 10

技術 Day 09:小結:四個核心觀念如何在一次請求中協同運作

Day 08:Coroutine Context 與例外處理,協程出錯了誰負責 結尾把 Coroutine Scope、Structured Concurren...

鐵人賽 Software Development DAY 9

技術 Day 08:Coroutine Context 與例外處理,協程出錯了誰負責

《Day 07:Dispatchers,協程實際跑在哪條執行緒上》 結尾留下一個問題:Dispatcher 其實只是協程隨身攜帶的其中一項設定,那協程執行時還帶...

鐵人賽 Software Development DAY 8

技術 Day 07:Dispatchers,協程實際跑在哪條執行緒上

Day 06:Structured Concurrency,為什麼協程不能亂長亂放 結尾留下一個問題:確立了協程之間誰該對誰負責之後,這些協程實際上到底是在哪一...

鐵人賽 Software Development DAY 7

技術 Day 06:Structured Concurrency,為什麼協程不能亂長亂放

Day 05:Coroutine Scope,協程住在哪裡、活多久 結尾留下一個問題:同一個 Scope 裡如果同時養著好幾個協程,其中一個先執行完,或者其中一...

鐵人賽 Software Development DAY 6

技術 Day 05:Coroutine Scope,協程住在哪裡、活多久

《Day 04:小結:把 Thread 模型與協程模型放在一起比一次》 結尾留下一個疑問:訂單查詢與扣庫存服務裡,有些步驟適合同時發起,一旦一個請求裡需要同時或...

鐵人賽 Software Development DAY 5

技術 Day 04:小結:把 Thread 模型與協程模型放在一起比一次

《Day 03:第一個 suspend function,協程到底暫停了什麼》結尾留下一個疑問:一個函式暫停了,那一整串呼叫呢。今天先不回答這個疑問,而是往回看...

鐵人賽 Software Development DAY 4

技術 Day 03:第一個 suspend function,協程到底暫停了什麼

《Day 02:Thread-per-Request 模型的極限,搞懂你原本在用什麼》 結尾停在一個問句上:如果執行緒能在等待的時候先被借走,去處理別的請求,等...

鐵人賽 Software Development DAY 3

技術 Day 02:Thread-per-Request 模型的極限,搞懂你原本在用什麼

《Day 01:為什麼高併發後端需要協程,從一個會卡住的 API 說起》結尾留下一個看似簡單卻很少人真正答得出來的問題:你的 Spring Boot 應用程式收...

鐵人賽 Software Development DAY 20

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

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

鐵人賽 Software Development DAY 2

技術 Day 01:為什麼高併發後端需要協程,從一個會卡住的 API 說起

昨天在 Day 00 的地圖裡,我們先按下不表那個會卡住的 API,只留下一句預告:今天要把它攤開來看清楚,它到底卡在哪裡。現在就從這個畫面開始。 開場,一個會...

鐵人賽 Software Development DAY 1

技術 Day 00:Spring Boot 3 + Kotlin 協程高併發,後端開發新選擇

如果你是一個習慣寫 Java 後端的工程師,大概對這個畫面不陌生。系統上線初期流量還小,每個 API 都反應飛快,Controller 收到請求,Service...

鐵人賽 Software Development DAY 19

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

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

鐵人賽 Software Development DAY 16

技術 [ Day 16 ] 容器化服務 : 撰寫 Dockerfile 與多階段建置 (Multi-stage build) 環境隔離

我們從一開始的三高指標與同步/非同步引擎對決,一路升級到分散式環境下的防禦機制(Semaphore 背壓限流、Double-Check 、uploadId 冪等...

鐵人賽 Software Development DAY 15

技術 [ Day 15 ] S3 癱瘓的彈性容錯 : 實作 Resilience4j 斷路器與降級(Fallback)機制

在前幾天的文章中,我們在微服務中建構了多道盾牌,從透過headObject 探針解決網路超時問題的 Double-Check Pattern,實作 Idempo...

鐵人賽 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 9

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

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

鐵人賽 Software Development DAY 8

技術 [ Day 8 ] 從引擎到微服務:用 Spring Boot 同時封裝 Apache 與 Netty S3 API

前一篇 Day 7 左右開弓 : Java實作 Apache 同步與 Netty 非同步 S3 上傳裡面,我們成功在本地終端機中驗證了 Apache 同步與 N...

鐵人賽 Software Development DAY 19

技術 Day19 - 驗證覆蓋證據與整理 Quality Test Report

摘要Day 18 已經把驗證流程放進 Docker 與 CI quality gate。Day 19 把既有規則測試、分層驗證測試、情境測試與版本比較測試整理...

鐵人賽 Build on Google AI DAY 10

技術 Day 10 | 錯誤處理與防禦性設計:API 重試策略、AI 護欄與實戰除錯全紀錄

前言:現實世界充滿變數,你的 API 夠強壯嗎? 經過前幾天的實作,我們已經打造出一個具備記憶力、且能穩定輸出 JSON 格式課表的 AI 教練 API。但在準...

鐵人賽 Software Development DAY 17

技術 Day17 - 把版本差異變成可解讀的修正證據

摘要Day 15 已經把代表案例整理成 Expected / Actual 測試,Day 16 已經把契約 v1.0 / v1.1 的基本比較結果接回畫面。D...

鐵人賽 Software Development DAY 16

技術 Day16 - 契約版本比較接回畫面

摘要Day 15 已經把契約 v1.0 / v1.1 的代表案例整理成最小情境測試包,證明 Expected / Actual 結果可以穩定重跑。Day 16...

鐵人賽 Software Development DAY 15

技術 Day15 - 情境測試包最小化

摘要Day 14 已經把契約 v1.0 / v1.1 的基本比較骨架接起來,證明同一份 Bundle 可以因為 v1.1 新增 UCUM system/cod...

鐵人賽 自我挑戰組 DAY 11

技術 Day11 : Spring Schedule電商專案實作 - 定期處理未付款訂單.final

Spring Schedule電商專案實作 - 定期處理未付款訂單.final 處理最後的通知part ⭐⭐⭐ 這個部分跟Schedule就比較沒有關係啦~...

鐵人賽 自我挑戰組 DAY 8

技術 Day8 : Spring Schedule電商專案實作 - 定期處理未付款訂單.2

Spring Schedule電商專案實作 - 定期處理未付款訂單.2 @Transactional與@Scheduled並用問題 ⭐⭐⭐⭐⭐ 昨天,我將「...

鐵人賽 自我挑戰組 DAY 7

技術 Day7 : Spring Schedule電商專案實作 - 定期處理未付款訂單.1

Spring Schedule電商專案實作 - 定期處理未付款訂單.1 OrderSchedule ⭐⭐⭐ 在 task/ 目錄下,我新建了一個OrderS...

鐵人賽 自我挑戰組 DAY 5

技術 Day5 : 關於Spring的TaskScheduler與TaskExecutor

關於Spring的TaskScheduler與TaskExecutor @Scheduled的追本溯源 ⭐⭐⭐⭐⭐ 當我們使用了 @Scheduled 來設...

技術 Spring boot Properties value 去除空白

Spring Boot 設定 Properties Value 去除空白 概述 在設計Spring boot應用程式時,因環境不同需要設定不同的Properti...

技術 VScode 開發應用系統專案(7 -3 ) - Spring Boot Cache — L1 + L2 快取暫存處理

Spring Boot Cache — Redis 快取暫存處理 (提供開關) 概述 之前發文分享過 Spring Boot Cache — Caffeine...