如何設定 Tomcat Clustering

Tomcat 的 Clustering 設定其實很簡單,只要二個步驟就可以完成了。
1. 將 $CATALINA_HOME/conf/server.xml 中 Clustering 功能打開。
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
2. 將 $CATALINA_HOME/conf/web.xml 中 Distributable 功能打開。
<distributable/>
Tomcat 的 Clustering 功能只有一個也是唯一的一個,就是 SimpleTcpCluster 這個 class。它有一些參數設定,可以參看這份文件。不過大多數的情形下,預設值就已經夠用了。

下面是 Tomcat 的 Clustering 的注意事項:
1. SimpleTcpCluster 採用的是 broadcast 廣播的模式與其他 Server 溝通。
2. Broadcast 佔用的 port 是 45564。
3. Tomcat 會自動從 4000~4100 這個範圍的 port 取一個來 listen broadcast 的資訊。
4. 所有實作 javax.servlet.http.HttpSession 的 session 物件,也都必須實作 java.io.Serializable 才能運用在 Tomcat Clustering 架構中。
5. 確保加入 Clustering 的 Server 時間保持同步,可以採用 NTP 同步。

參考資料:
Clustering/Session Replication HOW-TO
The Cluster object