go micro實踐 健康檢查

2021-09-22 01:35:28 字數 1126 閱讀 5621

github完整**位址

個人部落格

micro提供兩個方法可以直接實現健康檢查功能

micro.registerttl(time.second*30),

micro.registerinterval(time.second*20),

interval就是間隔多久服務會重新註冊

ttl就是註冊服務的過期時間,如果服務掛了,超過過期時間後,註冊中心也會將服務刪除

當我們執行service.run() 時內部會執行start()

在start函式中又會執行s.opts.server.start(),方法的實現在go-micro/server/rpc_server.go中。

我們跳轉到內部server的start方法

可以發現micro使用乙個定時器按照間隔時間去自動重新註冊。當服務意外故障,無法向註冊中心重新註冊時,如果超過了設定的ttl時間,註冊中心就會將服務刪除。

service := grpc.newservice(

micro.name("go.micro.srv.hello"),

+ micro.registerttl(time.second*15),

+ micro.registerinterval(time.second*10),

// micro.version("latest"),

)

service := web.newservice(

web.name(name),

web.version("lastest"),

+ web.registerttl(time.second*15),

+ web.registerinterval(time.second*10),

web.microservice(grpc.newservice()),

)

專案完整**位址

lvs mysql健康檢查 lvs 健康檢查方式

一 tcp 4層檢查 virtual server 192.168.2.213 80 delay loop 6 lb algo wlc 採取權重式最少鏈結分配 lb kind dr 採取dr模式 protocol tcp real server 192.168.2.220 80 tcp check ...

Nginx被動健康檢查和主動健康檢查

1.被動健康檢查 nginx自帶有健康檢查模組 ngx http upstream module,可以做到基本的健康檢查,配置如下 upstream cluster server nginx只有當有訪問時後,才發起對後端節點探測。如果本次請求中,節點正好出現故障,nginx依然將請求轉交給故障的節點...

應用健康檢查

我們的應用是都是走自動化指令碼發布的,當發布完成後,通常的做法可能是直接看發布日誌是否有報錯,但這需要人工去操作,所以我們寫了乙個健康檢查的頁面,在發布完成後用指令碼去訪問這個健康頁面,看是否能正常訪問,從而確定應用是否正常啟動。servlet private static final long s...