iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Software Development

用 Golang + Elasticsearch + Kubernetes 打造雲原生搜尋服務 系列

透過實作從零開始學習 Golang, Elasticsearch, Kubernetes

參賽天數 14 天 | 共 14 篇文章 | 6 人訂閱 訂閱系列文 RSS系列文 團隊躺平的內捲小隊
DAY 1

Day 1 - Let’s Learn in Public

筆者為了從零開始學習這三個技術所以揉合出這個主題。 主要是把實作驗證後的知識記錄下來,除了實作步驟,也會講為什麼這麼做、背後的優缺點是什麼,讓理論跟實作並行。...

2025-09-15 ‧ 由 Shirley 分享
DAY 2

Day 2 - 專案骨架:Go 專案起跑

昨天的前言裡,我們談了這個系列的動機和最終目標:用 Golang、Elasticsearch 和 Kubernetes 打造一個雲原生搜尋服務。今天正式進入第一...

2025-09-16 ‧ 由 Shirley 分享
DAY 3

Day 3 - 測試骨架:Table-driven 測試

昨天我們建立了最小的 REST API /healthz,伺服器可以正常回應 "ok"。 今天要為專案補上 測試骨架,讓我們在之後開發新功能...

2025-09-17 ‧ 由 Shirley 分享
DAY 4

Day 4 - 中介層:日誌、Recovery 與設定管理

到目前為止,我們的服務只有一個最小骨架:一個 /healthz API 和對應測試。 今天開始,我們要讓服務「更像一個真的服務」,加上 中介層 (middlew...

2025-09-18 ‧ 由 Shirley 分享
DAY 5

Day 5 - API 成形:先回假資料的 /search

昨天我們加上了中介層:logging、recovery、config。今天要邁出關鍵的一步:建立第一個業務相關 API —— /search。 雖然我們還沒有連...

2025-09-19 ‧ 由 Shirley 分享
DAY 6

Day 6 - context/timeout:防止外呼卡死

昨天我們讓 /search API 成形,雖然只是回假資料,但已經建立了 API 雛型。 今天要讓服務更可靠:加入 context/timeout。 這一步很重...

2025-09-20 ‧ 由 Shirley 分享
DAY 7

Day 7 - 錯誤策略:%w 包裝、分類重試(退避 + 抖動)

喵一眼今日重點: 用 %w 包裝錯誤(可疊代追蹤來源) 分類重試(什麼錯誤該重試、什麼不該) 退避 + 抖動(exponential backoff wi...

2025-09-21 ‧ 由 Shirley 分享
DAY 8

Day 8 - 微基準:用 go test -bench 建立效能基線

到目前為止,我們已經有了 /search、中介層、context/timeout 與錯誤策略。今天目標是: 寫幾個微基準來量測「一小段可重複的關鍵程式」,建立...

2025-09-22 ‧ 由 Shirley 分享
DAY 9

Day 9 - 併發基礎:有限併發的 Worker Pool

Go 的一大賣點就是 goroutine,開發者可以開成千上萬個 goroutine 來並行處理。但如果不設限,所有請求同時打爆下游,就會出現: 下游服務(例...

2025-09-23 ‧ 由 Shirley 分享
DAY 10

Day 10 - pprof:找到 1 個熱點並改善

到目前為止,我們寫了 table-driven 測試、加了 context/timeout、做了微基準。今天要進一步學會: 啟動 pprof:在程式中暴露...

2025-09-24 ‧ 由 Shirley 分享