consul健康檢查源碼分析二(TTL模式下)

簡單梳理源碼,歡迎大家討論,評論,指正。

本次來分析consul健康檢查TTL模式下的原理。

基于http+interval的原理請參考下面鏈接
consul健康檢查源碼分析一(http+interval模式)

主要也是分為幾個部分

1.服務注冊啟動一個start,這個和上一篇類似,就主要看一下start那塊就好。

  • 路徑:agent/agent.go


    image.png
  • 路徑:agent/checks/check.go 啟了一個協(xié)程


    image.png
  • 路徑:agent/checks/check.go 里面是一個定時任務,到時間的話就把status更新成critical


    image.png

    2.應用會定時上報請求道check/pass接口上,下面分析一下check/pass的邏輯

springcloud基于consul的ttl健康檢查的源碼分析

  • 路徑:agent/http_register.go


    image.png
  • 路徑:agent/agent_endpoint.go AgentCheckPass->agentCheckUpdate->updateTTLCheck(agent/agent.go)


    image.png
  • 路徑:agent/checks/check.go 里面重置了定時任務的時間,由于重置了定時任務,所以定時需要重新計時,TTL那邊起的協(xié)程就重新計算,不過到時間。如果長時間不上報了,定時任務到時間就更新生成critical了。


    image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容