Весенние данные Redis. Как узнать номер Активного, Свободного Соединения?

Весной у меня есть jedisConnFactory и боб jedisPoolConfig, как это

    <bean id="jedisConnFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:host-name="127.0.0.1" p:port="6379" p:poolConfig-ref="jedisPoolConfig" />

    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxTotal" value="${redis.pool.maxTotal}" />
        <property name="maxIdle" value="${redis.pool.maxIdle}" />
        <property name="maxWaitMillis" value="${redis.pool.maxWaitMillis}" />
    </bean>

Отправка данных на сервер в порядке. Но я не знаю, как проверить, работает ли JedisPoll.

Как проверить количество активных, незанятых соединений?

2 ответа

Мы можем получить метрики с помощью отражения Java:

      Field poolField = JedisConnectionFactory.class.getDeclaredField("pool");
  poolField.setAccessible(true);
  Pool<Jedis> jedisPool = (Pool<Jedis>)poolField.get(connectionFactory);
  int activeNum = jedisPool.getNumActive();
  int idleNum = jedisPool.getNumIdle();
  int waitNum = jedisPool.getNumWaiters();
  long maxBorrowWaitMs = jedisPool.getMaxBorrowWaitTimeMillis();
  long meanBorrowWaitMs = jedisPool.getMeanBorrowWaitTimeMillis();

выход:

pool monitor - activeNum=0,idleNum=1,waitNum=0, maxBorrowWaitMs=7, meanBorrowWaitMs=0

Убедитесь, что JMX включен в вашей конфигурации пула. Обратите внимание, что GenericObjectPoolConfig также может быть передан, что дает вам полный контроль над вашим пулом объектов. Затем вы можете подключиться к своему приложению через JMX с помощью jconsole и отслеживать фактическое состояние вашего пула соединений.

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