2014-06-23 84 views
0

我已經在Coherence中使用本地前端方案和遠端後端方案建立了一個近端方案緩存。測試一致性附近計劃

我認爲配置是正確的,但是我想確定它是在前面檢查前端緩存。

我該如何測試?我正在使用Windows。

我的配置是這樣的:

<?xml version="1.0"?> 
<cache-config xmlns="http://schemas.tangosol.com/cache"> 
    <caching-scheme-mapping> 
    <cache-mapping> 
     <cache-name>common-cache</cache-name> 
     <scheme-name>near-cache</scheme-name> 
    </cache-mapping> 
    </caching-scheme-mapping> 
    <caching-schemes> 
    <near-scheme> 
     <scheme-name>near-cache</scheme-name> 
     <invalidation-strategy>all</invalidation-strategy> 
     <front-scheme> 
     <local-scheme> 
      <scheme-ref>local</scheme-ref> 
     </local-scheme> 
     </front-scheme> 
     <back-scheme> 
     <remote-cache-scheme> 
      <scheme-ref>remote</scheme-ref> 
     </remote-cache-scheme> 
     </back-scheme> 
    </near-scheme> 
    <remote-cache-scheme> 
     <scheme-name>remote</scheme-name> 
     <service-name>ExtendTcpCacheService</service-name> 
     <initiator-config> 
     <tcp-initiator> 
      <remote-addresses> 
      <socket-address> 
       <address>xxx.xxx.xxx.com</address> 
       <port>555</port> 
      </socket-address> 
      </remote-addresses> 
      <connect-timeout>5s</connect-timeout> 
     </tcp-initiator> 
     <outgoing-message-handler> 
      <request-timeout>30s</request-timeout> 
     </outgoing-message-handler> 
     <serializer> 
      <class-name>Tangosol.IO.Pof.ConfigurablePofContext, Coherence</class-name> 
      <init-params> 
      <init-param> 
       <param-type>string</param-type> 
       <param-value>web://~/coherence-pof-config.xml</param-value> 
      </init-param> 
      </init-params> 
     </serializer> 
     </initiator-config> 
    </remote-cache-scheme> 
    <local-scheme> 
     <scheme-name>local</scheme-name> 
     <eviction-policy>HYBRID</eviction-policy> 
     <high-units>1000</high-units> 
     <low-units>750</low-units> 
     <unit-calculator>FIXED</unit-calculator> 
     <expiry-delay>10d</expiry-delay> 
     <flush-delay>1d</flush-delay> 
    </local-scheme> 
    </caching-schemes> 
</cache-config> 

回答

0

您可以嘗試以下操作:

集:

<invalidation-strategy>None</invalidation-strategy> 

這一戰略指示緩存不爲無效事件聽的。當業務需求允許使用可能不是絕對最新的數據時,這是原始性能和可擴展性的最佳選擇。數據新鮮度可通過使用足夠短逐出策略來保證前緩存 http://docs.oracle.com/cd/E18686_01/coh.37/e18677/cache_config.htm

  • 從第二個客戶端
  • 添加條目緩存
  • 更新條目驗證第一客戶端未修改的條目
0

「common-cache」確實使用「near-cache」方案,因此這是您正在查找的行爲。

爲了測試它,訪問100000個不同的(並且不存在的)密鑰,例如,新的整數(1)通過新的整數(100000),並測試時間。現在「放入」整數(1)的鍵,例如

cache.put(new Integer(1), "hello world") 

然後重複第一次測試,而不是訪問1到100000,只需重複訪問「新的Integer(1)」 - 100,000次!

第一次測試可能需要一兩分鐘的時間(取決於多少臺服務器,它們在同一臺機器上等等)。第二次測試應該不到一秒鐘。