日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Cloud实战小贴士:健康检查

發(fā)布時間:2024/7/5 javascript 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Cloud实战小贴士:健康检查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天在博客的交流區(qū)收到一條不錯的問題,拿出來給大家分享一下。具體問題如下:

因為項目里面用到了redis集群,但并不是用spring boot的配置方式,啟動后項目健康檢查老是檢查redis的時候狀態(tài)為down,導致注冊到eureka后項目狀態(tài)也是down。
問下能不能設置spring boot不檢查 redis的健康狀態(tài)

"redis": {
"status": "DOWN",
"error": "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"
}

問題原帖可點擊此處跳轉!

原因分析

如提問者所述,由于在Spring Boot項目中引用了Redis模塊,所以Spring Boot Actuator會對其進行健康檢查,正常情況下不會出現問題,但是由于采用了其他配置方式,導致redis的連接檢查沒有通過。這樣就會導致了Consul或Eureka的HealthCheck認為該服務是DOWN狀態(tài)。

那么redis的健康檢查是如何實現的呢?我們不妨來看看健康檢查的自動化配置中針對redis的配置源碼:

@Configuration
@ConditionalOnBean(RedisConnectionFactory.class)
@ConditionalOnEnabledHealthIndicator("redis")
public static class RedisHealthIndicatorConfiguration extends
CompositeHealthIndicatorConfiguration<RedisHealthIndicator, RedisConnectionFactory> {

@Autowired
private Map<String, RedisConnectionFactory> redisConnectionFactories;

@Bean
@ConditionalOnMissingBean(name = "redisHealthIndicator")
public HealthIndicator redisHealthIndicator() {
return createHealthIndicator(this.redisConnectionFactories);
}

}

以上內容取自:org.springframework.boot.actuate.autoconfigure.HealthIndicatorAutoConfiguration類。從自動化配置中我們可以看到,會自動加載一個針對redis的HealthIndicator實現,并且該Bean命名為redisHealthIndicator。

解決方法

通過上面的分析,我們已經知道了是哪個Bean導致了服務實例的健康檢查不通過,那么如何解決該問題的方法也就馬上能想到了:我們只需要再實現一個redis的HealthIndicator實現來替代原先默認的檢查邏輯。比如:

@Component
public class RedisHealthIndicator implements HealthIndicator {

@Override
public Health health() {
return Health.up().build();
}

}

上面通過實現HealthIndicator接口中的health方法,直接返回了up狀態(tài)。通過@Component注解,讓Spring Boot掃描到該類就能自動的進行加載,并覆蓋原來的redis健康檢查實現。當然,這里的實現并不好,因為它只是為了讓健康檢查可以通過,但是并沒有做真正的健康檢查。如提問者所說,采用了其他配置訪問,那么正確的做法就是在health方法中實現針對其他配置的內容進行健康檢查。

注意:這里隱含了一個實現命名的問題,由于默認的bean名稱會使用redisHealthIndicator,所以這里的定義可以替換默認的實現,因為它的名字與@ConditionalOnMissingBean(name = "redisHealthIndicator")中的命名一致。但是如果您自定義的實現類并非叫RedisHealthIndicator,它的默認名稱與自動化配置的名稱是不匹配的,那么就不會替換,這個時候需要在@Component注解中指定該Bean的名稱為redisHealthIndicator


總結

以上是生活随笔為你收集整理的Spring Cloud实战小贴士:健康检查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美老熟妇一区二区三区 | 亚洲av无码国产精品久久不卡 | 日韩乱码人妻无码系列中文字幕 | jizzz18| 欧美性xxxx在线播放 | 毛片无限看 | 国产一级视频在线播放 | 青青草91久久久久久久久 | 成人午夜久久 | 欧美女优一区二区 | 亚欧美视频 | 激情av在线播放 | 成人福利在线视频 | 欧美精品在线免费 | 成人听书哪个软件好 | 性色av一区二区三区红粉影视 | 精品无码国产污污污在线观看 | 日韩女优网站 | 国产一级α片 | 一级高清视频 | 天海翼一区二区三区 | 国产盗摄精品 | 人妻丰满熟妇av无码区不卡 | 在线视频日韩精品 | 哈利波特3在线观看免费版英文版 | 久久av无码精品人妻系列试探 | 福利影院在线观看 | 国产大屁股喷水视频在线观看 | 欧美在线影院 | 天天干天天做天天操 | 日本少妇喂奶漫画 | 国产色91 | 成人在线国产视频 | 成人区一区二区 | 女同视频网站 | 日韩一级在线视频 | 日韩视频 中文字幕 | 中文字幕在线导航 | 黄色成人在线视频 | 中文字幕高清 | 亚洲免费片 | 欧美午夜精品一区二区三区电影 | 在线视频亚洲欧美 | 美女主播福利视频 | 国产欧美一区二区三区鸳鸯浴 | 中文字幕无码乱码人妻日韩精品 | 国产成人在线观看网站 | 亚洲熟妇无码av在线播放 | 亚洲伦理久久 | 99ri在线观看 | 黄网站在线观看视频 | 毛片视频播放 | 就爱操av| 日韩小视频网站 | 窝窝午夜精品一区二区 | 久久影视大全 | 手机av在线免费观看 | 1000部国产精品成人观看 | 国产性av| 少妇裸体挤奶汁奶水视频 | 国产中文字幕三区 | 吃奶在线观看 | 一二三四视频社区在线 | 亚洲中国色老太 | 无码aⅴ精品一区二区三区浪潮 | 刘亦菲国产毛片bd | 在线看片黄| 色香天天 | 成人av影院在线观看 | 99久久综合国产精品二区 | 波多野结衣丝袜 | 久色视频在线观看 | 国产免费看片 | 中文字幕国产剧情 | ktv做爰视频一区二区 | 国产视频二 | 日本高清在线观看 | 天天草天天草 | 日韩一级av毛片 | 国产主播一区二区 | 少妇肥臀大白屁股高清 | 成人在线播放视频 | 成人黄色在线免费观看 | 88av网站 | 色婷婷六月天 | 中文字幕一区二区三区四区欧美 | 91天天综合 | 日本网站在线 | 后进极品白嫩翘臀在线视频 | 国产传媒在线视频 | 日韩高清中文字幕 | 精品乱子伦一区二区 | 丁香婷婷六月 | 欧美极品少妇xxxxⅹ免费视频 | 黄网站免费在线 | 日日舔夜夜操 | 国产一区二区视频在线观看免费 | 永久在线视频 | 国产ts系列 |