集群应用服务器环境中会话管理(复制)的Oracle Coherence最佳实践
Oracle Coherence是一種內(nèi)存中數(shù)據(jù)網(wǎng)格產(chǎn)品,也廣泛用于跨應(yīng)用程序服務(wù)器節(jié)點(diǎn)集群的會(huì)話復(fù)制。 它支持各種應(yīng)用程序服務(wù)器,例如WebLogic,WebSphere,Tomcat,JBoss等。Coherence * Web是會(huì)話管理模塊(基于Coherence構(gòu)建),用于在集群環(huán)境中管理會(huì)話信息。
我將建議遵循Coherence * Web和Coherence用法的最佳實(shí)踐,尤其是對(duì)于會(huì)話管理(也可以在其他Coherence方案中應(yīng)用):
相干部署拓?fù)?/h2>
Coherence支持三種部署模式:
建議:
如果需要Coherence將其邊界擴(kuò)展到核心Coherence TCMP(Coherence使用的內(nèi)部協(xié)議)之外,請(qǐng)使用Coherence * Extend,它支持Java,.Net和C ++客戶端。
在大多數(shù)情況下, 建議使用進(jìn)程外拓?fù)?#xff0c;因?yàn)樗哂歇?dú)立運(yùn)行的專用緩存服務(wù)器節(jié)點(diǎn),從而促進(jìn)了松耦合的物理體系結(jié)構(gòu) 。
對(duì)于會(huì)話復(fù)制,使用進(jìn)程內(nèi)部署通過Coherence共享關(guān)聯(lián)的應(yīng)用程序服務(wù)器內(nèi)存(堆)可創(chuàng)建可靠性。 如果應(yīng)用服務(wù)器內(nèi)存使用量增加,也會(huì)影響Coherence性能,反之亦然。
請(qǐng)確保對(duì)進(jìn)程外配置執(zhí)行以下操作:應(yīng)用程序服務(wù)器節(jié)點(diǎn)以禁用存儲(chǔ)的模式運(yùn)行。 您需要將這兩個(gè)命令行參數(shù)(或通過使用Coherence替代文件)傳遞給應(yīng)用程序服務(wù)器JVM:
Dtangosol.coherence.session.localstorage=false Dtangosol.coherence.distributed.localstorage=false請(qǐng)注意,明確需要設(shè)置會(huì)話存儲(chǔ)屬性,因?yàn)槟J(rèn)情況下在“ session-cache-config.xml”中為“ true”:
………………….<local-storage system-property="tangosol.coherence.session.localstorage"………………….一致性專用節(jié)點(diǎn)需要啟用存儲(chǔ) (否則,沒有人可以存儲(chǔ)會(huì)話屬性),并且應(yīng)該使用“ session-cache-config.xml”或在其中配置了會(huì)話緩存的自定義緩存配置文件:
java –Xms512m -Xmx512m -cp /usr/local/coherence_3_6/lib/coherence.jar:/usr/local/coherence_3_6/lib/coherence-web-spi.war:/usr/local/coherence_3_6/lib/commons-logging-api.jar:/usr/local/coherence_3_6/lib/log4j-1.2.8.jar-Dtangosol.coherence.cacheconfig=../../../webapps/example/WEB-INF/classes/session-cache-config.xml -Dtangosol.coherence.log.level=6 -Dtangosol.coherence.ttl=2 -Dtangosol.coherence.log=log4j -Dtangosol.coherence.edition=EE -Dtangosol.coherence.session.localstorage=true com.tangosol.net.DefaultCacheServer相干緩存拓?fù)?/h2>
Coherence支持基于四種緩存拓?fù)涞奈宸N不同類型的緩存:
您可以使用以下簡(jiǎn)單準(zhǔn)則來選擇適當(dāng)?shù)木彺骖愋?#xff1a;
| 情境 | 推薦的緩存類型 |
| ·您需要更快的讀寫速度 ·您不需要容錯(cuò)(警告:無容錯(cuò)) | 本地緩存 |
| ·您需要更快的閱讀速度和最佳的容錯(cuò)能力 ·寫比較好,但是在復(fù)制更新數(shù)據(jù)之間會(huì)有延遲 ·通常用于存儲(chǔ)元數(shù)據(jù)或配置數(shù)據(jù) 注意:橫向擴(kuò)展(水平可伸縮性)不能是線性的。 | 復(fù)制緩存 |
| ·您需要更快的寫入速度但最好的容錯(cuò)能力 ·讀取速度相對(duì)較快,但取決于它是從本地節(jié)點(diǎn)還是從遠(yuǎn)程節(jié)點(diǎn)讀取 | 分區(qū)或分布式緩存 |
| ·您需要更快的寫入速度但最好的容錯(cuò)能力 ·讀取速度相對(duì)較快,但取決于它是從本地節(jié)點(diǎn)還是從遠(yuǎn)程節(jié)點(diǎn)讀取 ·適度寫入,提高了重讀應(yīng)用程序的親和力性能 | 近緩存(由分區(qū)緩存?zhèn)浞?#xff09; |
執(zhí)行生產(chǎn)清單
Coherence建議在生產(chǎn)環(huán)境中執(zhí)行清單清單,以確保環(huán)境和基礎(chǔ)結(jié)構(gòu)具有推薦的設(shè)置/配置,尤其是在以下方面:
- 網(wǎng)絡(luò):
- 組播測(cè)試:如果您使用的是組播集群,則必須執(zhí)行此測(cè)試以確保組播配置正確且工作正常。
- 數(shù)據(jù)報(bào)測(cè)試–部署應(yīng)用程序之前,必須運(yùn)行它以確保網(wǎng)絡(luò)中沒有數(shù)據(jù)包丟失。 請(qǐng)注意,在1GbE網(wǎng)絡(luò)中,您應(yīng)該使用100MB數(shù)據(jù)包進(jìn)行測(cè)試,并且最小(非平均)成功率應(yīng)接近100%(?98-99%)
- TTL –這對(duì)于多播網(wǎng)絡(luò)非常重要,在生產(chǎn)環(huán)境中通常建議使用2-5的值
- 硬件,操作系統(tǒng)和JVM設(shè)置
- 一致性版本和模式:
- 毋庸置疑,在生產(chǎn)環(huán)境中,一致性模式應(yīng)該是PROD。 它需要在命令行上指定,因?yàn)樘娲渲梦募荒苡糜贓dition&Mode。
-Dtangosol.coherence.mode = PROD
- 默認(rèn)情況下,Coherence在GE(網(wǎng)格版)中運(yùn)行,并且使用適當(dāng)?shù)陌姹?#xff08;根據(jù)您的許可證和需求)來指定正確的版本非常重要。
-Dtangosol.coherence.edition = EE
請(qǐng)注意,群集中的所有節(jié)點(diǎn)應(yīng)使用相同的版本。
- 毋庸置疑,在生產(chǎn)環(huán)境中,一致性模式應(yīng)該是PROD。 它需要在命令行上指定,因?yàn)樘娲渲梦募荒苡糜贓dition&Mode。
執(zhí)行性能調(diào)整準(zhǔn)則
Coherence建議進(jìn)行以下調(diào)整: OS,Network,JVM和Coherence Network。 有關(guān)更多詳細(xì)信息,請(qǐng)參考Coherence性能調(diào)整準(zhǔn)則(參考部分)。
啟用JMX監(jiān)視一致性
Coherence為群集,節(jié)點(diǎn),緩存和其他內(nèi)容的基于JMX的監(jiān)視提供了OOTB支持。 它至少需要一個(gè)節(jié)點(diǎn)充當(dāng)管理者,集群中的其余節(jié)點(diǎn)可以使用JMX發(fā)布其統(tǒng)計(jì)信息。
對(duì)于管理節(jié)點(diǎn),
-Dtangosol.coherence.management=all -Dtangosol.coherence.management.remote=true -Dtangosol.coherence.management.jvm.all=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port= -Dcom.sun.management.jmxremote對(duì)于其他節(jié)點(diǎn),您只需刪除“ tangosol.coherence.management”命令行參數(shù)。 另外,請(qǐng)注意,在上述情況下,未啟用JMX身份驗(yàn)證(需要保護(hù)),并且還需要指定JMX端口。
使用Log4J進(jìn)行一致性日志
盡管Coherence有其自己的日志記錄機(jī)制,但Log4J在日志輪換和控制適當(dāng)?shù)娜罩炯?jí)別方面更有利。
請(qǐng)注意,您可以同時(shí)使用Coherence Log Level參數(shù)(-Dtangosol.coherence.log.level)和Log4J配置作為日志記錄級(jí)別。
請(qǐng)按照以下步驟啟用Log4J for Coherence :
- Coherence沒有l(wèi)og4j庫,因此您需要向類路徑添加以下jar:
一個(gè)。 將“ commons-logging-api.jar”和“ log4j-1.2.8.jar”復(fù)制到/ lib文件夾 - 創(chuàng)建/修改Log4J XML文件,并將其放在Coherence JVM的類路徑中。
- 設(shè)置命令行參數(shù)(或使用替代文件)以將日志參數(shù)值指定為“ log4j ”。
請(qǐng)注意,Coherence假定Log4J XML將Logger Name命名為“ Coherence”,否則您需要通過使用單獨(dú)的參數(shù)“ tangosol.coherence.log.logger”來指定記錄器名稱。
例:
緩存服務(wù)器啟動(dòng)腳本
JAVA_OPTS="-Xms$MEMORY -Xmx$MEMORY -Dtangosol.coherence.log.level=6 -Dtangosol.coherence.log=log4j -Dtangosol.coherence.log.logger=MyCoherence"$JAVAEXEC -server -showversion $JAVA_OPTS -cp "$COHERENCE_HOME/lib/coherence.jar:$ "$COHERENCE_HOME/lib/commons-logging-api.jar:$ COHERENCE_HOME/lib/log4j-1.2.8.jar" com.tangosol.net.DefaultCacheServer $1Log4J XML
......................<logger name="MyCoherence"><level value="3"/><appender-ref ref="CoherenceAppender"/>....................查看Coherence * Web上下文參數(shù)
有幾個(gè)Coherence Web上下文參數(shù),在Web應(yīng)用程序中安裝Coherence * Web時(shí)需要調(diào)整這些參數(shù),尤其是以下內(nèi)容:
- 連貫啟用會(huì)話上下文
- 一致性會(huì)話ID長度
- coherence-session-urlencode-enabled
- 一致性會(huì)話線程鎖定
- 粘性會(huì)話
- 相干reaperdaemon假定位置
- 連貫的可疑屬性
注意:這些參數(shù)在web.xml中配置,并在調(diào)用Coherence * Web安裝實(shí)用程序時(shí)進(jìn)行檢測(cè)。
使用一致性作為L2緩存提供程序
一致性也可以用作正在使用的ORM框架的二級(jí)緩存提供程序。 將Coherence作為L2緩存也可以為ORM L2緩存提供企業(yè)級(jí)緩存。
要配置它們,您需要將Coherence指定為L2 Cache Provider(尤其是對(duì)于Hibernate L2 Cache ):
- 在Hibernate Configuration文件中將Coherence指定為L2緩存提供程序: <prop key="hibernate.cache.provider_class"> com.tangosol.coherence.hibernate.CoherenceCacheProvider </prop>
- 基于以下參數(shù)加載Hibernate L2緩存的配置。 已有默認(rèn)的L2緩存配置文件。 -Dtangosol.coherence.hibernate.cacheconfig = /hibernate-cache-config.xml
資源資源
Coherence用戶指南: http : //download.oracle.com/docs/cd/E18686_01/coh.37/e18690/toc.htm
翻譯自: https://www.javacodegeeks.com/2013/06/oracle-coherence-best-practices-for-session-management-replication-in-clustered-application-servers-environment.html
總結(jié)
以上是生活随笔為你收集整理的集群应用服务器环境中会话管理(复制)的Oracle Coherence最佳实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 任天堂和 Niantic 发布基于浏览器
- 下一篇: 消息称三星 Galaxy Tab A9