第一天,我們輕鬆一點。在走入一堆系統與理論的迷宮前,我們來認識一下分散式系統最知名的理論 - CAP Theorem 先看一個例子 先舉一個簡單的服務讓大家有一...
這個系列的目的? 現今的軟體已經不再是單一執行檔、單一電腦走天下。幾乎所有眼前的服務皆是由許多的小元件組成,他們怎麼彼此跨越網路交換資訊呢?又怎麼在彼此身處異地...
學習使用KUBERNATE的MINIKUBE,透過DOCKER實現單機版,利用多個CPU做CLUSTER 於vm上啟動minikube時,需把vm關閉,...
突然發現我好像還沒介紹過 Stream Computing :D Stream Computing 是設計給需要 low-latency 的應用。batch p...
作業系統有兩種常用的inter-process communication方式: Shared memory: 當做白板來交換資料,缺點是很多人用的話要排隊(...
談到分散式運算系統,大家最熟悉的應該是Hadoop。不過Hadoop是設計來處理high throughput的批次應用,相對來說不重視 latency。如果是...
這篇跟Day 10是同系列的,同樣是關於In-Memory的問題。 受惠於 Memory的性價比越來越高,越來越多廠商推出 In-Memory Computin...
讓我們用科層組織來類比分散式資料系統,作為分散式資料系統的小節吧。 我們從 partition 和 replication 談起,partition 就像科層組...
至於為什麼 Kafka 適合搭配 Stream Computing呢? 因為 Stream Computing 本質上也是一種可平行處理、易擴充的分散式處理架構...
啊哈,沒想到Kafka可以寫到第五篇啊... 今天要講的是ack,ack問題在stream computing裡也會遇到,這邊就來先提一下。 stream co...
今天來講一下Kafka的replication機制 Kafka的replication是以partition做單位,方法也很簡單,就是讓replica去訂閱要追...
以下是Kafka的設計所帶來的限制: Consumer Group裡的consumer數量 不能小於 partition 數量。不然就會有partition裡...
先來介紹一下Kafka的基本架構吧 (以下圖片都取自Kafka documentation)。 基本上Kafka是一個broker的角色,仲介producer與...
Apache Kafka 是一個 Distributed Queue 的實現,很多 Stream Computing 平台都支援 Kafka 作為 data s...
Zookeeper能保證global order,因為只有leader能處理寫入要求。Zookeeper在partition發生時仍能維持服務,因為採用了Quo...
現在很多分散式系統都會用Zookeeper,在Day 5也有稍微提到一下Zookeeper可以用來維護partition metadata。現在就來多介紹一些Z...
本來今天應該要寫 Zookeeper 的,不過看到這是第10天,想說來點特別的。所以臨時插進來這個題目。 這個題目我不想講太多,只是想丟個問題給大家來討論一下。...
CAP Theorem 的 CAP 分別是指: C (Strong Consistency): 在任何時候,從叢集中的任兩個節點得到的狀態都是一樣的。 A (...
昨天講到執行時序的問題。當需要解決資料時序的問題時,表示已經放棄強一致性 (Strong Consistency)了,轉而只追求最終一致性 (Eventuall...
昨天講到多數系統不允許在副本寫入,因為如果有好幾個寫入同時發生在不同的節點上,資料會不一致。就算能忍受資料不一致,也缺乏一個跨節點且精確同步的時鐘來協調出這些寫...
今天來談談資料複製吧 資料複製是維持可用性的方法,因為資料複製好幾份到不同機器,所以只要有一台機器還在,資料就拿的到。 但只要有資料複製,就一定會有延遲的狀況,...
啊啊 今天要談什麼呢? 來談談資料切割的metadata好了。 現在有好幾台機器,都必須要follow同一套的資料切割方式,這個切割方式存在metadata中。...
昨天講到partition,事實上partition比較常用在write需求高的應用(平行寫),這是為什麼呢? 以前同事問過一個問題:既然有多台機器,那當然是把...
分散式資料系統的兩個問題根源:partition 和 replication。 先談partition。當資料放不進一台機器,或是對資料的運算太過耗時,單台機器...
昨天的重點歸納一句話就是:分散式系統都是特化的,而不是通用的。所以不同的設計決策就會衍生出不同用途的系統。 也如同昨天所說,我先大致將分散式系統分種兩種:資料系...
一個系統走向分散式,一定有其不得不為的理由。Scalability是最常見的理由之一。 我先簡單的將Scalabilty的需求分成兩種: Data Scala...
分散式系統(Hadoop) 微程式資訊股份有限公司:研發部協理 分享對象:公司一級主管 http://rd-program.blogspot.com/2011/...