2012-07-04 41 views
8

從最純粹的角度來看,它們有點像相同的概念。兩者都管理重建/節點組並控制其從外部組件或通過外部組件訪問。游泳池和集羣之間的區別

有一個池,您借用這些資源/節點並將其返回池中。

對於一個集羣,您有一個負載平衡器坐在資源/節點前面,並且您通過請求點擊負載平衡器。

在這兩種情況下,您完全無法控制您的請求/借用映射到的資源/節點。

所以我提出的問題:「池」模式和負載平衡羣集之間的根本區別是什麼?

回答

12

池用於避免不斷創建和銷燬創建成本高昂的資源。池中的資源一次只能由一個客戶端使用。可用資源存儲在池中。當你需要一個,你從游泳池得到它,從而使其他客戶無法使用它。當你完成這個資源時,你將它放回池中。池通常用於數據庫連接和線程。另一個優點是它允許將資源(連接,線程)的數量保持在合理的最大值。

羣集是一個節點(計算機,虛擬機)的集合,它允許爲更多併發客戶端(可擴展性)提供服務並避免單點故障(故障轉移,冗餘)。另請注意,負載平衡器不一定是隨機的。在很多情況下,負載平衡器使用粘性會話:一旦客戶端被分配到集羣的一個節點,他的所有後續請求就會轉到同一節點。

因此,目標在池和羣集之間並不相同。存儲在池中的資源與羣集資源不同。