1. 程式人生 > >solrcloud叢集部署 一

solrcloud叢集部署 一

一、叢集概述

1、單點伺服器問題

之前學習的JavaEE專案,都是部署在一臺Tomcat上,所有的請求,都由這一臺伺服器處理,存在很大風險:

A:併發處理能力有限。因為單伺服器的效能有限制。所以單臺Tomcat的最大連線數有限制, 
B:容錯率低,一旦伺服器故障,整個服務就無法訪問了。
		eBay於 1999年6月停機22小時的事故,中斷了約230萬的拍賣,使eBay的股票下降了9.2個百分點。
C:單臺伺服器計算能力低,無法完成複雜的海量資料計算。

2、叢集的特點

群集技術則可以使你免於整個系統的癱瘓以及作業系統和應用層次的故障。
一臺伺服器叢集包含多臺擁有共享資料儲存空間的伺服器,各伺服器之間通過內部區域網進行互相連線;
當其中一臺伺服器發生故障時,它所執行的應用程式將被與之相連的伺服器自動接管;
在大多數情況下,叢集中所有的計算機都擁有一個共同的名稱,集群系統內任意一臺伺服器都可被所有的網路使用者所使用

 

該圖中最大的特點就是,每個Tomcat都完成相同的業務,但是分擔著不同使用者的訪問,
它們並不是缺一不可,如果一個Tomcat出現故障,網站依舊可以執行。

 《總結》

叢集:就是把多臺相同的單伺服器用某種技術連在一起、就構成的叢集、叢集中每臺伺服器就叫做叢集的節點、所有節點構成了一個叢集。每個節點提供相同的服務、這樣就提升了處理能力。

負載均衡伺服器:當前端請求來的時候、最好能讓負載小的節點來處理、這時就引入了負載均衡伺服器。這玩意來充當排程者。

分散式結構:叢集結構的好處就是系統擴充套件非常容易。如果隨著你們系統業務的發展,當前的系統又支撐不住了,那麼給這個叢集再增加節點就行了。但當節點增加一定程度的時候。會發現無論再怎麼增加節點、叢集效能的提升並不明顯、這時候就引入了分散式這個玩意

二、分散式架構

1、傳統架構

缺點:

A:系統過於龐大,開發維護困難 

B:功能間耦合度太高: 

C:無法針對單個模組進行優化, 

D:無法進行水平擴充套件

2、分散式架構

分散式是指將多臺伺服器集中在一起,每臺伺服器都實現總體中的不同業務,
做不同的事情。並且每臺伺服器都缺一不可,如果某臺伺服器故障,則網站部分功能缺失,
或導致整體無法執行。存在的主要作用是大幅度的提高效率,緩解伺服器的訪問和儲存壓力。

因此:分散式系統需要執行在叢集伺服器中、甚至分散式系統的每個不同子任務都可以部署叢集

3、分散式叢集綜合架構

一般分散式中的每一個節點,都可以做叢集。這樣的系統架構,我們通常稱為分散式叢集架構。

叢集:所有的機器處理的業務都一樣。
分散式:所有模組都互不相同。

三、代理技術

1、正向代理

正向代理就是代理伺服器替代訪問方【使用者A】去訪問目標伺服器【伺服器B】

 

為什麼需要使用正向代理?
1、	訪問本無法訪問的伺服器B
great firewall
被伺服器遮蔽(wow)

2、	加速訪問伺服器B 

3、Cache作用
如果在使用者A訪問伺服器B某資料J之前,已經有人通過代理伺服器Z訪問過伺服器B上得資料J,
那麼代理伺服器Z會把資料J儲存一段時間,如果有人正好取該資料J,那麼代理伺服器Z不再訪問伺服器B,而把快取的資料J直接發給使用者A。

4、客戶端訪問授權

5、隱藏訪問者的行蹤
伺服器B並不知道訪問自己的實際是使用者A,因為代理伺服器Z代替使用者A去直接與伺服器B進行互動。
如果代理伺服器Z被使用者A完全控制(或不完全控制),會慣以“肉雞”術語稱呼。 

注意:

正向代理:
1. 在客戶機配置代理伺服器,
2. 確認代理伺服器的位置不和client在過濾器的同側
(可以在國外買個伺服器、做正向代理伺服器。這樣就可以通過這個正向代理訪問國外網站了)

2、反向代理

概述:

反向代理正好與正向代理相反,對於客戶端而言代理伺服器就像是原始伺服器,
並且客戶端不需要進行任何特別的設定。客戶端向反向代理的名稱空間(name-space)中的內容傳送普通請求,
接著反向代理將判斷向何處(原始伺服器)轉交請求,並將獲得的內容返回給客戶端。 使用反向代理伺服器的作用

如下:
客戶機直接訪問,不需要做特殊配置,配置都由伺服器操作

(1)、保護和隱藏原始資源伺服器

使用者A始終認為它訪問的是原始伺服器B而不是代理伺服器Z,但實用際上反向代理伺服器接受使用者A的應答,
從原始資源伺服器B中取得使用者A的需求資源,然後傳送給使用者A。由於防火牆的作用,
只允許代理伺服器Z訪問原始資源伺服器B。在這個虛擬的環境下,防火牆和反向代理的共同作用保護了原始資源伺服器B,但使用者A並不知情。

 

(2)、負載均衡

 

當反向代理伺服器不止一個的時候,我們甚至可以把它們做成叢集,當更多的使用者訪問資源伺服器B的時候,
讓不同的代理伺服器Z(x)去應答不同的使用者,然後傳送不同使用者需要的資源。

 注意:

實現反向代理:
1,使用者:不需要任何配置,該怎麼訪問怎麼訪問

3,伺服器,需要在伺服器配置服務和代理伺服器之間的關係