iT邦幫忙

鐵人檔案

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

分散式系統 - 在分散的世界中保持一致 系列

現今的軟體已經不再是單一執行檔、單一電腦走天下。
幾乎所有眼前的服務皆是由許多的小元件組成,他們是怎麼彼此跨越網路交換資訊的呢?
又怎麼在彼此身處異地的情況下完成任務?
再更近一步,我們知道網路是不可靠的,隨時可能有斷線、掉封包或是被瞬間高流量塞爆的危機,
面對這樣的環境如何讓系統繼續運作而不致崩潰?
或著我們有多少把握,運作一段時間後,這些分散在各地的元件手中的資訊是一致的?
元件或是儲存的資料失效後如何回復?備份成三份、五份有沒有效?
分散式系統藏著這麼多的問題,此系列希望能夠提供一些基礎理論與經典實作的分享,
讓大家面對上面問題時,心中有著前人走過的路做參考。

鐵人鍊成 | 共 30 篇文章 | 244 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21 - Zookeeper - 介紹與實作Lock與2PC

前言 Chubby作為一個在Google內部各種分散式系統很核心的服務,可惜的是並沒有開源。因此Zookeeper的出現給大家一個更具體的想像這個服務怎麼運作與...

2019-10-06 ‧ 由 Jack Lin 分享
DAY 22

Day 22 - Zookeeper - Leader Election 與 Reverse Proxy 實作,使用Golang

前言 今天我們繼續看幾個跟Zookeeper有關的實作,主要是因為這是那時的作業,使用Golang,我覺得蠻好玩的。 Leader Election 許多分散式...

2019-10-07 ‧ 由 Jack Lin 分享
DAY 23

Day 23 - Data Partitioning - Distributed Hash Table and Consistent Hashing

前言 前面都是在聊資料做備份放到replca servers後的各種資料一致性。 分散式系統還有另一個大主題,那就是如何分散資料到各個Node上。這個需求最早出...

2019-10-08 ‧ 由 Jack Lin 分享
DAY 24

Day 24 - Data Partitioning - Distributed Hash Table and Consistent Hashing - CHORD(上)

前言 昨天提到說明了 DHT便是將傳統的Hash Bucket變成一個個實體的Node 而Consistent Hashing是將Key與Node都一起...

2019-10-09 ‧ 由 Jack Lin 分享
DAY 25

Day 25 - Data Partitioning - Distributed Hash Table and Consistent Hashing - CHORD(下)

前言 昨天介紹了CHORD的兩種Lookup方法,一個是不斷往下一個Successor詢問,一個是利用儲存空間也就是Finger Table換取時間,以取對數的...

2019-10-10 ‧ 由 Jack Lin 分享
DAY 26

Day 26 - Data Partitioning - Distributed Hash Table and Consistent Hashing - Kademlia

前言 前兩篇介紹的Distributed Hash Table的Hashing Space是對應到一個圓,今天我們要來介紹另一種對應到Tree Structur...

2019-10-11 ‧ 由 Jack Lin 分享
DAY 27

Day 27 - Data Partitioning and Sharing - P2P - BitTorrent

前言 前面介紹了兩個搭配Data Partitioning使用的DHT演算法 CHORD、Kademlia。 今天特別拉出來介紹一下這個現在已經退流行的P2P應...

2019-10-12 ‧ 由 Jack Lin 分享
DAY 28

Day 28 - Cloud Computing - Platform as a Service - Kubernetes (上)

前言 當初開始這一個系列想說有三十天的份量可以寫,應該可以將所有內容寫完。沒想到默默的只剩3天的Quota 既然我們已經完整的把 Data Replicati...

2019-10-13 ‧ 由 Jack Lin 分享
DAY 29

Day 29 - Cloud Computing - Platform as a Service - Kubernetes (下)

前言 昨天介紹了Kubernetes的運作與設計原理,了解到最主要的運作模式就是靠etcd、APIServer、Controller的合作完成了K8s上面所有任...

2019-10-14 ‧ 由 Jack Lin 分享
DAY 30

Day 30 - 為什麼學分散式系統?

前言 今天是筆記的最後一天,終於暫時可以告別每天看投影片、Paper的日子,我都覺得這一次的複習比去年上課準備期末考還認真 xD 也因此這一次從頭檢視學過的知識...

2019-10-15 ‧ 由 Jack Lin 分享