This commit is contained in:
kzkzzzz
2026-01-01 22:11:42 +08:00
parent 521184c19c
commit 8413ccd3ba

View File

@@ -63,14 +63,19 @@ func (c *Consul) Register(service *myregistry.ServiceInfo) error {
return fmt.Errorf("service [%s] already registered", service.ServiceName)
}
checkTime := time.Second * 15
fmt.Println(checkTime.String())
check := &api.AgentServiceCheck{
CheckID: serviceId,
TCP: fmt.Sprintf("%s:%d", service.Ip, service.Port),
Timeout: "5s", // 超时时间
Interval: "30s", // 运行检查的频率
CheckID: serviceId,
TTL: (checkTime*2 + time.Second*5).String(),
//TCP: fmt.Sprintf("%s:%d", service.Ip, service.Port),
//Timeout: "5s", // 超时时间
//Interval: "30s", // 运行检查的频率
// 指定时间后自动注销不健康的服务节点
// 最小超时时间为1分钟收获不健康服务的进程每30秒运行一次因此触发注销的时间可能略长于配置的超时时间。
DeregisterCriticalServiceAfter: "6m",
DeregisterCriticalServiceAfter: "5m",
Status: api.HealthPassing,
}
@@ -100,6 +105,21 @@ func (c *Consul) Register(service *myregistry.ServiceInfo) error {
defaultLog.Infof("register service ok: %s - %s:%d", svc.Name, svc.Address, svc.Port)
go func() {
for {
//defaultLog.Debugf("PassTTL ttl service: %s", svc.Name)
err := c.client.Agent().PassTTL(serviceId, "")
if err != nil {
defaultLog.Errorf("PassTTL service err: %s: %s", svc.Name, err)
}
time.Sleep(checkTime)
}
}()
return nil
}
@@ -146,7 +166,7 @@ func New(conf *myconf.Config, opts ...Opt) (*Consul, error) {
opt(cl)
}
go cl.healthCheck()
go cl.allHealthCheck()
return cl, nil
}
@@ -208,9 +228,9 @@ func NewClient(clientCfg *ClientConfig) (*api.Client, error) {
return client, nil
}
func (c *Consul) healthCheck() {
func (c *Consul) allHealthCheck() {
time.Sleep(time.Second * 5)
mylog.Infof("start health check")
mylog.Infof("start all health check")
var (
lastIndex uint64