iT邦幫忙

java相關文章
共有 1154 則文章
鐵人賽 Software Development DAY 30

技術 [ Day 30 ] CICD 串接 AWS EC2 0 成本雲端發布、CloudWatch 監控真相與 30 天架構師畢業之旅!

太棒啦,恭喜大家跟著我一起堅持到了最後一天,在過去 29 天裡,我們從最底層的 Netty 非同步 I/O 引擎切入,經歷了網路延遲混沌工程、Resilienc...

鐵人賽 Software Development DAY 7

技術 lesson -6: 多版本JAVA環境該如何切換?

TL;DR: 需要切換預設版本時,Linux可以使用update-java-alternatives,Windows可以調整JAVA_HOME;如果需要專案...

鐵人賽 Software Development DAY 6

技術 lesson -5: Linux怎麼準備JAVA開發環境?

Linux怎麼安裝JAVA環境?以LinuxMint為例(Ubuntu、Debian可用) TL;DR: 只需要執行Java程式或使用ABCL時,安裝JRE...

鐵人賽 Software Development DAY 5

技術 lesson -4: Windows怎麼準備JAVA開發環境?

Windows要安裝JAVA環境,可以在Oracle官方找到JDK的安裝包。如果並不需要開發JAVA,像是直接使用ABCL去建立JavaFX應用程式,可以只安...

鐵人賽 Software Development DAY 20

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

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

鐵人賽 Software Development DAY 19

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

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

鐵人賽 Software Development DAY 17

技術 [ Day 17 ] 容器化魔法:Docker Compose 一鍵建立 App + Prometheus + Grafana 監控服務

昨天我們成功運用多階段建置(Multi-stage Build)技術,將非同步 S3 微服務打包成僅有 500MB 的極輕量 Docker 容器,並在獨立隔離的...

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

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

昨天我們成功在本地終端機中驗證了 Apache 同步與 Netty 非同步兩大連線引擎的執行緒行為以及將檔案上傳到AWS S3。今天,我們要將上傳引擎正式升級為...

鐵人賽 Software Development DAY 7

技術 [ Day 7 ] 左右開弓 : Java實作 Apache 同步與 Netty 非同步 S3 上傳

昨天我們成功建立了 AWS S3 Bucket,並利用最小權限原則配置了安全、專屬的 IAM 使用者金鑰。今天,我們就要正式在 Java 21 環境中,雙劍合璧...

鐵人賽 Build on Google AI DAY 23

技術 Day 23 | UUID 影分身術!免登入資料隔離與 24 週動態引擎!

前言:當 100 個跑者同時向 AI 許願時 過去的 22 天,我們單人用戶玩得很開心,功能也都順利的進行,但當 KAKERU 實際上線,100 個使用者同時點...

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

技術 [ Day 1 ] 為甚麼本地端好好的,上線怎麼炸了?告別通靈除錯的架構演進之旅

為什麼明明在本地端跑都好好的,為什麼一上線就炸了? 剛踏入軟體工程師這個領域滿一年,這句話大概是我在心裡吶喊過最多次的一句話。以前在學校做專題或實驗時,專案...

鐵人賽 Build on Google AI DAY 13

技術 Day 13 | 上線驗證與流量防護:Cloud Run 擴展限制與 API Rate Limiting 實戰

前言:別讓自動擴展變成破產機器:實作 Cloud Run 雙重防護 Cloud Run 的強大之處在於「無極限自動擴展 (Autoscaling)」,但若了解的...

鐵人賽 Build on Google AI DAY 11

技術 Day 11 | 容器化實戰:撰寫 Dockerfile,將 Spring Boot 應用程式輕量打包

前言:告別「在我的電腦上明明可以跑」 經過前 10 天的奮戰,AI 教練 KAKERU 的 API 已經具備了邏輯、記憶力與防禦機制。本地端開發也算告一段落!...

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

鐵人賽 Build on Google AI DAY 8

技術 Day 8 | 賦予 AI 記憶力:Spring Boot 實作多輪對話的上下文管理

前言:AI 失憶了?為什麼我們不能只把記憶存在 RAM 裡? 昨天我們成功讓 Spring Boot 發送單次請求給 Gemini API,並收到了回覆。但如果...

鐵人賽 Build on Google AI DAY 7

技術 Day 7 |「教練,我想變強!」在後端注入靈魂,實作 Gemini API 核心串接

前言:為後端注入 AI 靈魂 昨天我們成功啟動了 Java 21 + Spring Boot 3 的伺服器,今天我們終於要變得更強!將 Day 5 申請的 G...

鐵人賽 Build on Google AI DAY 6

技術 Day 6 | 怕踩破薄冰?那把冰層加厚!建立穩健的 RESTful API 專案

前言:AI 時代的 Antigravity 開發體驗 AI 協作已成常態:在 2026 年,運用 Claude、Codex 等 AI 工具協助撰寫程式、除錯...

鐵人賽 Build on Google AI DAY 2

技術 Day 2 | 系統大腦與藍圖:從前端框架到雲端平台流程全展開

前言:沒有設計圖,怎麼蓋大樓? 歡迎來到鐵人賽 Day 2!昨天向大家說明了這個APP的誕生,也確立了用 AI 來拯救我們破碎課表的偉大目標。 但在真正實作之前...

鐵人賽 Build on Google AI DAY 1

技術 Day 1 | 單鐵的一生如履薄冰?用 Google AI 打造專屬馬拉松教練!

前言:專案想法的由來 欸~~大家好!開賽第一天,既興奮又期待!但既然報名了,頭洗下去就對啦! 說到這款 AI教練 App的起源,真的要特別感謝我的學弟。以前學生...