spring cloud gateway中redis一直打印重連日志問題及解決
問題
spring cloud gateway集成了redis后,一直出現(xiàn)重連的日志
如下:
gateway | 2020-06-28 10:56:11.133 INFO 1 --- [xecutorLoop-2-2] i.l.core.protocol.ConnectionWatchdog : Reconnecting, last destination was 192.171.0.9/192.171.0.9:6379
gateway | 2020-06-28 10:56:11.148 INFO 1 --- [llEventLoop-4-6] i.l.core.protocol.ReconnectionHandler : Reconnected to 192.171.0.9:6379
gateway | 2020-06-28 11:01:12.431 INFO 1 --- [xecutorLoop-2-3] i.l.core.protocol.ConnectionWatchdog : Reconnecting, last destination was 192.171.0.9/192.171.0.9:6379
gateway | 2020-06-28 11:01:12.441 INFO 1 --- [llEventLoop-4-8] i.l.core.protocol.ReconnectionHandler : Reconnected to 192.171.0.9:6379
gateway | 2020-06-28 11:06:13.231 INFO 1 --- [xecutorLoop-2-4] i.l.core.protocol.ConnectionWatchdog : Reconnecting, last destination was 192.171.0.9/192.171.0.9:6379
gateway | 2020-06-28 11:06:13.237 INFO 1 --- [llEventLoop-4-2] i.l.core.protocol.ReconnectionHandler : Reconnected to 192.171.0.9:6379
分析
spring boot 2.0之后spring-boot-starter-data-redis默認不再使用jedis連接redis,而是lettuce.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<!-- 排除lettuce包,使用jedis代替-->
<!--<exclusions>-->
<!--<exclusion>-->
<!--<groupId>io.lettuce</groupId>-->
<!--<artifactId>lettuce-core</artifactId>-->
<!--</exclusion>-->
<!--</exclusions>-->
</dependency>
<!-- jedis -->
<!--<dependency>-->
<!--<groupId>redis.clients</groupId>-->
<!--<artifactId>jedis</artifactId>-->
<!--<version>2.9.0</version>-->
<!--</dependency>-->考慮是不是程序長時間沒有使用redis,而導(dǎo)致連接斷開.
修改連接池最小空閑連接數(shù):
spring.redis.host=localhost spring.redis.password= # 連接超時時間(毫秒) spring.redis.timeout=10000 # Redis默認情況下有16個分片,這里配置具體使用的分片,默認是0 spring.redis.database=0 # 連接池最大連接數(shù)(使用負值表示沒有限制) 默認 8 spring.redis.lettuce.pool.max-active=8 # 連接池最大阻塞等待時間(使用負值表示沒有限制) 默認 -1 spring.redis.lettuce.pool.max-wait=-1 # 連接池中的最大空閑連接 默認 8 spring.redis.lettuce.pool.max-idle=8 # 連接池中的最小空閑連接 默認 0, 修改為1 spring.redis.lettuce.pool.min-idle=1
注意修改完之后需要增加新的依賴包,不然會報錯
<!--配置lettuce.pool.min-idle需要增加的依賴-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.2</version>
</dependency>重啟完程序之后,發(fā)現(xiàn)每5分鐘打印重連日志依然存在.
解決
這個不是錯誤,只是一個INFO級別的日志,可以日志級別調(diào)高
例如:
<logger name="io.lettuce.core.protocol" level="ERROR">
<appender-ref ref="ERROR_FILE" />
</logger>原因
這是lettuce-core的實現(xiàn)里,lettuce與redis保持長連接,但是redis.conf默認配置timeout 300是當(dāng)客戶端閑置300秒后關(guān)閉連接(這里可以設(shè)置為0永不關(guān)閉),所以Lettuce在redis主動斷開連接后會再次與redis建立連接。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中如何將String轉(zhuǎn)JSONObject
這篇文章主要介紹了Java中如何將String轉(zhuǎn)JSONObject,String類型轉(zhuǎn)JSONObject,下面有兩種方式可以進行轉(zhuǎn)換,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-05-05
Spring Mvc下實現(xiàn)以文件流方式下載文件的方法示例
這篇文章主要介紹了Spring Mvc下實現(xiàn)以文件流方式下載文件的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
SpringBoot集成I18n國際化文件在jar包外生效問題
這篇文章主要介紹了SpringBoot集成I18n國際化文件在jar包外生效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04
解決axios發(fā)送post請求,springMVC接收不到數(shù)據(jù)問題的處理
文章主要討論了Vue組件無法正確接收和處理Axios請求的問題,并詳細描述了SpringMVC中使用@PathVariable、@RequestBody、@RequestParam的不同場景及其對應(yīng)的前端Axios寫法2026-05-05
@DateTimeFormat和@JsonFormat注解的用法及說明
通過在實體類屬性上使用`@DateTimeFormat`和`@JsonFormat`注解,可以實現(xiàn)日期時間格式的入?yún)⒑统鰠⒏袷交?確保前端傳入的參數(shù)能夠正確解析,并且后端返回的日期時間格式符合需求2025-11-11
Mybatis-Plus實現(xiàn)自動生成代碼的操作步驟
AutoGenerator 是 MyBatis-Plus 的代碼生成器,通過 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各個模塊的代碼,極大的提升了開發(fā)效率,本文將給大家介紹Mybatis-Plus實現(xiàn)自動生成代碼的操作步驟2023-10-10
Spring Cloud升級最新Finchley版本的所有坑
這篇文章主要介紹了Spring Cloud升級最新Finchley版本的所有坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08

