From 290253f6e2c75581d4e82a0ce037177af419e473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=99=AB=E4=BA=8C?= Date: Fri, 17 Mar 2023 09:55:52 +0000 Subject: [PATCH 1/6] =?UTF-8?q?=E5=A2=9E=E5=BC=BAinstanceId=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=E6=80=A7=EF=BC=8C=E8=B0=83=E6=95=B4status=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiserver/eurekaserver/access.go | 2 +- apiserver/eurekaserver/applications.go | 7 ++++--- apiserver/eurekaserver/replicate.go | 23 +++++++++++++++-------- apiserver/eurekaserver/server.go | 1 + apiserver/eurekaserver/write.go | 19 +++++++++++++++++-- 5 files changed, 38 insertions(+), 14 deletions(-) diff --git a/apiserver/eurekaserver/access.go b/apiserver/eurekaserver/access.go index 7fc8d6034..09a4fff3d 100644 --- a/apiserver/eurekaserver/access.go +++ b/apiserver/eurekaserver/access.go @@ -607,7 +607,7 @@ func (h *EurekaServer) UpdateMetadata(req *restful.Request, rsp *restful.Respons } metadataMap[key] = values[0] } - code := h.updateMetadata(context.Background(), instId, metadataMap) + code := h.updateMetadata(context.Background(), appId, instId, metadataMap) writePolarisStatusCode(req, code) if code == api.ExecuteSuccess { log.Infof("[EUREKA-SERVER]instance metadata (instId=%s, appId=%s) has been updated successfully", diff --git a/apiserver/eurekaserver/applications.go b/apiserver/eurekaserver/applications.go index e0c1b2313..27b5ae722 100644 --- a/apiserver/eurekaserver/applications.go +++ b/apiserver/eurekaserver/applications.go @@ -285,7 +285,6 @@ func parseLeaseInfo(leaseInfo *LeaseInfo, instance *apiservice.Instance) { } func buildInstance(appName string, instance *apiservice.Instance, lastModifyTime int64) *InstanceInfo { - eurekaInstanceId := instance.GetId().GetValue() instanceInfo := &InstanceInfo{ CountryId: DefaultCountryIdInt, Port: &PortWrapper{ @@ -307,12 +306,14 @@ func buildInstance(appName string, instance *apiservice.Instance, lastModifyTime } instanceInfo.AppName = appName // 属于eureka注册的实例 - instanceInfo.InstanceId = eurekaInstanceId + instanceInfo.InstanceId = instance.GetId().GetValue() metadata := instance.GetMetadata() if metadata == nil { metadata = map[string]string{} } - instanceInfo.AppName = appName + if eurekaInstanceId, ok := metadata[MetadataInstanceId]; ok { + instanceInfo.InstanceId = eurekaInstanceId + } if hostName, ok := metadata[MetadataHostName]; ok { instanceInfo.HostName = hostName } diff --git a/apiserver/eurekaserver/replicate.go b/apiserver/eurekaserver/replicate.go index b446e23e0..c61a10faa 100644 --- a/apiserver/eurekaserver/replicate.go +++ b/apiserver/eurekaserver/replicate.go @@ -228,12 +228,18 @@ func (h *EurekaServer) handleInstanceEvent(ctx context.Context, i interface{}) e } appName := formatReadName(e.Service) curTimeMilli := time.Now().UnixMilli() + eurekaInstanceId := e.Id + if e.Instance.Metadata != nil { + if _, ok := e.Instance.Metadata[MetadataInstanceId]; ok { + eurekaInstanceId = e.Instance.Metadata[MetadataInstanceId] + } + } switch e.EType { case model.EventInstanceOnline, model.EventInstanceUpdate: instanceInfo := eventToInstance(&e, appName, curTimeMilli) h.replicateWorker.AddReplicateTask(&ReplicationInstance{ AppName: appName, - Id: e.Id, + Id: eurekaInstanceId, LastDirtyTimestamp: curTimeMilli, Status: StatusUp, InstanceInfo: instanceInfo, @@ -242,14 +248,14 @@ func (h *EurekaServer) handleInstanceEvent(ctx context.Context, i interface{}) e case model.EventInstanceOffline: h.replicateWorker.AddReplicateTask(&ReplicationInstance{ AppName: appName, - Id: e.Id, + Id: eurekaInstanceId, Action: actionCancel, }) case model.EventInstanceSendHeartbeat: instanceInfo := eventToInstance(&e, appName, curTimeMilli) rInstance := &ReplicationInstance{ AppName: appName, - Id: e.Id, + Id: eurekaInstanceId, Status: StatusUp, InstanceInfo: instanceInfo, Action: actionHeartbeat, @@ -261,17 +267,18 @@ func (h *EurekaServer) handleInstanceEvent(ctx context.Context, i interface{}) e case model.EventInstanceOpenIsolate: h.replicateWorker.AddReplicateTask(&ReplicationInstance{ AppName: appName, - Id: e.Id, + Id: eurekaInstanceId, LastDirtyTimestamp: curTimeMilli, - OverriddenStatus: StatusOutOfService, - Action: actionHeartbeat, + Status: StatusOutOfService, + Action: actionStatusUpdate, }) case model.EventInstanceCloseIsolate: h.replicateWorker.AddReplicateTask(&ReplicationInstance{ AppName: appName, - Id: e.Id, + Id: eurekaInstanceId, LastDirtyTimestamp: curTimeMilli, - Action: actionDeleteStatusOverride, + Status: StatusUp, + Action: actionStatusUpdate, }) } diff --git a/apiserver/eurekaserver/server.go b/apiserver/eurekaserver/server.go index 58a400cca..0132e4ed1 100644 --- a/apiserver/eurekaserver/server.go +++ b/apiserver/eurekaserver/server.go @@ -63,6 +63,7 @@ const ( MetadataSecurePort = "internal-eureka-secure-port" MetadataSecurePortEnabled = "internal-eureka-secure-port-enabled" MetadataReplicate = "internal-eureka-replicate" + MetadataInstanceId = "internal-eureka-instance-id" ServerEureka = "eureka" diff --git a/apiserver/eurekaserver/write.go b/apiserver/eurekaserver/write.go index fc32a28c9..a14acf14a 100644 --- a/apiserver/eurekaserver/write.go +++ b/apiserver/eurekaserver/write.go @@ -21,6 +21,7 @@ import ( "context" "math" "strconv" + "strings" "github.com/golang/protobuf/ptypes/wrappers" apimodel "github.com/polarismesh/specification/source/go/api/v1/model" @@ -31,11 +32,21 @@ import ( "github.com/polarismesh/polaris/common/utils" ) +func checkOrBuildNewInstanceId(appId string, instanceId string) string { + lowerAppId := strings.ToLower(appId) + lowerInstanceId := strings.ToLower(instanceId) + if strings.Contains(lowerInstanceId, lowerAppId) { + return instanceId + } + return lowerAppId + ":" + lowerInstanceId +} + func buildBaseInstance(instance *InstanceInfo, namespace string, appId string) *apiservice.Instance { targetInstance := &apiservice.Instance{} eurekaMetadata := make(map[string]string) eurekaMetadata[MetadataRegisterFrom] = ServerEureka + eurekaMetadata[MetadataInstanceId] = instance.InstanceId if len(instance.AppGroupName) > 0 { eurekaMetadata[MetadataAppGroupName] = instance.AppGroupName } @@ -69,7 +80,7 @@ func buildBaseInstance(instance *InstanceInfo, namespace string, appId string) * if len(instance.SecureVipAddress) > 0 { eurekaMetadata[MetadataSecureVipAddress] = instance.SecureVipAddress } - targetInstance.Id = &wrappers.StringValue{Value: instance.InstanceId} + targetInstance.Id = &wrappers.StringValue{Value: checkOrBuildNewInstanceId(appId, instance.InstanceId)} targetInstance.Metadata = eurekaMetadata targetInstance.Service = &wrappers.StringValue{Value: appId} targetInstance.Namespace = &wrappers.StringValue{Value: namespace} @@ -202,6 +213,7 @@ func (h *EurekaServer) deregisterInstance( ctx = context.WithValue( ctx, model.CtxEventKeyMetadata, map[string]string{MetadataReplicate: strconv.FormatBool(replicated)}) ctx = context.WithValue(ctx, utils.ContextOpenAsyncRegis, true) + instanceId = checkOrBuildNewInstanceId(appId, instanceId) resp := h.namingServer.DeregisterInstance(ctx, &apiservice.Instance{Id: &wrappers.StringValue{Value: instanceId}}) return resp.GetCode().GetValue() } @@ -214,6 +226,7 @@ func (h *EurekaServer) updateStatus( } ctx = context.WithValue( ctx, model.CtxEventKeyMetadata, map[string]string{MetadataReplicate: strconv.FormatBool(replicated)}) + instanceId = checkOrBuildNewInstanceId(appId, instanceId) resp := h.namingServer.UpdateInstance(ctx, &apiservice.Instance{ Id: &wrappers.StringValue{Value: instanceId}, Isolate: &wrappers.BoolValue{Value: isolated}}) return resp.GetCode().GetValue() @@ -222,6 +235,7 @@ func (h *EurekaServer) updateStatus( func (h *EurekaServer) renew(ctx context.Context, appId string, instanceId string, replicated bool) uint32 { ctx = context.WithValue( ctx, model.CtxEventKeyMetadata, map[string]string{MetadataReplicate: strconv.FormatBool(replicated)}) + instanceId = checkOrBuildNewInstanceId(appId, instanceId) resp := h.healthCheckServer.Report(ctx, &apiservice.Instance{Id: &wrappers.StringValue{Value: instanceId}}) code := resp.GetCode().GetValue() @@ -233,7 +247,8 @@ func (h *EurekaServer) renew(ctx context.Context, appId string, instanceId strin return code } -func (h *EurekaServer) updateMetadata(ctx context.Context, instanceId string, metadata map[string]string) uint32 { +func (h *EurekaServer) updateMetadata(ctx context.Context, appId string, instanceId string, metadata map[string]string) uint32 { + instanceId = checkOrBuildNewInstanceId(appId, instanceId) resp := h.namingServer.UpdateInstance(ctx, &apiservice.Instance{Id: &wrappers.StringValue{Value: instanceId}, Metadata: metadata}) return resp.GetCode().GetValue() From 3670d42ddfea7244258e5328299637168b5448c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=99=AB=E4=BA=8C?= Date: Fri, 17 Mar 2023 11:58:40 +0000 Subject: [PATCH 2/6] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E5=A4=8D=E5=88=B6?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E7=9A=84=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiserver/eurekaserver/access.go | 6 ++---- apiserver/eurekaserver/write.go | 8 ++++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/apiserver/eurekaserver/access.go b/apiserver/eurekaserver/access.go index 09a4fff3d..391cd86a2 100644 --- a/apiserver/eurekaserver/access.go +++ b/apiserver/eurekaserver/access.go @@ -317,7 +317,7 @@ func checkRegisterRequest(registrationRequest *RegistrationRequest, req *restful writeHeader(http.StatusBadRequest, rsp) return false } - if len(registrationRequest.Instance.InstanceId) == 0 { + if len(registrationRequest.Instance.InstanceId) == 0 && len(registrationRequest.Instance.HostName) == 0 { log.Errorf("[EUREKA-SERVER] fail to parse register request, uri: %s, client: %s, err: %s", req.Request.RequestURI, remoteAddr, "instance id required") writePolarisStatusCode(req, api.InvalidInstanceID) @@ -362,9 +362,7 @@ func (h *EurekaServer) RegisterApplication(req *restful.Request, rsp *restful.Re writeHeader(http.StatusBadRequest, rsp) return } - if len(registrationRequest.Instance.InstanceId) == 0 { - registrationRequest.Instance.InstanceId = registrationRequest.Instance.HostName - } + if !checkRegisterRequest(registrationRequest, req, rsp) { return } diff --git a/apiserver/eurekaserver/write.go b/apiserver/eurekaserver/write.go index a14acf14a..822e14822 100644 --- a/apiserver/eurekaserver/write.go +++ b/apiserver/eurekaserver/write.go @@ -46,7 +46,11 @@ func buildBaseInstance(instance *InstanceInfo, namespace string, appId string) * eurekaMetadata := make(map[string]string) eurekaMetadata[MetadataRegisterFrom] = ServerEureka - eurekaMetadata[MetadataInstanceId] = instance.InstanceId + eurekaInstanceId := instance.InstanceId + if len(eurekaInstanceId) == 0 { + eurekaInstanceId = instance.HostName + } + eurekaMetadata[MetadataInstanceId] = eurekaInstanceId if len(instance.AppGroupName) > 0 { eurekaMetadata[MetadataAppGroupName] = instance.AppGroupName } @@ -80,7 +84,7 @@ func buildBaseInstance(instance *InstanceInfo, namespace string, appId string) * if len(instance.SecureVipAddress) > 0 { eurekaMetadata[MetadataSecureVipAddress] = instance.SecureVipAddress } - targetInstance.Id = &wrappers.StringValue{Value: checkOrBuildNewInstanceId(appId, instance.InstanceId)} + targetInstance.Id = &wrappers.StringValue{Value: checkOrBuildNewInstanceId(appId, eurekaInstanceId)} targetInstance.Metadata = eurekaMetadata targetInstance.Service = &wrappers.StringValue{Value: appId} targetInstance.Namespace = &wrappers.StringValue{Value: namespace} From 4707993fa4eb6db58d505789634a6051afd13f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=99=AB=E4=BA=8C?= Date: Mon, 20 Mar 2023 04:46:50 +0000 Subject: [PATCH 3/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=94=AF=E4=B8=80?= =?UTF-8?q?=E5=AE=9E=E4=BE=8Bid=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiserver/eurekaserver/config.go | 1 + apiserver/eurekaserver/server.go | 7 +++++++ apiserver/eurekaserver/write.go | 31 +++++++++++++++++-------------- release/conf/polaris-server.yaml | 1 + 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/apiserver/eurekaserver/config.go b/apiserver/eurekaserver/config.go index 05b1462e5..f93b4a4b3 100644 --- a/apiserver/eurekaserver/config.go +++ b/apiserver/eurekaserver/config.go @@ -30,6 +30,7 @@ const ( optionEnableSelfPreservation = "enableSelfPreservation" optionPeerNodesToReplicate = "peersToReplicate" optionCustomValues = "customValues" + optionGenerateUniqueInstId = "generateUniqueInstId" ) const ( diff --git a/apiserver/eurekaserver/server.go b/apiserver/eurekaserver/server.go index 0132e4ed1..fbaf258e9 100644 --- a/apiserver/eurekaserver/server.go +++ b/apiserver/eurekaserver/server.go @@ -145,6 +145,7 @@ type EurekaServer struct { eventHandlerHandler *EurekaInstanceEventHandler replicatePeers []string + generateUniqueInstId bool } // GetPort 获取端口 @@ -248,6 +249,12 @@ func (h *EurekaServer) Initialize(ctx context.Context, option map[string]interfa } h.enableSelfPreservation = enableSelfPreservation + if value, ok := option[optionGenerateUniqueInstId]; ok { + h.generateUniqueInstId = value.(bool) + } else { + h.generateUniqueInstId = false + } + if raw, _ := option[optionCustomValues].(map[interface{}]interface{}); raw != nil { for k, v := range raw { CustomEurekaParameters[k.(string)] = fmt.Sprintf("%v", v) diff --git a/apiserver/eurekaserver/write.go b/apiserver/eurekaserver/write.go index 822e14822..2dfa6ea43 100644 --- a/apiserver/eurekaserver/write.go +++ b/apiserver/eurekaserver/write.go @@ -32,16 +32,19 @@ import ( "github.com/polarismesh/polaris/common/utils" ) -func checkOrBuildNewInstanceId(appId string, instanceId string) string { +func checkOrBuildNewInstanceId(appId string, instId string, generateUniqueInstId bool) string { + if !generateUniqueInstId { + return instId + } lowerAppId := strings.ToLower(appId) - lowerInstanceId := strings.ToLower(instanceId) - if strings.Contains(lowerInstanceId, lowerAppId) { - return instanceId + lowerInstIdId := strings.ToLower(instId) + if strings.Contains(lowerInstIdId, lowerAppId) { + return instId } - return lowerAppId + ":" + lowerInstanceId + return lowerAppId + ":" + lowerInstIdId } -func buildBaseInstance(instance *InstanceInfo, namespace string, appId string) *apiservice.Instance { +func buildBaseInstance(instance *InstanceInfo, namespace string, appId string, generateUniqueInstId bool) *apiservice.Instance { targetInstance := &apiservice.Instance{} eurekaMetadata := make(map[string]string) @@ -84,7 +87,7 @@ func buildBaseInstance(instance *InstanceInfo, namespace string, appId string) * if len(instance.SecureVipAddress) > 0 { eurekaMetadata[MetadataSecureVipAddress] = instance.SecureVipAddress } - targetInstance.Id = &wrappers.StringValue{Value: checkOrBuildNewInstanceId(appId, eurekaInstanceId)} + targetInstance.Id = &wrappers.StringValue{Value: checkOrBuildNewInstanceId(appId, eurekaInstanceId, generateUniqueInstId)} targetInstance.Metadata = eurekaMetadata targetInstance.Service = &wrappers.StringValue{Value: appId} targetInstance.Namespace = &wrappers.StringValue{Value: namespace} @@ -146,7 +149,7 @@ func buildStatus(instance *InstanceInfo, targetInstance *apiservice.Instance) { } } -func convertEurekaInstance(instance *InstanceInfo, namespace string, appId string) *apiservice.Instance { +func convertEurekaInstance(instance *InstanceInfo, namespace string, appId string, generateUniqueInstId bool) *apiservice.Instance { var secureEnable bool var securePort int var insecureEnable bool @@ -169,7 +172,7 @@ func convertEurekaInstance(instance *InstanceInfo, namespace string, appId strin insecurePort = DefaultInsecurePort } - targetInstance := buildBaseInstance(instance, namespace, appId) + targetInstance := buildBaseInstance(instance, namespace, appId, generateUniqueInstId) // 同时打开2个端口,通过medata保存http端口 targetInstance.Protocol = &wrappers.StringValue{Value: InsecureProtocol} @@ -188,7 +191,7 @@ func (h *EurekaServer) registerInstances( ctx = context.WithValue(ctx, utils.ContextOpenAsyncRegis, true) appId = formatWriteName(appId) // 1. 先转换数据结构 - totalInstance := convertEurekaInstance(instance, h.namespace, appId) + totalInstance := convertEurekaInstance(instance, h.namespace, appId, h.generateUniqueInstId) // 3. 注册实例 resp := h.namingServer.RegisterInstance(ctx, totalInstance) // 4. 注册成功,则返回 @@ -217,7 +220,7 @@ func (h *EurekaServer) deregisterInstance( ctx = context.WithValue( ctx, model.CtxEventKeyMetadata, map[string]string{MetadataReplicate: strconv.FormatBool(replicated)}) ctx = context.WithValue(ctx, utils.ContextOpenAsyncRegis, true) - instanceId = checkOrBuildNewInstanceId(appId, instanceId) + instanceId = checkOrBuildNewInstanceId(appId, instanceId, h.generateUniqueInstId) resp := h.namingServer.DeregisterInstance(ctx, &apiservice.Instance{Id: &wrappers.StringValue{Value: instanceId}}) return resp.GetCode().GetValue() } @@ -230,7 +233,7 @@ func (h *EurekaServer) updateStatus( } ctx = context.WithValue( ctx, model.CtxEventKeyMetadata, map[string]string{MetadataReplicate: strconv.FormatBool(replicated)}) - instanceId = checkOrBuildNewInstanceId(appId, instanceId) + instanceId = checkOrBuildNewInstanceId(appId, instanceId, h.generateUniqueInstId) resp := h.namingServer.UpdateInstance(ctx, &apiservice.Instance{ Id: &wrappers.StringValue{Value: instanceId}, Isolate: &wrappers.BoolValue{Value: isolated}}) return resp.GetCode().GetValue() @@ -239,7 +242,7 @@ func (h *EurekaServer) updateStatus( func (h *EurekaServer) renew(ctx context.Context, appId string, instanceId string, replicated bool) uint32 { ctx = context.WithValue( ctx, model.CtxEventKeyMetadata, map[string]string{MetadataReplicate: strconv.FormatBool(replicated)}) - instanceId = checkOrBuildNewInstanceId(appId, instanceId) + instanceId = checkOrBuildNewInstanceId(appId, instanceId, h.generateUniqueInstId) resp := h.healthCheckServer.Report(ctx, &apiservice.Instance{Id: &wrappers.StringValue{Value: instanceId}}) code := resp.GetCode().GetValue() @@ -252,7 +255,7 @@ func (h *EurekaServer) renew(ctx context.Context, appId string, instanceId strin } func (h *EurekaServer) updateMetadata(ctx context.Context, appId string, instanceId string, metadata map[string]string) uint32 { - instanceId = checkOrBuildNewInstanceId(appId, instanceId) + instanceId = checkOrBuildNewInstanceId(appId, instanceId, h.generateUniqueInstId) resp := h.namingServer.UpdateInstance(ctx, &apiservice.Instance{Id: &wrappers.StringValue{Value: instanceId}, Metadata: metadata}) return resp.GetCode().GetValue() diff --git a/release/conf/polaris-server.yaml b/release/conf/polaris-server.yaml index ac528625d..59d4e7b1b 100644 --- a/release/conf/polaris-server.yaml +++ b/release/conf/polaris-server.yaml @@ -209,6 +209,7 @@ apiservers: refreshInterval: 10 deltaExpireInterval: 60 unhealthyExpireInterval: 180 + generateUniqueInstId: false connLimit: openConnLimit: false maxConnPerHost: 1024 From 0b3ae8992f0a2190aa4586dcdc8db49e241b78e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=99=AB=E4=BA=8C?= Date: Mon, 20 Mar 2023 06:46:42 +0000 Subject: [PATCH 4/6] =?UTF-8?q?=E9=81=BF=E5=85=8D=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E8=BD=AC=E6=8D=A2=E5=A4=B1=E8=B4=A5panic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiserver/eurekaserver/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apiserver/eurekaserver/server.go b/apiserver/eurekaserver/server.go index fbaf258e9..33ce1fe24 100644 --- a/apiserver/eurekaserver/server.go +++ b/apiserver/eurekaserver/server.go @@ -250,7 +250,7 @@ func (h *EurekaServer) Initialize(ctx context.Context, option map[string]interfa h.enableSelfPreservation = enableSelfPreservation if value, ok := option[optionGenerateUniqueInstId]; ok { - h.generateUniqueInstId = value.(bool) + h.generateUniqueInstId, _ = value.(bool) } else { h.generateUniqueInstId = false } From d0f07a14d46c316bdce0a3c2bc2ad1c0c144843e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=99=AB=E4=BA=8C?= Date: Mon, 20 Mar 2023 08:51:49 +0000 Subject: [PATCH 5/6] fix gci-lint --- apiserver/eurekaserver/access.go | 2 +- apiserver/eurekaserver/server.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apiserver/eurekaserver/access.go b/apiserver/eurekaserver/access.go index 391cd86a2..9bb85c8e1 100644 --- a/apiserver/eurekaserver/access.go +++ b/apiserver/eurekaserver/access.go @@ -362,7 +362,7 @@ func (h *EurekaServer) RegisterApplication(req *restful.Request, rsp *restful.Re writeHeader(http.StatusBadRequest, rsp) return } - + if !checkRegisterRequest(registrationRequest, req, rsp) { return } diff --git a/apiserver/eurekaserver/server.go b/apiserver/eurekaserver/server.go index 33ce1fe24..0db32be3a 100644 --- a/apiserver/eurekaserver/server.go +++ b/apiserver/eurekaserver/server.go @@ -144,8 +144,8 @@ type EurekaServer struct { replicateWorker *ReplicateWorker eventHandlerHandler *EurekaInstanceEventHandler - replicatePeers []string - generateUniqueInstId bool + replicatePeers []string + generateUniqueInstId bool } // GetPort 获取端口 From 0fb7c00717b922f9cefd34904879016d0fb6031e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=99=AB=E4=BA=8C?= Date: Mon, 20 Mar 2023 09:52:03 +0000 Subject: [PATCH 6/6] fix cli --- apiserver/eurekaserver/write.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/apiserver/eurekaserver/write.go b/apiserver/eurekaserver/write.go index 2dfa6ea43..302a2113b 100644 --- a/apiserver/eurekaserver/write.go +++ b/apiserver/eurekaserver/write.go @@ -44,7 +44,8 @@ func checkOrBuildNewInstanceId(appId string, instId string, generateUniqueInstId return lowerAppId + ":" + lowerInstIdId } -func buildBaseInstance(instance *InstanceInfo, namespace string, appId string, generateUniqueInstId bool) *apiservice.Instance { +func buildBaseInstance( + instance *InstanceInfo, namespace string, appId string, generateUniqueInstId bool) *apiservice.Instance { targetInstance := &apiservice.Instance{} eurekaMetadata := make(map[string]string) @@ -87,7 +88,8 @@ func buildBaseInstance(instance *InstanceInfo, namespace string, appId string, g if len(instance.SecureVipAddress) > 0 { eurekaMetadata[MetadataSecureVipAddress] = instance.SecureVipAddress } - targetInstance.Id = &wrappers.StringValue{Value: checkOrBuildNewInstanceId(appId, eurekaInstanceId, generateUniqueInstId)} + targetInstance.Id = &wrappers.StringValue{ + Value: checkOrBuildNewInstanceId(appId, eurekaInstanceId, generateUniqueInstId)} targetInstance.Metadata = eurekaMetadata targetInstance.Service = &wrappers.StringValue{Value: appId} targetInstance.Namespace = &wrappers.StringValue{Value: namespace} @@ -149,7 +151,8 @@ func buildStatus(instance *InstanceInfo, targetInstance *apiservice.Instance) { } } -func convertEurekaInstance(instance *InstanceInfo, namespace string, appId string, generateUniqueInstId bool) *apiservice.Instance { +func convertEurekaInstance( + instance *InstanceInfo, namespace string, appId string, generateUniqueInstId bool) *apiservice.Instance { var secureEnable bool var securePort int var insecureEnable bool @@ -254,7 +257,8 @@ func (h *EurekaServer) renew(ctx context.Context, appId string, instanceId strin return code } -func (h *EurekaServer) updateMetadata(ctx context.Context, appId string, instanceId string, metadata map[string]string) uint32 { +func (h *EurekaServer) updateMetadata( + ctx context.Context, appId string, instanceId string, metadata map[string]string) uint32 { instanceId = checkOrBuildNewInstanceId(appId, instanceId, h.generateUniqueInstId) resp := h.namingServer.UpdateInstance(ctx, &apiservice.Instance{Id: &wrappers.StringValue{Value: instanceId}, Metadata: metadata})