讓我們用科層組織來類比分散式資料系統,作為分散式資料系統的小節吧。
我們從 partition 和 replication 談起,partition 就像科層組織,為了避免規模過大的管理困難,所以切割成多個可相對獨立運作的單位來分而治之。但問題就是協調困難,尤其是在一個溝通管道不穩定的環境中。replication 像是職位的代理人,有些代理人可以很快上手,還可以幫忙分攤一些負擔;不過有些代理人完全就是備援角色,甚至還有些代理人完全沒進入狀況。怎麼把這樣一個障礙重重又各自為政的組織聯合起來,讓它能如臂使指,那就是分散式資料系統想做的事。
我們還介紹了一些重要工具,Zookeeper像是個專人管理的中央布告欄,幫助組織間溝通協調,確保大家的認知是相同的。Zookeeper非常盡責,你可以先跟他說你關心哪些公告,那些公告有更新的話還會主動通知你~
Kafka像是個高效的公文傳送工具,讓單位之間的資料能順暢流通。但Kafka可不會主動通知你有公文,你要自己去檢查你的公文箱。不過Kafka會幫忙保留一些歷史公文,所以只要不要拖太久才去檢查公文箱,基本上公文都還找的回來。
基本上就是這樣啦~
接下來要開始介紹分散式運算系統囉。