首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试一致性接近方案

测试一致性接近方案
EN

Stack Overflow用户
提问于 2014-06-23 08:20:03
回答 2查看 480关注 0票数 0

我已经设置了一个与本地前端方案和远程后端方案一致的近方案缓存。

我认为配置是正确的,但我想确保它在后端之前检查前端缓存。

我如何测试它呢?我使用的是Windows。

我的配置如下所示:

代码语言:javascript
复制
<?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>
EN

回答 2

Stack Overflow用户

发布于 2014-06-23 22:12:27

您可以尝试执行以下操作:

设置:

代码语言:javascript
复制
 <invalidation-strategy>None</invalidation-strategy>

此策略指示缓存根本不侦听无效事件。当业务需求允许使用可能不是绝对最新的数据时,这是原始性能和可伸缩性的最佳选择。通过对前端缓存http://docs.oracle.com/cd/E18686_01/coh.37/e18677/cache_config.htm使用足够简短的逐出策略,可以保证数据的新鲜性

  • add entry to the cache
  • entry from second client
  • 验证第一个客户端是否具有未修改的条目
票数 0
EN

Stack Overflow用户

发布于 2014-07-12 11:31:19

"common-cache“确实使用了”近缓存“方案,因此这就是您要寻找的行为。

为了测试它,访问100000个不同的(和不存在的)密钥,例如new Integer(1)到new Integer(100000),并测试时间。现在为Integer(1)“输入”一个键,例如

代码语言:javascript
复制
cache.put(new Integer(1), "hello world")

然后重复第一个测试,而不是访问1到100000,只需重复访问"new Integer(1)“-- 100,000次!

第一次测试可能需要一两分钟(取决于有多少服务器,它们是否在同一台机器上,等等)第二次测试的时间应该不到一秒。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24356979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档