Установка для JedisPoolConfig testOnBorrow значения false

Итак, в настоящее время в моем bean-компоненте JedisPoolConfig для параметра testOnBorrow установлено значение true. Похоже, что это получение ресурсов медленнее.

Был сценарий, когда джедаям потребовалось 30 минут, чтобы получить ресурсы от Redis (вызов методов (redis.clients.jedis.BinaryJedis:exists:144 и java.lang.Thread:sleep) несколько раз, прежде чем получить ресурс или отрываться).

Я думал, что могу сделать для параметра testOnBorrow значение false, чтобы предотвратить PING-вызовы Redis перед чтением ресурсов.

Итак, мои вопросы (и я очень надеюсь, что получу ответы):

  1. «Что установка этого параметра сделает с моим приложением»?
  2. «Это решение действительно эффективно?»
  3. «Есть ли лучшее решение этой проблемы медленного чтения?»

person Sulaiman Adeeyo    schedule 09.05.2016    source источник


Ответы (1)


Настройки Jedis testOnX просто отправляют Redis команду PING в определенных сценариях. testOnBorrow отправляет их при получении подключения из пула.

Его отключение ускорит вашу работу с Redis, так как вы пропустите проверку, что означает на один TTL меньше. Обратите внимание, что ваше приложение должно знать, как обрабатывать объект с плохим соединением, но это верно и при включенном тесте, поскольку соединение может закрыться/разорвать также после теста и до вашего использования.

Тем не менее, 30 минут — это вечность, и определенно не происходит, потому что вы отправляете запрос PING. Убедитесь, что вы возвращаете подключения к пулу после завершения, и убедитесь, что размер вашего пула достаточно велик для использования вашим приложением.

person Ofir Luzon    schedule 10.05.2016