spring cloud gateway中redis一直打印重連日志問(wèn)題及解決
問(wèn)題
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默認(rèn)不再使用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>-->
考慮是不是程序長(zhǎng)時(shí)間沒(méi)有使用redis,而導(dǎo)致連接斷開(kāi).
修改連接池最小空閑連接數(shù):
spring.redis.host=localhost spring.redis.password= # 連接超時(shí)時(shí)間(毫秒) spring.redis.timeout=10000 # Redis默認(rèn)情況下有16個(gè)分片,這里配置具體使用的分片,默認(rèn)是0 spring.redis.database=0 # 連接池最大連接數(shù)(使用負(fù)值表示沒(méi)有限制) 默認(rèn) 8 spring.redis.lettuce.pool.max-active=8 # 連接池最大阻塞等待時(shí)間(使用負(fù)值表示沒(méi)有限制) 默認(rèn) -1 spring.redis.lettuce.pool.max-wait=-1 # 連接池中的最大空閑連接 默認(rèn) 8 spring.redis.lettuce.pool.max-idle=8 # 連接池中的最小空閑連接 默認(rèn) 0, 修改為1 spring.redis.lettuce.pool.min-idle=1
注意修改完之后需要增加新的依賴包,不然會(huì)報(bào)錯(cuò)
<!--配置lettuce.pool.min-idle需要增加的依賴--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.4.2</version> </dependency>
重啟完程序之后,發(fā)現(xiàn)每5分鐘打印重連日志依然存在.
解決
這個(gè)不是錯(cuò)誤,只是一個(gè)INFO級(jí)別的日志,可以日志級(jí)別調(diào)高
例如:
<logger name="io.lettuce.core.protocol" level="ERROR"> <appender-ref ref="ERROR_FILE" /> </logger>
原因
這是lettuce-core的實(shí)現(xiàn)里,lettuce與redis保持長(zhǎng)連接,但是redis.conf默認(rèn)配置timeout 300是當(dāng)客戶端閑置300秒后關(guān)閉連接(這里可以設(shè)置為0永不關(guān)閉),所以Lettuce在redis主動(dòng)斷開(kāi)連接后會(huì)再次與redis建立連接。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Spring Cloud Gateway層限流實(shí)現(xiàn)過(guò)程
- Spring Cloud Gateway內(nèi)置的斷言和過(guò)濾器作用說(shuō)明
- Spring Cloud Gateway 緩存區(qū)異常問(wèn)題及解決方案
- Spring?Cloud?Gateway?2.x跨域時(shí)出現(xiàn)重復(fù)Origin的BUG問(wèn)題
- SpringCloud-Gateway網(wǎng)關(guān)的使用實(shí)例教程
- 使用SpringCloud Gateway解決跨域問(wèn)題
- Spring Cloud Gateway組件的三種使用方式實(shí)例詳解
- 一文掌握spring cloud gateway(總結(jié)篇)
相關(guān)文章
Java內(nèi)部類(lèi)的實(shí)現(xiàn)原理與可能的內(nèi)存泄漏說(shuō)明
這篇文章主要介紹了Java內(nèi)部類(lèi)的實(shí)現(xiàn)原理與可能的內(nèi)存泄漏說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10Java中自定義類(lèi)的實(shí)現(xiàn)詳解
自定義類(lèi)是Java中最基本、也是最重要的組成部分之一,使用者可以根據(jù)需求創(chuàng)建自己的數(shù)據(jù)類(lèi)型,從而更加高效地構(gòu)建程序,本文就來(lái)為大家詳細(xì)講講Java中自定義類(lèi)的實(shí)現(xiàn)與使用吧2023-05-05Java面試題 從源碼角度分析HashSet實(shí)現(xiàn)原理
這篇文章主要介紹了Java面試題 從源碼角度分析HashSet實(shí)現(xiàn)原理?,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07SpringBoot項(xiàng)目找不到接口報(bào)404錯(cuò)誤的解決辦法
寫(xiě)了一個(gè)簡(jiǎn)單的springboot項(xiàng)目,在啟動(dòng)的時(shí)候idea未報(bào)錯(cuò),瀏覽器訪問(wèn)接口時(shí)報(bào)404的錯(cuò)誤,所以本文給大家介紹了SpringBoot項(xiàng)目找不到接口報(bào)404錯(cuò)誤的解決辦法,文中有相關(guān)的圖文供大家參考,需要的朋友可以參考下2024-12-12SpringBoot結(jié)合Redis實(shí)現(xiàn)緩存
本文主要介紹了SpringBoot結(jié)合Redis實(shí)現(xiàn)緩存,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06springboot多個(gè)service互相調(diào)用的事務(wù)處理方式
這篇文章主要介紹了springboot多個(gè)service互相調(diào)用的事務(wù)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02詳解spring cloud構(gòu)建微服務(wù)架構(gòu)的網(wǎng)關(guān)(API GateWay)
這篇文章主要介紹了詳解spring cloud構(gòu)建微服務(wù)架構(gòu)的網(wǎng)關(guān)(API GateWay),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01