This is an automated email from the ASF dual-hosted git repository.

liuhongyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git


The following commit(s) were added to refs/heads/master by this push:
     new cf0bbba7d6 [type:optimize] Optimize instance comparison logic in 
EurekaInstanceRegisterRepository (#6154)
cf0bbba7d6 is described below

commit cf0bbba7d6e7937a48dd9d4745bfa742f4468658
Author: yqw570994511 <49865334+yqw570994...@users.noreply.github.com>
AuthorDate: Sat Sep 13 15:12:16 2025 +0800

    [type:optimize] Optimize instance comparison logic in 
EurekaInstanceRegisterRepository (#6154)
    
    Co-authored-by: yuqianwei <qq120405>
---
 .../shenyu/registry/eureka/EurekaInstanceRegisterRepository.java     | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git 
a/shenyu-registry/shenyu-registry-eureka/src/main/java/org/apache/shenyu/registry/eureka/EurekaInstanceRegisterRepository.java
 
b/shenyu-registry/shenyu-registry-eureka/src/main/java/org/apache/shenyu/registry/eureka/EurekaInstanceRegisterRepository.java
index 4a9be294c9..857f3c5a2c 100644
--- 
a/shenyu-registry/shenyu-registry-eureka/src/main/java/org/apache/shenyu/registry/eureka/EurekaInstanceRegisterRepository.java
+++ 
b/shenyu-registry/shenyu-registry-eureka/src/main/java/org/apache/shenyu/registry/eureka/EurekaInstanceRegisterRepository.java
@@ -46,6 +46,7 @@ import org.slf4j.LoggerFactory;
 
 import java.net.URI;
 import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -158,7 +159,7 @@ public class EurekaInstanceRegisterRepository implements 
ShenyuInstanceRegisterR
                 try {
                     List<InstanceInfo> previousInstances = 
instanceListMap.get(key);
                     List<InstanceInfo> currentInstances = 
eurekaClient.getInstancesByVipAddressAndAppName(null, key, true);
-                    compareInstances(previousInstances, currentInstances, 
listener);
+                    compareInstances(new HashSet<>(previousInstances), new 
HashSet<>(currentInstances), listener);
                     instanceListMap.put(key, currentInstances);
                 } catch (Exception e) {
                     LOGGER.error("eureka registry eurekaDiscoveryService watch 
key: {} error", key, e);
@@ -188,7 +189,7 @@ public class EurekaInstanceRegisterRepository implements 
ShenyuInstanceRegisterR
         }
     }
 
-    private void compareInstances(final List<InstanceInfo> previousInstances, 
final List<InstanceInfo> currentInstances, final ChangedEventListener listener) 
{
+    private void compareInstances(final Set<InstanceInfo> previousInstances, 
final Set<InstanceInfo> currentInstances, final ChangedEventListener listener) {
         Set<InstanceInfo> addedInstances = currentInstances.stream()
                 .filter(item -> !previousInstances.contains(item))
                 .collect(Collectors.toSet());

Reply via email to