0

我发现了对这个问题的其他回应,但如果有人有配置解决方案方面或者在其他情况下是分布式缓存服务限制,我想解释我的用例。

集群 4 VM 中的DATA GRID Server 8.2.3,配置如下

{
      "distributed-cache": {
        "mode": "SYNC",
        "remote-timeout": 17500,
        "state-transfer": {
          "timeout": 60000
        },
        "encoding": {
          "key": {
            "media-type": "text/plain"
          },
          "value": {
            "media-type": "application/x-protostream"
          }
        },
        "locking": {
          "concurrency-level": 1000,
          "acquire-timeout": 15000,
          "striping": false
        },
        "statistics": true
      }
    }

应用端客户端 HOT-ROD版本,标准 Jcache lib 版本12.1.11.Final-redhat-00001

@PostConstruct
  private void setUp() {
      LOGGER.info("START [setUp] CACHE");
     
      File conf = new File(System.getenv("CLIENT_HOTROD_FILE_PATH"));
     
      URI uri = conf.toURI();
    
      // Retrieve the system wide cache manager via org.infinispan.jcache.remote.JCachingProvider
      javax.cache.CacheManager cacheManager = Caching.getCachingProvider("org.infinispan.jcache.remote.JCachingProvider")
            .getCacheManager(uri, this.getClass().getClassLoader(), null);
      
      this.cache = cacheManager.getCache(DATAGRIDKEY);
     
      LOGGER.info("END [setUp] cache " + this.cache.getName() );
  }

客户端配置是默认的。

我执行的测试是:在集群上的分布式缓存 infinispan 上大量放置数据 应用程序经常收到来自服务器的响应超时,如下所示:

[1/26/22 14:58:02:767 CET] 00001ffd HOTROD W org.infinispan.client.hotrod.impl.protocol.Codec20 checkForErrorsInResponseStatus ISPN004005: Error received from the server: org.infinispan.util.concurrent.TimeoutException: ISPN000476: Timed out waiting for responses for request 1770 from DM10RH08

有没有办法通过配置优化服务器端和客户端的性能?

4

1 回答 1

0

我解决了更改服务器数据网格配置的问题

从SYNCASYNC模式的分布式缓存。

超过远程超时服务器端是由集群数据网格的子节点中同步复制键花费的时间引起的。

从数据网格文档(文档 SYNC 和 ASYNC 复制):

复制模式可以是同步的或异步的,具体取决于要解决的问题。

同步复制会阻塞线程或调用者(例如在 put() 操作上),直到修改被复制到集群中的所有节点。通过等待确认,同步复制可确保在操作结束之前成功应用所有复制。

异步复制的运行速度比同步复制快得多,因为它不需要等待节点的响应。异步复制在后台执行复制,调用立即返回。异步复制期间发生的错误将写入日志。因此,尽管事务的复制可能未在集群中的所有缓存实例上成功,但事务仍可以成功完成。

我的最后一个服务器配置:

{
  "distributed-cache": {
    "mode": "ASYNC",
    "remote-timeout": 17500,
    "state-transfer": {
      "timeout": 60000
    },
    "encoding": {
      "key": {
        "media-type": "text/plain"
      },
      "value": {
        "media-type": "application/x-protostream"
      }
    },
    "locking": {
      "concurrency-level": 1000,
      "acquire-timeout": 15000,
      "striping": false
    },
    "statistics": true
  }
}

此外,始终在服务器配置中( /opt/redhat/redhat-datagrid-8.2-server/bin/server.conf )

我将Xms设置为与Xmx相同的大小,以避免 GC 启动时性能下降。

我找到了性能调优链接:性能调优缓存链接

于 2022-01-28T15:52:18.113 回答