Мониторинг пула Jedis с помощью JMX MBeans
Пул Jedis основан на Apache Generi c -Pool API, так что вы можете использовать JMX для мониторинга состояния вашего пула подключений ,
Например, запустите ваше приложение с включенным JMX:
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
Затем соединитесь с JConsole или любым другим JMX-совместимым инструментом:
- Подключитесь к вашему приложению / процесс
- Go в MBeans
- Go в
org.apache.commons.pool2.GenericObjectPool.pool
MBeans
Вы сможете отслеживать, что происходит с вашим приложением / JedisPool .
У вас есть много инструментов мониторинга, совместимых с JMX, которые позволяют вам ставить оповещения на основе порога
Размеры и конфигурация
Конфигурация вашего пула на самом деле определяется приложением c, и для настройки свойства maxTotal
, то есть максимального количества подключений, которое вы должны посмотреть:
- сколько одновременных подключений нужны вашим службам
- сколько времени занимает каждый вызов для выполнения команд, которые вы отправляете
И вы должны быть уверены, что не перегружаете свою систему (на стороне клиента и на сервере) сторона.)
JedisPool: Обязательно освободите соединение;)
Кроме того, речь идет не о мониторинге, а о передовой практике:
- делает ваше приложение выпущенным подключение к пулу после каждого использования?
/// Jedis implements Closeable. Hence, the jedis instance will be auto-closed after the last statement.
try (Jedis jedis = pool.getResource()) {
// use your jedis
jedis.set("foo", "bar");
} // the resource will be released back to the pool
Если вы не используете попытку с ресурсом, вы должны закрыть соединение (вернуть его в пул)
Jedis jedis = null;
try {
jedis = pool.getResource();
// work with Redis
jedis.set("foo", "bar");
} finally {
// you must close the connection to put it back to the pool
if (jedis != null) {
jedis.close();
}
}
Также при закрытии приложения :
pool.close()