隨著c/s架構中,客戶端對伺服器的訪問量及訪問次數逐漸增多,單個伺服器已經不能夠滿足客戶端的請求了。於是現在大多數伺服器都做成了集群的形式。而伺服器集群會有乙個很大問題,就是同步問題。
比如,現在我對乙個有四台計算機的集群進行訪問,這時假設根據負載均衡分配到了node1,如果我在node1上建立了乙個session物件,這時,在伺服器響應客戶端之前,一定是要先將建立session物件的資訊同步到其它節點上的。這樣,我們在客戶端第二次發起請求時,假設分到了node2,我們也可以直接獲取session資訊。照常進行會話。如果我們在某個伺服器上刪除了會話,那麼同樣,在響應之前也會同步其它節點也刪除會話。如圖:
上述無論是傳送還是接收資訊的過程中,使用到的元件主要有三個:
簡單來講,manager的作用是將操作的資訊記錄下來,然後序列化後交給cluster,接著cluster是依賴於tribes將資訊傳送出去的。其餘節點收到資訊後,按照相反的流程一步步傳到manager,經過反序列化之後使該節點同步傳遞過來的操作資訊。如圖,假設我們訪問的是中間的節點,該節點將資訊同步出去。資訊是以cluster message物件傳送的。
關於集群的具體同步機制,tomcat共提供了兩種。一種是集群增量會話管理器,另一種是集群備份會話管理器 。
集群增量會話管理器
這是一種全節點複製模式,全節點複製指的是集群中乙個節點發生改變後會同步到其餘全部節點。那麼非全節點複製,顧名思義,指的是集群中乙個節點發生改變後,只同步到其餘乙個或部分節點。
除了這一特點,集群增量會話管理器還具有只同步會話增量的特點,增量是以乙個完整請求為週期,也就是說會在乙個請求被響應之前同步到其餘節點上。
集群備份會話管理器
全節點複製模式存在的乙個很大的問題就是用於備份的網路流量會隨著節點數的增加而急速增加,這也就是無法構建較大規模集群的原因。為了解決這個問題,tomcat提出了集群備份會話管理器。每個會話只有乙個備份。這樣就可構建大規模的集群。
Git原理入門解析
前言 自己第一次聽到git應該是一年前了,當時很懵,不知道它是幹啥的,在網上搜尋了很多文章,一直不是太明白 今天我來記錄一下自己對git的學習,如果對其他童鞋有所幫助,我榮幸之至!git是什麼?git是目前世界上最先進的分布式版本控制系統 沒有之一 最初由 linux torvalds linux ...
編譯原理 入門總結
入門教程在 手把手教你做乙個 c 語言編譯器 19年嘗試學了一下,中途看不懂放棄了。20年底從頭再看一遍,經過一年的知識積累,在仔細研讀之下,終於算是學懂了。此文中記錄了我在最初學習時遇到的問題,和最終的解決方法記錄下來,希望對讀者有所幫助。虛擬機器涉及的知識是比較綜合性的,是乙個難點。虛擬機器的原...
鴿巢原理入門
下面有兩個入門題目 poj2356 題意 從n個數中選出幾個數的和是n的倍數。因為給定的是n個數,所以結論是一定存在。證明如下 用sum k 表示前k個數的和,假設不存在,那麼sum k n一定在1到 n 1 之間,其中k為 1 n 那麼它的餘數至少有兩個數是相等的。因為鴿巢原理n個蘋果放到n 1個...