最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Tomcat集群和Session復(fù)制應(yīng)用介紹

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

一個(gè)配置文件:

復(fù)制代碼 代碼如下:

<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
復(fù)制代碼 代碼如下:

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

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

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

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

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

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

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

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

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

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

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

<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堆棧進(jìn)行消息傳遞,在這里可以自定義消息的發(fā)送和接收方式,甚至MemberShip的處理方式。
8、Value
復(fù)制代碼 代碼如下:

<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ù)需要被復(fù)制。
org.apache.catalina.ha.tcp.ReplicationValve,ReplicationValue在Http Request結(jié)尾判斷當(dāng)前數(shù)據(jù)是否需要被復(fù)制。
2)Filter內(nèi)容為url或者文件結(jié)尾,當(dāng)訪問鏈接配置filter時(shí),不論實(shí)際session有沒有改變,集群會(huì)認(rèn)為session沒有任何變化,從而不會(huì)復(fù)制和發(fā)送改變的session屬性。
9、Deployer
復(fù)制代碼 代碼如下:

<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
復(fù)制代碼 代碼如下:

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

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

相關(guān)文章

  • Java微服務(wù)開發(fā)之Swagger詳解

    Java微服務(wù)開發(fā)之Swagger詳解

    Swagger 是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)。總體目標(biāo)是使客戶端和文件系統(tǒng)作為服務(wù)器以同樣的速度來更新。文件的方法,參數(shù)和模型緊密集成到服務(wù)器端的代碼,允許API來始終保持同步
    2021-10-10
  • JUC系列學(xué)習(xí)工具類CountDownLatch詳解

    JUC系列學(xué)習(xí)工具類CountDownLatch詳解

    這篇文章主要介紹了JUC系列學(xué)習(xí)工具類CountDownLatch詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可任意參考一下
    2022-08-08
  • Java 動(dòng)態(tài)編譯在項(xiàng)目中的實(shí)踐分享

    Java 動(dòng)態(tài)編譯在項(xiàng)目中的實(shí)踐分享

    在 Java 中,動(dòng)態(tài)編譯是指在運(yùn)行時(shí)動(dòng)態(tài)地編譯 Java 源代碼,生成字節(jié)碼,并加載到 JVM 中執(zhí)行,動(dòng)態(tài)編譯可以用于實(shí)現(xiàn)動(dòng)態(tài)代碼生成、動(dòng)態(tài)加載、插件化等功能,本文將給大家分享一下Java 動(dòng)態(tài)編譯在項(xiàng)目中的實(shí)踐,感興趣的同學(xué)跟著小編一起來看看吧
    2023-07-07
  • Spring Boot基礎(chǔ)入門之基于注解的Mybatis

    Spring Boot基礎(chǔ)入門之基于注解的Mybatis

    這篇文章主要給大家介紹了關(guān)于Spring Boot基礎(chǔ)入門之基于注解的Mybatis的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • Java獲取磁盤分區(qū)信息的示例詳解

    Java獲取磁盤分區(qū)信息的示例詳解

    在日常開發(fā)、系統(tǒng)監(jiān)控和資源管理中,磁盤分區(qū)信息是非常重要的數(shù)據(jù),本文將基于 Java 語言實(shí)現(xiàn)磁盤分區(qū)信息的獲取功能,感興趣的可以了解下
    2025-03-03
  • Java?Stream如何將List分組成Map或LinkedHashMap

    Java?Stream如何將List分組成Map或LinkedHashMap

    這篇文章主要給大家介紹了關(guān)于Java?Stream如何將List分組成Map或LinkedHashMap的相關(guān)資料,stream流是Java8的新特性,極大簡(jiǎn)化了集合的處理操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Hibernate單表操作實(shí)例解析

    Hibernate單表操作實(shí)例解析

    這篇文章主要介紹了Hibernate單表操作實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • SpringBoot整合Redis實(shí)現(xiàn)token緩存

    SpringBoot整合Redis實(shí)現(xiàn)token緩存

    于token通常會(huì)被多次使用,我們需要把它保存到緩存中,以減少頻繁地訪問數(shù)據(jù)庫,本文主要介紹了SpringBoot整合Redis實(shí)現(xiàn)token緩存,感興趣的可以了解一下
    2024-02-02
  • SpringMVC處理Form表單實(shí)例

    SpringMVC處理Form表單實(shí)例

    這篇文章主要介紹了使用SpringMVC處理Form表單實(shí)例,非常具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-10-10
  • 淺析Java?ReentrantLock鎖的原理與使用

    淺析Java?ReentrantLock鎖的原理與使用

    這篇文章主要為大家詳細(xì)介紹了Java中ReentrantLock鎖的原理與使用,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解下
    2023-08-08

最新評(píng)論

昌宁县| 清河县| 巴林左旗| 灵宝市| 松阳县| 汽车| 淳安县| 泰兴市| 阳原县| 海林市| 陈巴尔虎旗| 鹿邑县| 乡城县| 元朗区| 娄烦县| 福建省| 博乐市| 江川县| 峨眉山市| 嘉定区| 天峨县| 彭阳县| 汉寿县| 崇明县| 抚州市| 上林县| 阿瓦提县| 永年县| 昔阳县| 纳雍县| 芒康县| 兴安县| 旅游| 绥棱县| 太谷县| 祁连县| 芦溪县| 井陉县| 金沙县| 南涧| 乌兰察布市|