`
hanzhdy
  • 浏览: 28571 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring Boot Actuator报出的redis连接不上的问题

 
阅读更多
初涉spring boot/cloud,最近有个项目启动时报redis无法连接,但又不影响正常使用
检查日志发现有如下报错信息:

	at org.springframework.boot.actuate.health.RedisHealthIndicator.doHealthCheck(RedisHealthIndicator.java:52)
	at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:43)
	at org.springframework.boot.actuate.health.CompositeHealthIndicator.health(CompositeHealthIndicator.java:68)
	at org.springframework.boot.actuate.endpoint.HealthEndpoint.invoke(HealthEndpoint.java:85)


项目中没有明确指定Actuator监控Redis,因此怀疑是Actuator发现项目有redis时,默认自动监控的。

有两个解决方案:
第一种:允许Actuator监控Redis连接
在application.yml中增加配置:

spring:
  redis:
    database: 0
    host: 127.0.0.1
    port: 6379
    password: 
    timeout: 0
    pool:
      max-active: 8
      max-wait: -1
      max-idle: 8
      min-idle: 0


第二种:禁止Actuator监控Redis连接
在application.yml中增加配置:

management:
  health:
    redis:
      enabled: false



完整的报错信息如下:
org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
	at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:204)
	at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:348)
	at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:129)
	at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:92)
	at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:79)
	at org.springframework.boot.actuate.health.RedisHealthIndicator.doHealthCheck(RedisHealthIndicator.java:52)
	at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:43)
	at org.springframework.boot.actuate.health.CompositeHealthIndicator.health(CompositeHealthIndicator.java:68)
	at org.springframework.boot.actuate.endpoint.HealthEndpoint.invoke(HealthEndpoint.java:85)
	at org.springframework.boot.actuate.endpoint.HealthEndpoint.invoke(HealthEndpoint.java:35)
	at org.springframework.boot.actuate.endpoint.jmx.DataEndpointMBean.getData(DataEndpointMBean.java:46)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
	at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
	at javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1252)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1246)
	at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1085)
	at org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.java:90)
	at javax.management.modelmbean.RequiredModelMBean.getAttribute(RequiredModelMBean.java:1562)
	at org.springframework.jmx.export.SpringModelMBean.getAttribute(SpringModelMBean.java:109)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:647)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678)
	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1445)
	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)
	at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:639)
	at sun.reflect.GeneratedMethodAccessor85.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
	at sun.rmi.transport.Transport$1.run(Transport.java:200)
	at sun.rmi.transport.Transport$1.run(Transport.java:197)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
	at redis.clients.util.Pool.getResource(Pool.java:53)
	at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226)
	at redis.clients.jedis.JedisPool.getResource(JedisPool.java:16)
	at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:194)
	... 50 common frames omitted
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect
	at redis.clients.jedis.Connection.connect(Connection.java:207)
	at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93)
	at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1767)
	at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:106)
	at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:888)
	at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:432)
	at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361)
	at redis.clients.util.Pool.getResource(Pool.java:49)
	... 53 common frames omitted
Caused by: java.net.ConnectException: Connection refused: connect
	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at redis.clients.jedis.Connection.connect(Connection.java:184)
	... 60 common frames omitted
分享到:
评论

相关推荐

    spring boot+redis单机与集群.zip

    Spring Boot提供了一些工具和指标,可以通过Actuator端点查看Redis的相关信息。同时,Redis自身也提供了如INFO命令,用于获取服务器状态和统计信息。 总结来说,这个压缩包文件的内容将涵盖Spring Boot项目中集成...

    Spring boot基于redis实现附近的人

    Spring Boot的核心特性包括自动配置、内嵌Web服务器(如Tomcat)、健康检查和Actuator监控。通过 Starter POMs,开发者可以快速地创建一个独立运行的、生产级别的Java应用。 接下来,我们关注Redis。Redis是一个高...

    Spring Boot 2.X 实战教程.pdf

    本课程内容包括Spring简介、Spring Boot简介、安装JDK、安装Maven、第...Redis消息、测试Spring Boot应用程序(Demo应用测试、城市模块测试)、Spring Boot Actuator(启用生产功能、终点)、阿里云服务器、Xshell、...

    Spring Boot实战派(源码)

    《Spring Boot实战派》源码提供了丰富的学习材料,旨在帮助开发者深入理解并熟练掌握Spring Boot这一流行的Java后端开发框架。Spring Boot简化了Spring应用程序的初始设置和配置,使得开发人员能够快速构建可运行的...

    《Spring Boot企业级开发教程》配套资料

    综上所述,这份《Spring Boot企业级开发教程》配套资料为学习者提供了一个全方位、深度学习Spring Boot的平台,从理论到实践,从基础知识到复杂应用,帮助他们成长为能够应对企业级开发挑战的Spring Boot开发者。

    教程合集:Spring Boot、Spring Cloud、MySQL、Redis、Elast-learning.zip

    Spring Boot、Spring Cloud、MySQL、Redis以及Elasticsearch是现代Web开发中不可或缺的技术栈,它们在构建高效、可扩展的应用程序方面发挥着重要作用。这个压缩包文件“教程合集:Spring Boot、Spring Cloud、MySQL...

    spring boot 相关技术

    5. **Spring Boot Actuator**:介绍监控和度量工具,如健康检查、指标收集、审计等,用于生产环境中的应用管理。 6. **Spring Boot CLI**:讨论命令行界面工具的使用,以及如何快速运行和测试 Spring Boot 应用。 ...

    Spring Boot 学习笔记完整教程.pdf

    - 数据库操作:Spring Boot提供了多种数据库操作方式,如使用JPA连接数据库,配置JPA,整合JPA保存数据,使用JdbcTemplate保存数据等。 - 配置应用:Spring Boot允许用户进行静态资源处理、任务调度、自定义配置文件...

    Spring Boot 教程、技术栈示例代码,快速简单上手教程。

    Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化 Spring 应用程序的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如 JDBC、MongoDB、RabbitMQ、Quartz 等,使得开发者可以“零配置”地启动项目,...

    Netty+Spring Boot仿微信 全栈开发高性能后台及客户端

    例如,通过使用Netty的NIO模型减少线程开销,利用Spring Boot的Actuator监控应用性能,以及引入Redis或Memcached进行缓存加速。 6. 安全性: 在仿微信的开发中,安全性尤为重要,包括数据传输的安全(HTTPS、JWT等...

    spring-boot-master

    Spring Boot 基于 Spring 4.x 开发,通过提供开箱即用的设置,让你可以快速地创建出可运行的应用程序。 分布式系统是现代软件架构中的重要组成部分,它涉及到多个节点之间的通信和协作,以实现高可用性和伸缩性。...

    管理系统系列--基于 Spring Boot2、 Jpa、 Spring Security、JWT、redis、Vu.zip

    标题中的“管理系统系列--基于 Spring Boot2、Jpa、Spring Security、JWT、redis、Vu”表明这是一个关于构建管理系统的教程或项目,它涵盖了多种技术栈。让我们深入了解一下这些技术及其在系统开发中的作用: 1. **...

    spring-boot示例项目

    data-redis|[lettuce,redis,session redis,YAML配置,连接池,对象存储](https://github.com/smltq/spring-boot-demo/blob/master/data-redis/HELP.md) quartz|[Spring Scheduler,Quartz,分布式调度,集群,mysql持久化...

    redis版本配置文件和springboot整合测试项目

    8. **Spring Boot Actuator与Redis监控**:Actuator提供了健康检查和监控功能,可以通过配置监控Redis的状态。 在提供的压缩包中,"测试项目"可能包含了一个完整的Spring Boot应用,包含了Redis的整合和测试用例。...

    spring boot集成redis做为通用缓存的实战demo,帮助大家彻底掌握s-cache-practice.zip

    6. **监控和健康检查**:Spring Boot Actuator 提供了健康检查接口,可以通过 `/actuator/health` 来查看 Redis 的连接状态。此外,可以使用 Redisson 的监控功能来获取 Redis 服务器的统计信息。 通过以上步骤,你...

    Spring Boot Cookbook(2015.09)源码

    此外,源码中还可能涵盖日志管理、安全控制(Spring Security)、缓存支持(如Redis)以及其他Spring Boot集成的第三方服务,如邮件服务、任务调度(Quartz)等。通过实际操作和代码解读,可以提升开发者对Spring ...

    spring-boot 各种集成各种demo例子

    4. **Actuator**:Spring Boot Actuator 提供了一组端点,用于监控和管理应用,包括健康检查、指标收集、审计、应用信息等,有助于微服务治理。 5. **Web 开发**:通过 `spring-boot-starter-web`,Spring Boot ...

    JavaEE开发的颠覆者 Spring Boot实战 完整版.zip

    《Spring Boot实战》是针对JavaEE开发领域的一本权威指南,Spring Boot作为JavaEE开发的颠覆者,极大地简化了传统JavaEE应用的复杂性,提高了开发效率。这本书全面覆盖了Spring Boot的核心概念、配置以及实战应用,...

    springboot-webflux-redis

    在"springboot-webflux-redis"中,我们首先会设置Redis连接配置,使用Spring Data Redis库来管理Redis客户端。通过RedisTemplate或ReactiveRedisTemplate,我们可以方便地进行数据的增删改查操作。为了优化查询效率...

Global site tag (gtag.js) - Google Analytics