大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Tomca教程
Tomcat Manager
Tomcat Realm 配置
Tomcat 安全管理
Tomcat JNDI 資源
Tomcat JDBC 數據源
Tomcat 類加載機制
Tomcat JSPs
Tomcat SSL/TLS配置
Tomcat SSI
Tomcat CGI
Tomcat 代理支持
Tomcat MBean 描述符
Tomcat 默認 Servlet
Tomcat 集群
Tomcat 連接器
Tomcat監控與管理
Tomcat 日志機制
Tomcat 基于 APR 的原生庫
Tomcat 虛擬主機
Tomcat 高級 IO 機制
Tomcat 附加組件
Tomcat 安全性注意事項
Tomcat Windows 服務
Tomcat Windows 認證
Tomcat 的 JDBC 連接池
Tomcat WebSocket 支持
Tomcat 重寫機制

Tomcat 集群

Tomcat快速入門

只需將下列信息放入  或  元素即可實現集群:

上述配置啟用了全局(all-to-all)會話復制功能,全局會話復制是指利用 DeltaManager 來只復制會話中的變更(Session Delta,也譯作“會話增量”)。這里說的“全局”是指:會話變更會被復制到集群中的所有其他節點(指 Tomcat 實例)中。全局復制非常適于小集群,但不建議在大集群(包含很多 Tomcat 節點)上采用這種方法。另外,值得注意的是,當使用 delta manager 時,它會將變更復制到所有的節點上,甚至包括那些根本沒有部署該應用的節點。

為了解決這個問題,你就得使用 BackupManager。它會把會話數據復制給一個指定的備份節點(這種復制也被稱為“配對復制”),而且該備份節點也一定要部署了相關應用。BackupManager 的缺點在于:不像 DeltaManager 那樣久經實踐考驗。

下面是一些重要的默認值。

  1. IP 組播地址為:228.0.0.4
  2. IP 組播端口為:45564(端口和地址一起確定了集群成員)。
  3. 廣播的 IP 是 java.net.InetAddress.getLocalHost().getHostAddress()(你一定不能廣播 127.0.0.1,這是一個常見錯誤。)
  4. 偵聽復制信息的 TCP 端口是在 4000 - 4100 之間遇到的第一個能用的服務器套接字。
  5. 兩個偵聽器都配置有 ClusterSessionListener。
  6. 兩個攔截器都配置有 TcpFailureDetector 和 MessageDispatch15Interceptor。

下面是默認的集群配置:

  <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                 channelSendOptions="8">

          <Manager className="org.apache.catalina.ha.session.DeltaManager"
                   expireSessionsOnShutdown="false"
                   notifyListenersOnReplication="true"/>

          <Channel className="org.apache.catalina.tribes.group.GroupChannel">
            <Membership className="org.apache.catalina.tribes.membership.McastService"
                        address="228.0.0.4"
                        port="45564"
                        frequency="500"
                        dropTime="3000"/>
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                      address="auto"
                      port="4000"
                      autoBind="100"
                      selectorTimeout="5000"
                      maxThreads="6"/>

            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
              <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
            </Sender>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
          </Channel>

          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                 filter=""/>
          <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

          <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                    tempDir="/tmp/war-temp/"
                    deployDir="/tmp/war-deploy/"
                    watchDir="/tmp/war-listen/"
                    watchEnabled="false"/>

          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
        </Cluster>  

稍后,本文檔將更詳細地闡述這部分的內容。

Tomcat集群基本知識

要想在 Tomcat 8 上運行會話復制,需要執行以下步驟:

  • 所有的會話屬性必須實現 java.io.Serializable。
  • 在 server.xml 中取消注釋 Cluster 元素。
  • 如果你已經定義了自定義集群值,確保在 server.xml 中的 Cluster 元素下面也定義了 ReplicationValve。
  • 如果你的多個 Tomcat 實例都運行在同一臺機器上,則要確保每個實例都具有唯一的 tcpListenPort。通常 Tomcat 會自行解決這個問題,會在 4000 - 4100 上自動偵測可用的端口。
  • 確保 web.xml 含有  屬性。
  • 如果使用 mod_jk,則要確保在  上設定 jvmRoute 屬性。jvmRoute 屬性值必須匹配 workers.properties 中的 worker 名稱。
  • 所有的節點必須具有相同的時間,并且與 NTP 服務器同步。
  • 確保負載均衡配置了會話模式.

負載均衡可以通過多種技術來實現,參看負載均衡部分。

注意:會話狀態是通過 cookie 來記錄的,所以你的 URL 必須保持一致,否則就會創建一個新會話。

注意:當前如要支持集群,需要 JDK 1.5 或更新版本。

集群模塊使用 Tomcat 的 JULI 日志框架,所以可以通過 logging.properties 文件來配置日志。為了跟蹤消息,你可以啟用 org.apache.catalina.tribes.MESSAGES 鍵上的日志。

概述

在 Tomcat 中,可以使用以下方法中的一種啟用會話復制:

  1. 使用會話持久性,將會話保存到共享文件系統中(PersistenceManager + FileStore)。
  2. 使用會話持久性,將會話保存到共享數據庫中(PersistenceManager + JDBCStore)。
  3. 使用內存復制,使用 Tomcat 自帶的 SimpleTcpCluster(lib/catalina-tribes.jar + lib/catalina-ha.jar)。

在這一版本的 Tomcat 中,可以使用 DeltaManager 執行全局式會話狀態復制,或者使用 BackupManager 執行備份復制,將會話復制到一個節點上。全局式會話復制這種算法只有在集群較小時才比較有效。對于大型集群,更多使用主從會話復制,將會話存儲到一臺配置了 BackupManager 的備份服務器上。

當前可以使用域名 worker 屬性(mod_jk 版本 > 1.2.8)來構建集群分區,從而有可能利用 DeltaManager 實現更具有可擴展性的集群方案(需要為此配置域的攔截器)。為了在全局性環境中降低網絡流量,可以將集群分成幾個較小的分組。為不同的分組使用不同的組播地址即能實現這種方案。下圖展示的是一種簡單的配置方案。

DNS 輪詢
|
負 載 均 衡 器
/              \
集群 1              集群 2
/     \             /     \
Tomcat 1 Tomcat 2  Tomcat 3 Tomcat 4  

Tomcat集群信息

值得注意的是,使用會話復制僅僅是集群化的一個基礎方案。關于集群的實現,另一個常用的概念是耕種(farming),比如:只需將應用部署到一個服務器上,集群就會將部署分發到整個集群的各個節點中。這都是 FarmWarDeployer 所具有的功能(參看 server.xml 中的集群范例)。

下一節將深入介紹會話復制的工作原理以及配置方式。

通過組播心跳包(heartbeat)建立起成員(Membership)關系,因此,如果希望細分集群,可以改變 <Membership> 元素中的組播 IP 地址或端口。

心跳包中含有 Tomcat 節點的 IP 地址,以及 Tomcat 用來偵聽會話復制流量的 TCP 端口。所有的數據通信都使用了 TCP 協議。

ReplicationValve 用于查找請求結束的時間,如果存在會話復制,就對該復制進行初始化。只復制會話變更的數據(通過在會話上調用 setAttribute 或 removeAttribute 來完成)。

復制的異步與同步模式應該是最值得我們注意的一個特點了。在同步復制模式下,復制的會話通過線纜傳送,重新在所有集群節點上實例化,這樣才會返回請求。同步和異步是通過 channelSendOptions 標志(整型值)來配置的。SimpleTcpCluster/DeltaManager 組合的默認值是 8,從而是異步。詳情可以參考一下 send flag(overview) 或 send flag(javadoc)。在異步復制過程中,請求不必等到數據被復制完畢即可返回。異步復制縮短了請求時間,而同步復制則保證了能在請求返回之前復制完會話。

當發生崩潰時,將會話綁定到故障轉移節點

如果你使用了 mod_jk 而沒有使用粘性會話(sticky session),或者粘性會話由于某種原因而不起作用,或者僅是故障轉移,會話 id 需要修改,因為它之前含有之前 Tomcat 的 worker id(通過 Engine 元素中的 jvmRoute 定義)。為了解決這個問題,就要用到 JvmRouteBinderValve。

JvmRouteBinderValve 將重寫會話 id,以便確保下一個請求在故障轉移后依然能保持粘性(不會因為 worker 不再可用而回滾到某個隨機的節點中)。利用同樣的名字,該值重寫了 cookie 中的 JSESSIONID 值。假如沒有正確地設置 valve,將使 mod_jk 模塊在失敗后很難保持會話的粘性。

記住,如果在 server.xml 中自定義值,那么默認值將不再有效,所以一定要確保添加了默認所定義的值。

提示:

利用屬性 sessionIdAttribute 可以改變包含舊會話 id 的請求屬性名。默認的請求屬性名是:org.apache.catalina.ha.session.JvmRouteOrignalSessionID。

技巧:

可以啟用 mod_jk 翻轉模式在刪除一個節點, 然后啟用了 mod_jk Worker 禁用 JvmRouteBinderValves 。這種用例意味著只有請求的會話才能得到遷移。

全部教程
主站蜘蛛池模板: 亚洲日本在线观看视频 | 91精品国产福利在线观看性色 | 嫩草社区 | 福利影院第一页 | 久久98| 亚洲精品综合一二三区在线 | 99视频精品全国免费 | 久久99亚洲精品久久频 | 欧美高清视频www夜色资源 | 欧美日韩国产成人综合在线影院 | 一级毛片在线播放 | 亚洲一区在线日韩在线深爱 | 色综合a怡红院怡红院首页 色综合h | 久久成人国产精品二三区 | 性生活视频免费观看 | 国产综合久久一区二区三区 | 青青青草视频在线 | 国产香蕉在线视频一级毛片 | 欧美一级毛片图 | 久久99久久99精品免费看动漫 | 草久久久久| 啪啪一级视频 | 天堂一区二区三区在线观看 | 久久这里一区二区精品 | 97se亚洲国产综合自在线 | 在线理论视频 | 四虎永久在线精品免费影视 | 九色91精品国产网站 | 国产成人精品亚洲2020 | 天天操夜夜摸 | 日本精品区 | 日本久久网 | 四虎视屏 | 亚洲天天做日日做天天欢毛片 | 四虎www成人影院免费观看 | 亚洲综合色就色手机在线观看 | 精品国产九九 | 成熟女人免费一级毛片 | 99这里有精品视频 | 日不卡在线 | 久久亚洲国产午夜精品理论片 |