@@ -78,7 +78,7 @@ public RegistryServer(
7878 this .worker = worker ;
7979 }
8080
81- private Properties getNacosProperties (NacosConfig nacosConfig ) {
81+ private Properties getNacosProperties (NacosConfig nacosConfig ) {
8282 Properties properties = new Properties ();
8383 properties .put ("serverAddr" , nacosConfig .getServerAddr ());
8484 properties .put ("username" , Objects .toString (nacosConfig .getUsername (), "" ));
@@ -127,13 +127,13 @@ private List<Instance> createInstance(Worker worker, Application application, Fi
127127 // 设置为非临时实例,默认ehphemeral为true
128128 instance .setEphemeral (false );
129129 }
130- if (heartbeatConfig .getWeight () != null ) {
130+ if (heartbeatConfig .getWeight () != null ) {
131131 instance .setWeight (heartbeatConfig .getWeight ());
132132 }
133- if (heartbeatConfig .getHeartBeatInterval () != null ) {
133+ if (heartbeatConfig .getHeartBeatInterval () != null ) {
134134 instance .setMetadata (Collections .singletonMap ("preserved.heart.beat.interval" , String .valueOf (heartbeatConfig .getHeartBeatInterval ())));
135135 }
136- if (heartbeatConfig .getHeartBeatTimeout () != null ) {
136+ if (heartbeatConfig .getHeartBeatTimeout () != null ) {
137137 instance .setMetadata (Collections .singletonMap ("preserved.heart.beat.timeout" , String .valueOf (heartbeatConfig .getHeartBeatTimeout ())));
138138 }
139139 try {
@@ -142,7 +142,7 @@ private List<Instance> createInstance(Worker worker, Application application, Fi
142142 metadata .put (FITABLE_META_KEY , objectMapper .writeValueAsString (meta ));
143143 } catch (JsonProcessingException e ) {
144144 log .error ("Failed to serialize metadata for worker: {}, application: {}, fitableMeta: {}, error: {}" ,
145- worker , application , meta , e );
145+ worker , application , meta , e );
146146 }
147147 instance .setMetadata (metadata );
148148 instances .add (instance );
@@ -241,7 +241,7 @@ public List<FitableAddressInstance> queryFitables(List<FitableInfo> fitables, St
241241
242242 } catch (Exception e ) {
243243 log .error ("Failed to query fitables for genericableId: {}, fitableId: {}, error: {}" ,
244- fitable .getGenericableId (), fitable .getFitableId (), e );
244+ fitable .getGenericableId (), fitable .getFitableId (), e );
245245 }
246246 }
247247
@@ -322,13 +322,18 @@ public List<FitableAddressInstance> subscribeFitables(List<FitableInfo> fitables
322322 try {
323323 String groupName = fitable .getGenericableId () + fitable .getGenericableVersion ();
324324 String serviceName = fitable .getFitableId () + fitable .getFitableVersion ();
325- EventListener listener = event ->{
326- if (event instanceof NamingEvent || event instanceof NamingChangeEvent ) {
327- onServiceChanged (fitable );
328- }
329- };
330- namingService .subscribe (serviceName , groupName ,listener );
331- serviceSubscriptions .put (buildServiceKey (groupName , serviceName ), listener );
325+
326+
327+ EventListener eventListener = serviceSubscriptions .computeIfAbsent (buildServiceKey (groupName , serviceName ), k -> {
328+ EventListener listener = event -> {
329+ if (event instanceof NamingEvent || event instanceof NamingChangeEvent ) {
330+ onServiceChanged (fitable );
331+ }
332+ };
333+ return listener ;
334+ });
335+ namingService .subscribe (serviceName , groupName , eventListener );
336+
332337 } catch (Exception e ) {
333338 log .error ("Failed to subscribe to Nacos service, fitableId:{},error:{}" , fitable .getFitableId (), e );
334339 }
@@ -392,13 +397,13 @@ public List<FitableMetaInstance> queryFitableMetas(List<GenericableInfo> generic
392397 .add (worker .getEnvironment ());
393398 } catch (JsonProcessingException e ) {
394399 log .error ("Failed to parse worker metadata for genericableId: {}, fitableId: {}, error: {}" ,
395- genericable .getGenericableId (), meta .getFitable ().getFitableId (), e );
400+ genericable .getGenericableId (), meta .getFitable ().getFitableId (), e );
396401 }
397402 }
398403 }
399404 } catch (Exception e ) {
400405 log .error ("Failed to query fitable metas for genericableId: {}, error: {}" ,
401- genericable .getGenericableId (), e );
406+ genericable .getGenericableId (), e );
402407 }
403408 }
404409
0 commit comments