集群应用服务器环境中会话管理(复制)的Oracle Coherence最佳实践
Oracle Coherence是一種內存中數據網格產品,也廣泛用于跨應用程序服務器節點集群的會話復制。 它支持各種應用程序服務器,例如WebLogic,WebSphere,Tomcat,JBoss等。Coherence * Web是會話管理模塊(基于Coherence構建),用于在集群環境中管理會話信息。
我將建議遵循Coherence * Web和Coherence用法的最佳實踐,尤其是對于會話管理(也可以在其他Coherence方案中應用):
相干部署拓撲
Coherence支持三種部署模式:
建議:
如果需要Coherence將其邊界擴展到核心Coherence TCMP(Coherence使用的內部協議)之外,請使用Coherence * Extend,它支持Java,.Net和C ++客戶端。
在大多數情況下, 建議使用進程外拓撲,因為它具有獨立運行的專用緩存服務器節點,從而促進了松耦合的物理體系結構 。
對于會話復制,使用進程內部署通過Coherence共享關聯的應用程序服務器內存(堆)可創建可靠性。 如果應用服務器內存使用量增加,也會影響Coherence性能,反之亦然。
請確保對進程外配置執行以下操作:應用程序服務器節點以禁用存儲的模式運行。 您需要將這兩個命令行參數(或通過使用Coherence替代文件)傳遞給應用程序服務器JVM:
Dtangosol.coherence.session.localstorage=false Dtangosol.coherence.distributed.localstorage=false請注意,明確需要設置會話存儲屬性,因為默認情況下在“ session-cache-config.xml”中為“ true”:
………………….<local-storage system-property="tangosol.coherence.session.localstorage"………………….一致性專用節點需要啟用存儲 (否則,沒有人可以存儲會話屬性),并且應該使用“ session-cache-config.xml”或在其中配置了會話緩存的自定義緩存配置文件:
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相干緩存拓撲
Coherence支持基于四種緩存拓撲的五種不同類型的緩存:
您可以使用以下簡單準則來選擇適當的緩存類型:
| 情境 | 推薦的緩存類型 |
| ·您需要更快的讀寫速度 ·您不需要容錯(警告:無容錯) | 本地緩存 |
| ·您需要更快的閱讀速度和最佳的容錯能力 ·寫比較好,但是在復制更新數據之間會有延遲 ·通常用于存儲元數據或配置數據 注意:橫向擴展(水平可伸縮性)不能是線性的。 | 復制緩存 |
| ·您需要更快的寫入速度但最好的容錯能力 ·讀取速度相對較快,但取決于它是從本地節點還是從遠程節點讀取 | 分區或分布式緩存 |
| ·您需要更快的寫入速度但最好的容錯能力 ·讀取速度相對較快,但取決于它是從本地節點還是從遠程節點讀取 ·適度寫入,提高了重讀應用程序的親和力性能 | 近緩存(由分區緩存備份) |
執行生產清單
Coherence建議在生產環境中執行清單清單,以確保環境和基礎結構具有推薦的設置/配置,尤其是在以下方面:
- 網絡:
- 組播測試:如果您使用的是組播集群,則必須執行此測試以確保組播配置正確且工作正常。
- 數據報測試–部署應用程序之前,必須運行它以確保網絡中沒有數據包丟失。 請注意,在1GbE網絡中,您應該使用100MB數據包進行測試,并且最小(非平均)成功率應接近100%(?98-99%)
- TTL –這對于多播網絡非常重要,在生產環境中通常建議使用2-5的值
- 硬件,操作系統和JVM設置
- 一致性版本和模式:
- 毋庸置疑,在生產環境中,一致性模式應該是PROD。 它需要在命令行上指定,因為替代配置文件不能用于Edition&Mode。
-Dtangosol.coherence.mode = PROD
- 默認情況下,Coherence在GE(網格版)中運行,并且使用適當的版本(根據您的許可證和需求)來指定正確的版本非常重要。
-Dtangosol.coherence.edition = EE
請注意,群集中的所有節點應使用相同的版本。
- 毋庸置疑,在生產環境中,一致性模式應該是PROD。 它需要在命令行上指定,因為替代配置文件不能用于Edition&Mode。
執行性能調整準則
Coherence建議進行以下調整: OS,Network,JVM和Coherence Network。 有關更多詳細信息,請參考Coherence性能調整準則(參考部分)。
啟用JMX監視一致性
Coherence為群集,節點,緩存和其他內容的基于JMX的監視提供了OOTB支持。 它至少需要一個節點充當管理者,集群中的其余節點可以使用JMX發布其統計信息。
對于管理節點,
-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對于其他節點,您只需刪除“ tangosol.coherence.management”命令行參數。 另外,請注意,在上述情況下,未啟用JMX身份驗證(需要保護),并且還需要指定JMX端口。
使用Log4J進行一致性日志
盡管Coherence有其自己的日志記錄機制,但Log4J在日志輪換和控制適當的日志級別方面更有利。
請注意,您可以同時使用Coherence Log Level參數(-Dtangosol.coherence.log.level)和Log4J配置作為日志記錄級別。
請按照以下步驟啟用Log4J for Coherence :
- Coherence沒有log4j庫,因此您需要向類路徑添加以下jar:
一個。 將“ commons-logging-api.jar”和“ log4j-1.2.8.jar”復制到/ lib文件夾 - 創建/修改Log4J XML文件,并將其放在Coherence JVM的類路徑中。
- 設置命令行參數(或使用替代文件)以將日志參數值指定為“ log4j ”。
請注意,Coherence假定Log4J XML將Logger Name命名為“ Coherence”,否則您需要通過使用單獨的參數“ tangosol.coherence.log.logger”來指定記錄器名稱。
例:
緩存服務器啟動腳本
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上下文參數
有幾個Coherence Web上下文參數,在Web應用程序中安裝Coherence * Web時需要調整這些參數,尤其是以下內容:
- 連貫啟用會話上下文
- 一致性會話ID長度
- coherence-session-urlencode-enabled
- 一致性會話線程鎖定
- 粘性會話
- 相干reaperdaemon假定位置
- 連貫的可疑屬性
注意:這些參數在web.xml中配置,并在調用Coherence * Web安裝實用程序時進行檢測。
使用一致性作為L2緩存提供程序
一致性也可以用作正在使用的ORM框架的二級緩存提供程序。 將Coherence作為L2緩存也可以為ORM L2緩存提供企業級緩存。
要配置它們,您需要將Coherence指定為L2 Cache Provider(尤其是對于Hibernate L2 Cache ):
- 在Hibernate Configuration文件中將Coherence指定為L2緩存提供程序: <prop key="hibernate.cache.provider_class"> com.tangosol.coherence.hibernate.CoherenceCacheProvider </prop>
- 基于以下參數加載Hibernate L2緩存的配置。 已有默認的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
總結
以上是生活随笔為你收集整理的集群应用服务器环境中会话管理(复制)的Oracle Coherence最佳实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 任天堂和 Niantic 发布基于浏览器
- 下一篇: 摆脱困境:将环境特定的Cron表达式与@