欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Tomcat集群和Session復制應用介紹

 更新時間:2012年11月27日 11:47:38   作者:  
本文將詳細介紹Tomcat集群和Session復制應用,需要了解的朋友可以參考下

一個配置文件:

復制代碼 代碼如下:

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="6">
<Manager className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<!--
<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="5000"
selectorTimeout="100"
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"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/>
<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>

說明如下:
1、Cluster
復制代碼 代碼如下:

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

1)Tomcat集群主元素,在這個元素里面可以配置集群的所有詳細信息
2)className主要的集群類,當前只提供了org.apache.catalina.ha.tcp.SimpleTcpCluste作為實現(xiàn)類
3)channelSendOptionssession發(fā)送方式,默認值是8,這個標識確定通過SimpleTcpCluste如何發(fā)送消息
4) Channel.SEND_OPTIONS_SYNCHRONIZED_ACK = 0x0004
Channel.SEND_OPTIONS_ASYNCHRONOUS = 0x0008
Channel.SEND_OPTIONS_USE_ACK = 0x0002
如果使用(ASYNCHRONOUS)加(USE_ACK)方式來發(fā)送消息,那么值應該是10(8+2)或者0x000B
如果使用(SYNCHRONIZED_ACK)加(USE_ACK)方式來發(fā)送消息,那么值應該是6(4+2)或者0x0006
2、Manager
復制代碼 代碼如下:

<Manager className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<!--
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
-->

 1)管理tomcat之間的session復制
2)className當前有兩個實現(xiàn)類:org.apache.catalina.ha.session.DeltaManager和org.apache.catalina.ha.session.BackupManager
  3)DeltaManager復制并發(fā)送Session數(shù)據(jù)到集群下所有的節(jié)點,這個實現(xiàn)類被證明非??煽?、運行得非常好。不過有個局限性就是集群的節(jié)點類型要相同,而且要部署相同的應用程序
4)expireSessionsOnShutdown當一個web程序被結(jié)束時,tomcat分發(fā)銷毀命令到每個Session,并通知所有session listener執(zhí)行。當集群下某個節(jié)點被停止時,如果想銷毀所有節(jié)點下的的Session,設置為true,默認為false
5)notifyListenersOnReplication如果設置為true,當session屬性被復制和移動的時候,session listener被通知
3、Channel
復制代碼 代碼如下:

<Channel className="org.apache.catalina.tribes.group.GroupChannel">

Channel是Apache Tribes的主組件,channel管理一組子組件,并和它們一起組成了tomcat實例間的通訊框架。在tomcat集群中,DeltaManager通過SimpleTcpCluster調(diào)用channel來實現(xiàn)信息傳遞,而BackupManager自己調(diào)用channel以及子組件這些組件來實現(xiàn)信息傳遞。ReplicatedContext也會調(diào)用channel傳遞context屬性。
4、Membership
復制代碼 代碼如下:

<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>

MemberShip組件自動檢索發(fā)現(xiàn)集群里的新節(jié)點或已經(jīng)停止工作的節(jié)點,并發(fā)出相應的通知。默認使用組播(Multicast)實現(xiàn)。
5、Receiver
復制代碼 代碼如下:

<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="5000"
selectorTimeout="100"
maxThreads="6"/>

負責監(jiān)聽接收其他節(jié)點傳送過來的數(shù)據(jù)。默認使用non-blocking TCP Server sockets。
6、Sender
復制代碼 代碼如下:

<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>

管理從一個節(jié)點發(fā)送到另外一個節(jié)點的出站連接和數(shù)據(jù)信息,允許信息并行發(fā)送。默認使用TCP Client Sockets。
7、Interceptor
復制代碼 代碼如下:

<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>

Channel通過Interceptor堆棧進行消息傳遞,在這里可以自定義消息的發(fā)送和接收方式,甚至MemberShip的處理方式。
8、Value
復制代碼 代碼如下:

<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/>

1)Value在調(diào)用Http Request 鏈中起著攔截器的作用,用來決定什么情況下數(shù)據(jù)需要被復制。
org.apache.catalina.ha.tcp.ReplicationValve,ReplicationValue在Http Request結(jié)尾判斷當前數(shù)據(jù)是否需要被復制。
2)Filter內(nèi)容為url或者文件結(jié)尾,當訪問鏈接配置filter時,不論實際session有沒有改變,集群會認為session沒有任何變化,從而不會復制和發(fā)送改變的session屬性。
9、Deployer
復制代碼 代碼如下:

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

使集群支持farmed deployment
10、ClusterListener
復制代碼 代碼如下:

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

Clusterlistener用來追蹤信息發(fā)送和接收。
ClusterSessionListener用來監(jiān)聽集群組件接收信息,當使用DeltaManager的時候,信息被集群接收,并通過ClusterSessionListener傳遞給Session Manager。

相關文章

  • Java技術(shù)長久占居主要地位的12個原因

    Java技術(shù)長久占居主要地位的12個原因

    這篇文章主要為大家詳細介紹了12個Java長久占居主要地位的原因,感興趣的小伙伴們可以參考一下
    2016-07-07
  • java中的GC收集器詳情

    java中的GC收集器詳情

    這篇文章主要介紹了java中的GC收集器,GC(Garbage collection )指的是程序內(nèi)存管理分手動和自動,手動內(nèi)存管理,需要我們編程的時候顯式分配和釋放空間,但如果忘記釋放,會造成嚴重的內(nèi)存泄漏問題,下面文章內(nèi)容我們就來實例說明情況,需要的朋友可以參考一下
    2021-10-10
  • java正則表達式對特殊字符的轉(zhuǎn)義以及異常現(xiàn)象

    java正則表達式對特殊字符的轉(zhuǎn)義以及異常現(xiàn)象

    這篇文章主要給大家介紹了關于java正則表達式對特殊字符的轉(zhuǎn)義以及異?,F(xiàn)象的相關資料,在Java中使用正則表達式匹配特殊字符也需要使用轉(zhuǎn)義字符"\",需要的朋友可以參考下
    2023-06-06
  • Java API操作HDFS方法詳細講解

    Java API操作HDFS方法詳細講解

    這篇文章主要介紹了Java API操作Hdfs詳細示例,遍歷當前目錄下所有文件與文件夾,可以使用listStatus方法實現(xiàn)上述需求,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • 分享一些Java的常用工具

    分享一些Java的常用工具

    今天給大家?guī)淼氖顷P于Java的一些常用的工具,文中有非常詳細的介紹,對正在學習java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • spring data jpa開啟批量插入、批量更新的問題解析

    spring data jpa開啟批量插入、批量更新的問題解析

    這篇文章主要介紹了spring data jpa開啟批量插入、批量更新問題,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2021-07-07
  • Java8新特性之泛型的目標類型推斷_動力節(jié)點Java學院整理

    Java8新特性之泛型的目標類型推斷_動力節(jié)點Java學院整理

    泛型是Java SE 1.5的新特性,泛型的本質(zhì)是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一個參數(shù)。下面通過本文給分享Java8新特性之泛型的目標類型推斷,感興趣的朋友參考下吧
    2017-06-06
  • java.lang.Runtime.exec() Payload知識點詳解

    java.lang.Runtime.exec() Payload知識點詳解

    在本篇文章里小編給大家整理的是一篇關于java.lang.Runtime.exec() Payload知識點相關內(nèi)容,有興趣的朋友們學習下。
    2020-03-03
  • Spring Boot兩種配置文件properties和yml區(qū)別

    Spring Boot兩種配置文件properties和yml區(qū)別

    這篇文章主要為大家介紹了java面試中常見問到的Spring Boot兩種配置文件properties和yml區(qū)別解答,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • IDEA中創(chuàng)建maven項目引入相關依賴無法下載jar問題及解決方案

    IDEA中創(chuàng)建maven項目引入相關依賴無法下載jar問題及解決方案

    這篇文章主要介紹了IDEA中創(chuàng)建maven項目引入相關依賴無法下載jar問題及解決方案,本文通過圖文并茂的形式給大家分享解決方案,需要的朋友可以參考下
    2020-07-07

最新評論