亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot2整合lettuce啟動卡住問題的解決方法是什么

發布時間:2021-12-27 11:32:42 來源:億速云 閱讀:289 作者:柒染 欄目:開發技術

本篇文章給大家分享的是有關springboot2整合lettuce啟動卡住問題的解決方法是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

前言

EasyCache升級兼容 Springboot2,有個業務系統啟動總是會卡住,最后拋出超時異常,如下:

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客戶端沒有,所以問題一定是出在lettuce。

分析原因

如果是線上發生這個問題會使用 jstack 查看線程的情況,在本地idea調試就更加方便了,查看線程發現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)

  ....

看第一行的報錯是在獲取Bean的時候阻塞了,說明有地方獲取Bean的時候沒有釋放鎖。在這地方打斷點發現是 spring-cloud-sleuth 的 SamplerAutoConfiguration獲取bean的時候有鎖沒有釋放。源代碼如下

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

@RefreshScope 獲取代理類的時候如果是@PostConstruct的方法,bean是加載不到,所以導致一直沒有釋放鎖。所以猜想,容器還沒有啟動完成的時候,有地方調用了lettuce的Bean,導致循環依賴。

坑的復現及解決辦法

運行下面這段代碼,錯誤就出現了,和業務系統出現的問題一模一樣,也驗證了上面的猜想。解決辦法是在容器啟動之后在調用init方法。(實測使用InitializingBean時也會出現該問題)

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);
    }
}

以上就是springboot2整合lettuce啟動卡住問題的解決方法是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潢川县| 习水县| 道孚县| 赣州市| 翁源县| 泸州市| 诸城市| 绍兴市| 绥滨县| 车险| 乐东| 亳州市| 巴彦县| 阳信县| 石屏县| 铁岭县| 通城县| 沙洋县| 信宜市| 习水县| 北京市| 舒兰市| 新巴尔虎左旗| 内江市| 钟祥市| 石狮市| 休宁县| 交口县| 堆龙德庆县| 抚顺县| 兴安县| 奉新县| 鄂尔多斯市| 沧州市| 连山| 阳东县| 台中县| 泸溪县| 乌什县| 龙南县| 阳山县|