最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于springboot2整合lettuce啟動(dòng)卡住問(wèn)題的解決方法

 更新時(shí)間:2021年12月26日 15:36:00   作者:人淡如菊  
Lettuce和Jedis的都是連接Redis Server的客戶端程序,下面這篇文章主要給大家介紹了關(guān)于springboot2整合lettuce啟動(dòng)卡住問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

EasyCache升級(jí)兼容 Springboot2,有個(gè)業(yè)務(wù)系統(tǒng)啟動(dòng)總是會(huì)卡住,最后拋出超時(shí)異常,如下:

java.util.concurrent.TimeoutException: null

	at java.util.concurrent.FutureTask.get(FutureTask.java:205)

.....

springboot 版本是 2.2.x,springCloudVersion 版本是 2.2.x, lettuce版本是5.2.x,如果使用jedis客戶端沒(méi)有,所以問(wèn)題一定是出在lettuce。

分析原因

如果是線上發(fā)生這個(gè)問(wèn)題會(huì)使用 jstack 查看線程的情況,在本地idea調(diào)試就更加方便了,查看線程發(fā)現(xiàn)lettuce的線程被Blocked,dump出的部分信息如下:

"lettuce-kqueueEventLoop-7-1@14257" daemon prio=5 tid=0x4c nid=NA waiting for monitor entry

? java.lang.Thread.State: BLOCKED

?waiting for main@1 to release lock on <0x38a5> (a java.util.concurrent.ConcurrentHashMap)

? at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:208)

? at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)

? ....

看第一行的報(bào)錯(cuò)是在獲取Bean的時(shí)候阻塞了,說(shuō)明有地方獲取Bean的時(shí)候沒(méi)有釋放鎖。在這地方打斷點(diǎn)發(fā)現(xiàn)是 spring-cloud-sleuth 的 SamplerAutoConfiguration獲取bean的時(shí)候有鎖沒(méi)有釋放。源代碼如下

protected static class RefreshScopedSamplerConfiguration {
	public Sampler defaultTraceSampler(SamplerProperties config) {
		return samplerFromProps(config);
	}
}

@RefreshScope 獲取代理類的時(shí)候如果是@PostConstruct的方法,bean是加載不到,所以導(dǎo)致一直沒(méi)有釋放鎖。所以猜想,容器還沒(méi)有啟動(dòng)完成的時(shí)候,有地方調(diào)用了lettuce的Bean,導(dǎo)致循環(huán)依賴。

坑的復(fù)現(xiàn)及解決辦法

運(yùn)行下面這段代碼,錯(cuò)誤就出現(xiàn)了,和業(yè)務(wù)系統(tǒng)出現(xiàn)的問(wèn)題一模一樣,也驗(yàn)證了上面的猜想。解決辦法是在容器啟動(dòng)之后在調(diào)用init方法。(實(shí)測(cè)使用InitializingBean時(shí)也會(huì)出現(xiàn)該問(wèn)題)

public class SpringDataTestService {
    private StringRedisTemplate stringRedisTemplate;
    //@EventListener(MainContextRefreshedEvent.class)
    public void init() {
        String s = stringRedisTemplate.opsForValue().get("gateway:ab-test:config");
        System.out.println(s);
    }
} 

總結(jié)

到此這篇關(guān)于springboot2整合lettuce啟動(dòng)卡住問(wèn)題解決的文章就介紹到這了,更多相關(guān)springboot2整合lettuce啟動(dòng)卡住內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java sftp下載文件報(bào)錯(cuò)Caused by:com.jcraft.jsch.JSchException:session is down問(wèn)題

    java sftp下載文件報(bào)錯(cuò)Caused by:com.jcraft.jsch.JSchExcep

    文章講述了作者在日常工作中遇到的JSch連接問(wèn)題,經(jīng)過(guò)分析發(fā)現(xiàn)是由于連接泄露導(dǎo)致的,作者提出了解決方案,并給出了使用建議:1.在finally代碼塊中關(guān)閉連接;2.在真正使用階段再創(chuàng)建連接,避免創(chuàng)建后不使用又忘記關(guān)閉連接
    2024-11-11
  • Java語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單FTP軟件 FTP連接管理模塊實(shí)現(xiàn)(8)

    Java語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單FTP軟件 FTP連接管理模塊實(shí)現(xiàn)(8)

    這篇文章主要為大家詳細(xì)介紹了Java語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單FTP軟件,F(xiàn)TP連接管理模塊的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 全面了解OAuth?2.0四種授權(quán)方式金三銀四無(wú)懼面試

    全面了解OAuth?2.0四種授權(quán)方式金三銀四無(wú)懼面試

    這篇文章主要介紹了全面了解OAuth?2.0四種授權(quán)方式金三銀四無(wú)懼面試,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Java的synchronized關(guān)鍵字深入解析

    Java的synchronized關(guān)鍵字深入解析

    這篇文章主要介紹了Java的synchronized關(guān)鍵字深入解析,在并發(fā)編程中,多線程同時(shí)并發(fā)訪問(wèn)的資源叫做臨界資源,當(dāng)多個(gè)線程同時(shí)訪問(wèn)對(duì)象并要求操作相同資源時(shí),分割了原子操作就有可能出現(xiàn)數(shù)據(jù)的不一致或數(shù)據(jù)不完整的情況,需要的朋友可以參考下
    2023-12-12
  • springboot自定義配置及自定義對(duì)象映射的全流程

    springboot自定義配置及自定義對(duì)象映射的全流程

    這篇文章主要介紹了springboot自定義配置及自定義對(duì)象映射的全流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java虛擬機(jī)使用jvisualvm工具遠(yuǎn)程監(jiān)控tomcat內(nèi)存

    Java虛擬機(jī)使用jvisualvm工具遠(yuǎn)程監(jiān)控tomcat內(nèi)存

    這篇文章主要介紹了Java虛擬機(jī)使用jvisualvm工具遠(yuǎn)程監(jiān)控tomcat內(nèi)存,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • spring使用aspect注解切面不起作用的排查過(guò)程及解決

    spring使用aspect注解切面不起作用的排查過(guò)程及解決

    這篇文章主要介紹了spring使用aspect注解切面不起作用的排查過(guò)程及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java集合系列之LinkedHashMap源碼分析

    Java集合系列之LinkedHashMap源碼分析

    這篇文章主要為大家詳細(xì)介紹了Java集合系列之LinkedHashMap源碼分析,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • JavaWeb Maven詳解相關(guān)配置

    JavaWeb Maven詳解相關(guān)配置

    這篇文章主要介紹了使用maven架構(gòu)管理開(kāi)發(fā)的相關(guān)配置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Flink ExecutionGraph生成源碼解析

    Flink ExecutionGraph生成源碼解析

    這篇文章主要為大家介紹了Flink ExecutionGraph生成源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12

最新評(píng)論

昌宁县| 云梦县| 桓台县| 柯坪县| 石泉县| 沾化县| 山东省| 隆化县| 凌源市| 垫江县| 奉贤区| 浪卡子县| 砚山县| 杨浦区| 泾阳县| 巴林左旗| 陕西省| 英超| 内黄县| 祁门县| 南澳县| 基隆市| 夏津县| 疏附县| 偏关县| 固安县| 文水县| 大兴区| 喀喇| 镇安县| 防城港市| 浏阳市| 肇州县| 伊金霍洛旗| 平顺县| 英超| 通海县| 宁阳县| 搜索| 瑞安市| 蒲城县|