springcloud常見問題總結以(一)

2022-08-24 16:57:13 字數 2049 閱讀 2565

1. eureka註冊服務慢

服務註冊涉及到週期性的心跳,預設30秒一次,只有當例項、伺服器端和客戶端本地快取中的元資料都相同時,服務才能被其他客戶端發現(可能需要三次心跳)。

可以使用引數eureka.instance.leaserenewalintervalinseconds修改eureka client向eureka server傳送心跳間隔,從而加快客戶端連線到其他服務的過程。

在生產環境中最好堅持使用預設值,因為在伺服器內部有一些計算,它們會對續約做出假設。

2. 已停止的服務節點登出慢或者不登出

eureka server清理無效節點的週期比較長(預設90秒),以及自我保護等原因,可能對服務節點登出慢或者不登出

eureka server配置關閉自我保護,並按需配置清理無效節點的間隔:

eureka:

server:

enable-self-preservation: false # 測試時關閉自我保護機制,保證不可用服務及時踢出

eviction-interval-timer-in-ms: 30000 # 清理間隔 單位是毫秒

eureka:

client:

healthcheck:

enabled: true #開啟健康檢查(需要spring-boot-starter-actuator依賴)

instance:

lease-renewal-interval-in-seconds: 1 # 每間隔1s,向服務端傳送一次心跳,證明自己依然」存活「, 預設30秒

lease-expiration-duration-in-seconds: 2 # 告訴服務端,如果我2s之內沒有給你發心跳,就代表我「死」了,將我踢出掉, 預設90秒。

注意:這些配置一般在開發測試的時候使用,生產環境建議使用預設配置

自定義微服務instanceid

eureka:

instance:

instance-id: $:$ # 將instance-id設定為ip:埠的形式。

1. hystrix/feign 整合hystrix後首次訪問失敗的問題

hystrix預設超時時間是1秒,首次載入的時候因為伺服器快取,或者建立連線池等原因,就會進入fallback邏輯。由於spring的懶載入機制,因此在某些機器上首次請求的時間可能大於1秒

@hystrixcommand(commandproperties = )

public string servermethod()

1.預設:(方法上記得要加上@hystrixcommand,否則無效):

hystrix.command.default.execution.isolation.thread.timeoutinmilliseconds=3000

2.配置具體方法的超時時間

hystrix.command.servermethod.execution.isolation.thread.timeoutinmilliseconds=3000

解決方案二,禁用hystrix超時:

hystrix.command.default.execution.timeout.enabled: false

對於feign,可以禁用feign的hystrix功能

feign.hystrix.enabled: false #比較極端,一般不建議使用

yaml縮排是否正確:

yaml縮排不正確會導致springcloud 應用無法正常啟動或者配置檔案無法載入

配置屬性是否正確:

經過排查發現是因為在路由**請求頭時沒有判斷值為null的情況導致,過濾掉head為null的情況即可解決

Spring Cloud常見問題與總結 一

在使用spring cloud的過程中,難免會遇到一些問題。所以對spring cloud的常用問題做一些總結。預設情況下,服務註冊到eureka server的過程較慢。在開發或測試時,常常希望能夠加速這一 過程,從而提公升工作效率。該問題的原因及解決方案 服務的註冊涉及週期性心跳,預設30秒一次...

常見問題 朗動常見問題

常見問題一 方向盤變沉 檢查胎壓是否正常,輪胎是否過度磨損。助力幫浦不工作,前輪氣壓低。冬天的話,冷車在冬天助力油比較稠,方向會重一點。檢查轉向助力油。1 應該是是助力系統有問題或則助力潤滑油有問題。2 如果你在駕車時感覺方向盤變緊,汽車偏向一側,需要檢查輪胎,或進行車輪平衡 定位。在這些問題剛剛發...

面試常見問題 1 this的常見問題

this 的含義 this關鍵字是乙個非常重要的語法點。毫不誇張地說,不理解它的含義,大部分開發任務都無法完成。前一章已經提到,this可以用在建構函式之中,表示例項物件。除此之外,this還可以用在別的場合。但不管是什麼場合,this都有乙個共同點 它總是返回乙個物件。簡單說,this就是屬性或方...