клиент infinispan HOTROD массивные данные размещения ISPN000476: истекло время ожидания ответов на запрос

Я нашел другие ответы на проблему, но я хотел бы объяснить свой вариант использования, если у кого-то есть решения по настройке или в другом случае это ограничение службы распределенного кэша.

DATA GRID Server 8.2.3 в кластере 4 ВМ со следующей конфигурацией

      {
      "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 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

Есть ли способ оптимизировать производительность на стороне сервера и на стороне клиента с помощью конфигурации?

1 ответ

Я решил проблему, изменив конфигурацию сетки данных сервера.

распределенный кэш из режима SYNC в режим ASYNC .

Превышение удаленного времени ожидания на стороне сервера было вызвано временем, затраченным на синхронизацию ключа репликации в узлах подмножества сетки данных кластера.

Из документа Data Grid ( документ 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 , чтобы избежать снижения производительности при запуске сборщика мусора.

Я нашел ссылку на настройку производительности: ссылка на кеш настройки производительности

Другие вопросы по тегам