1.叢集與分散式
分散式:一個業務分拆多個子業務,部署在不同的伺服器上
叢集:同一個業務,部署在多個伺服器上
分散式 強調 機器間的協作,其重點是任務可拆分, 如 某個任務需要一個機器執行10個小時, 將該該任務用10臺機器的分散式跑,可能2個小時就跑完了。(子任務之間有依賴關係)。
叢集偏重幹同一樣一件事的 一組機器。 如 某個任務需要一個機器執行10個小時,那任務放到 處理該任務的叢集上 還是需要10個小時。 假如有10個這樣的任務, 放到同一個叢集上, 仍然需要10個小時。簡單說,分散式是以縮短單個任務的執行時間來提升效率的,而叢集則是通過提高單位時間內執行的任務數來提升效率。
例如:
如果一個任務由10個子任務組成,每個子任務單獨執行需1小時,則在一臺伺服器上執行改任務需10小時。
採用分散式方案,提供10臺伺服器,每臺伺服器只負責處理一個子任務,不考慮子任務間的依賴關係,執行完這個任務只需一個小時。(這種工作模式的一個典型代表就是Hadoop的Map/Reduce分散式計算模型)
而採用叢集方案,同樣提供10臺伺服器,每臺伺服器都能獨立處理這個任務。假設有10個任務同時到達,10個伺服器將同時工作,10小後,10個任務同時完成,這樣,整身來看,還是1小時內完成一個任務!
2.反向代理與正向代理
反向代理(常用的代理伺服器 nginx)
在計算機世界裡,由於單個伺服器的處理客戶端(使用者)請求能力有一個極限,當使用者的接入請求蜂擁而入時,會造成伺服器忙不過來的局面,可以使用多個伺服器來共同分擔成千上萬的使用者請求,這些伺服器提供相同的服務,對於使用者來說,根本感覺不到任何差別。
正向代理(比如說VPN)
1)使用者希望代理伺服器幫助自己,和要訪問伺服器通訊,為了實現此目標,需要以下工作:
a) 使用者IP報文的目的IP = 代理伺服器IP
b) 使用者報文埠號 = 代理伺服器監聽埠號
c) HTTP 訊息裡的URL要提供伺服器的連結
2)代理伺服器可以根據c)裡的連結與伺服器直接通訊
3)伺服器返回網頁
4)代理伺服器打包3)中的網頁,返回使用者。
3.叢集與反向代理
我理解的叢集和反向代理,其實他們兩個是一種合作方式,通過前臺反向代理,以及後臺伺服器叢集,這樣形成了可以承擔大量使用者訪問的應用
常用的配置使用 nginx配置監聽前臺和weblogic部署應用