我在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 :(得分:0)
您可以尝试以下操作:
组:
<invalidation-strategy>None</invalidation-strategy>
此策略指示缓存根本不监听失效事件。当业务需求允许使用可能不是绝对最新的数据时,这是原始性能和可伸缩性的最佳选择。通过使用前端缓存的足够简短的逐出策略,可以保证数据的新鲜度 http://docs.oracle.com/cd/E18686_01/coh.37/e18677/cache_config.htm
答案 1 :(得分:0)
&#34;共用高速缓冲存储器&#34;确实使用&#34; near-cache&#34;方案,这就是你要寻找的行为。
要测试它,请访问100000个不同(和不存在)的密钥,例如new Integer(1)通过new Integer(100000),并测试时间。现在&#34;放&#34; Integer(1)中的一个键,例如
cache.put(new Integer(1), "hello world")
然后重复第一次测试,但不是访问1到100000,只需访问&#34; new Integer(1)&#34;反复 - 100,000次!
第一次测试可能需要一两分钟(取决于服务器数量,它们是否在同一台机器上等)。第二次测试应该不到一秒钟。