iT邦幫忙

鐵人檔案

第 12 屆 iThome 鐵人賽
回列表
Software Development

Go Distributed & Go Consistently 系列

建立分散式且具有ㄧ致可靠的特性服務,以 golang 爲編程語言,循序介紹 coding 時需注意的 data race、data transaction、lock,以及架構上 two-phase、CAP 、BASE的設計如何滿足實務需求。

最後提供簡易的CI/CD教學,讓團隊開發可以自動化且持續針對code進行檢驗,與保持風格上的一致。

DAY 11

Day11 Mutex vs Channel

昨天看過 race condiction 的情況後,我們了解了 mutex.Lock 與 channel,可以幫助我們同步 memory 狀態,避免發生奇怪的資...

2020-09-19 ‧ 由 weiweiwesley 分享
DAY 12

Day12 Atomic

關於 sync/atomic 是於 go@v1.14 才推出的新東西,筆者也是最近才知道有這個包可以使用。Atomic 目標在一些單純的操作上,完成最小原子性操...

2020-09-20 ‧ 由 weiweiwesley 分享
DAY 13

Day13 Docker

為了讓我們可以快速獲得乾淨的測試資料庫,與後續 Go Distributed at Kubernetes,於此開始介紹一些關於容器的概念。希望能夠幫助一些對於環...

2020-09-21 ‧ 由 weiweiwesley 分享
DAY 14

Day14 Dockerfile & Docker-Compose

本日文章內容目標能讓我們了解,Dockerfile 撰寫的格式與啟動的效果,並且使用 docker-compose 啟動多個 containers,並建立兩個...

2020-09-22 ‧ 由 weiweiwesley 分享
DAY 15

Day15 Http Server & Gorm

依據進度我們要進入實做的部分了,昨天的 docker-compose,剛好幫我們建立了一組 slave-master MySQL database,今天將利用昨...

2020-09-23 ‧ 由 weiweiwesley 分享
DAY 16

Day16 Transactions (MySQL)

為了保持我們的資料能正確的寫入與正確的不寫入,今天我們要來了解一下 transactions 是怎麼運作的,以及如果沒有實作 transactions 會發生怎...

2020-09-24 ‧ 由 weiweiwesley 分享
DAY 17

Day17 Transactions (Redis)

是的,我們今天要來討論一下 Redis 的 transaction。我們知道 Transaction 要嘛全執行要嘛全不執行,Redis 在 2.2 之後提供了...

2020-09-25 ‧ 由 weiweiwesley 分享
DAY 18

Day18 Cache (Local Cache vs Redis)

會有快取的需求是來自於使用者,對相同資料目標進行大量讀取,為了降低 RMDBS 連線數量與 RMDBS 的實體資源,所產生出來的架構策略。今天我們要來實作 ca...

2020-09-26 ‧ 由 weiweiwesley 分享
DAY 19

Day19 Distributed Micoservices

我們前面花了一些時間了解 golang 的基本用法,以及資料一致性的重要性,並且在上一篇中討論到多 server 快取資料可能發生的狀況,其中在多 server...

2020-09-27 ‧ 由 weiweiwesley 分享
DAY 20

Day20 Kubernetes (Cluster Architecture)

今天介紹一下以 golang 為主編程語言,建立當前最知名的容器管理服務 — Kubernetes。我們在上一篇已經簡單的敘述過,服務是如何演進成分散式服務,而...

2020-09-28 ‧ 由 weiweiwesley 分享