【问题标题】:Spring data Redis. How to know number of Active, Idle Connection?春季数据Redis。如何知道活动、空闲连接的数量?
【发布时间】:2015-10-29 07:19:21
【问题描述】:

在 Spring 中,我有一个 jedisConnFactory 和一个像这样的 jedisPoolConfig bean

    <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 是否正常工作。

如何查看 Active、Idle 连接数?

【问题讨论】:

    标签: spring redis spring-data jedis apache-commons-pool


    【解决方案1】:

    我们可以通过 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
    

    【讨论】:

      【解决方案2】:

      确保在您的池配置中启用了 JMX。请注意,也可以传递 GenericObjectPoolConfig,这使您可以完全控制对象池。然后,您可以使用 jconsole 通过 JMX 连接到您的应用程序,并且可以跟踪连接池的实际状态。

      【讨论】:

        猜你喜欢
        • 2018-01-24
        • 2017-07-14
        • 2017-06-25
        • 1970-01-01
        • 2015-06-26
        • 2015-12-25
        • 1970-01-01
        • 2016-01-30
        • 2016-07-09
        相关资源
        最近更新 更多