in clients/consul_client/consul_client.go [137:168]
func (scc *ShenYuConsulClient) RegisterServiceInstance(metaData interface{}) (registerResult bool, err error) {
mdr := scc.checkCommonParam(metaData, err)
port, _ := strconv.Atoi(mdr.ShenYuMetaData.Port)
metaDataStringJson, _ := json.Marshal(metaData)
//Integrate with MetaDataRegister
registration := &api.AgentServiceRegistration{
ID: mdr.ShenYuMetaData.AppName,
Name: mdr.ShenYuMetaData.AppName,
Port: port,
Address: mdr.ShenYuMetaData.Host,
Namespace: mdr.ShenYuMetaData.ContextPath,
Meta: map[string]string{"uriMetadata": string(metaDataStringJson)},
}
//server checker
check := &api.AgentServiceCheck{
Timeout: constants.DEFAULT_CONSUL_CHECK_TIMEOUT,
Interval: constants.DEFAULT_CONSUL_CHECK_INTERVAL,
DeregisterCriticalServiceAfter: constants.DEFAULT_CONSUL_CHECK_DEREGISTER,
HTTP: fmt.Sprintf("%s://%s:%d/actuator/health", mdr.ShenYuMetaData.RPCType, registration.Address, registration.Port),
}
registration.Check = check
//register
err = scc.ConsulClient.Agent().ServiceRegister(registration)
if err != nil {
logger.Fatalf("RegisterServiceInstance failure! ,error is :%v", err)
}
logger.Infof("RegisterServiceInstance,result:%v", true)
return true, nil
}