分佈式 map-reduce:
一個業務分拆多個子業務,部署在不一樣的服務器上。
形象地說,就是不一樣的機器,雖然作的事情不同,可是互相獨立,也不須要在乎前後順序關係,那麼在map階段,它們就能夠並行執行(task);在reduce階段,把各個結果以某種方式合併起來,獲得最終業務的結果,完成這個job;
分佈式結構能夠把業務拆分紅一個個獨立的子系統,這些子系統之間經過rpc方式通訊。
分佈式的優勢:能夠提升系統的效率,解決高性能、高併發。
集羣:
同一個業務,部署在多個服務器上。
形象地說,每一個機器提供相同的服務,只是在處理不一樣的數據;
集羣中的每一個機器,叫作一個「節點」,爲了提升集羣的總體工做效率,平均每一個節點的工做壓力,須要有一個機器充當「調度者」的角色,用戶的請求交給它,它根據集羣中當前全部節點的負載狀況,決定將這個請求交給哪一個節點處理。這個「調度者」就叫作「負載均衡器」。
負載均衡的策略:
(1)HTTP重定向;
(2)反向代理負載均衡(Nginx):是一種很是靈活的反向代理軟件,能夠自由定製化轉發策略,分配服務器流量的權重等;
(3)IP負載均衡;
(4)DNS負載均衡:DNS負責域名解析的服務,完成域名到IP的映射,一個域名能夠映射到多個IP,所以能夠起到負載均衡的做用;
集羣的優勢:
能夠提升系統的容錯容災,提供高可用;
分佈式集羣:
分佈式中的每個節點,均可以作集羣;而集羣就不必定是分佈式的;