From b8dc1cfc2d2722ba755087eb830c09368bddb807 Mon Sep 17 00:00:00 2001 From: paderlol Date: Fri, 2 Oct 2020 17:04:05 +0800 Subject: [PATCH 1/2] Fix Eureka sync to Nacos issue #173 --- nacossync-console/pom.xml | 2 +- nacossync-distribution/pom.xml | 2 +- nacossync-test/pom.xml | 4 +-- nacossync-worker/pom.xml | 4 +-- .../impl/EurekaSyncToNacosServiceImpl.java | 25 ++++++++++++++----- pom.xml | 4 +-- 6 files changed, 27 insertions(+), 14 deletions(-) diff --git a/nacossync-console/pom.xml b/nacossync-console/pom.xml index dd8dc7c4..a3d1b599 100644 --- a/nacossync-console/pom.xml +++ b/nacossync-console/pom.xml @@ -16,7 +16,7 @@ nacossync-parent com.alibaba.nacossync - 0.4.0 + 0.4.1 4.0.0 diff --git a/nacossync-distribution/pom.xml b/nacossync-distribution/pom.xml index de20b308..2fb46441 100644 --- a/nacossync-distribution/pom.xml +++ b/nacossync-distribution/pom.xml @@ -5,7 +5,7 @@ nacossync-parent com.alibaba.nacossync - 0.4.0 + 0.4.1 4.0.0 pom diff --git a/nacossync-test/pom.xml b/nacossync-test/pom.xml index fab75457..9fb9b79e 100644 --- a/nacossync-test/pom.xml +++ b/nacossync-test/pom.xml @@ -17,7 +17,7 @@ nacossync-parent com.alibaba.nacossync - 0.4.0 + 0.4.1 ../pom.xml 4.0.0 @@ -39,7 +39,7 @@ com.alibaba.nacossync nacossync-worker - 0.4.0 + 0.4.1 org.springframework.boot diff --git a/nacossync-worker/pom.xml b/nacossync-worker/pom.xml index ec1de062..c25417ed 100644 --- a/nacossync-worker/pom.xml +++ b/nacossync-worker/pom.xml @@ -16,11 +16,11 @@ nacossync-parent com.alibaba.nacossync - 0.4.0 + 0.4.1 4.0.0 nacossync-worker - 0.4.0 + 0.4.1 3.4.9 4.1.0 diff --git a/nacossync-worker/src/main/java/com/alibaba/nacossync/extension/impl/EurekaSyncToNacosServiceImpl.java b/nacossync-worker/src/main/java/com/alibaba/nacossync/extension/impl/EurekaSyncToNacosServiceImpl.java index 5052ffc8..63b66aa7 100644 --- a/nacossync-worker/src/main/java/com/alibaba/nacossync/extension/impl/EurekaSyncToNacosServiceImpl.java +++ b/nacossync-worker/src/main/java/com/alibaba/nacossync/extension/impl/EurekaSyncToNacosServiceImpl.java @@ -28,13 +28,14 @@ import com.alibaba.nacossync.monitor.MetricsManager; import com.alibaba.nacossync.pojo.model.TaskDO; import com.netflix.appinfo.InstanceInfo; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * eureka * @@ -70,9 +71,10 @@ public boolean delete(TaskDO taskDO) { try { specialSyncEventBus.unsubscribe(taskDO); - NamingService destNamingService = nacosServerHolder.get(taskDO.getDestClusterId(), taskDO.getNameSpace()); - List allInstances = destNamingService.getAllInstances(taskDO.getServiceName()); - deleteAllInstance(taskDO, destNamingService, allInstances); + EurekaNamingService eurekaNamingService = eurekaServerHolder.get(taskDO.getSourceClusterId(), null); + NamingService destNamingService = nacosServerHolder.get(taskDO.getDestClusterId(), null); + List eurekaInstances = eurekaNamingService.getApplications(taskDO.getServiceName()); + deleteAllInstanceFromEureka(taskDO, destNamingService, eurekaInstances); } catch (Exception e) { log.error("delete a task from eureka to nacos was failed, taskId:{}", taskDO.getTaskId(), e); @@ -119,6 +121,17 @@ private void addValidInstance(TaskDO taskDO, NamingService destNamingService, Li } } } + + private void deleteAllInstanceFromEureka(TaskDO taskDO, NamingService destNamingService, List eurekaInstances) + throws NacosException { + for (InstanceInfo instance : eurekaInstances) { + if (needSync(instance.getMetadata())) { + log.info("Delete service instance from Eureka, serviceName={}, Ip={}, port={}", + instance.getAppName(), instance.getIPAddr(), instance.getPort()); + destNamingService.deregisterInstance(taskDO.getServiceName(), buildSyncInstance(instance, taskDO)); + } + } + } private void removeInvalidInstance(TaskDO taskDO, NamingService destNamingService, List eurekaInstances, List nacosInstances) throws NacosException { diff --git a/pom.xml b/pom.xml index 7da1be76..fb35cda2 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ com.alibaba.nacossync nacossync-parent - 0.4.0 + 0.4.1 nacossync-console nacossync-worker @@ -73,7 +73,7 @@ com.alibaba.nacossync nacossync-worker - 0.4.0 + 0.4.1 From 2a3cc7e7ac4bff31f0201b58cb8c197259a8b5b7 Mon Sep 17 00:00:00 2001 From: paderlol Date: Fri, 2 Oct 2020 17:04:53 +0800 Subject: [PATCH 2/2] Fix delete sync task issue #168 --- .../processor/TaskDeleteProcessor.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/nacossync-worker/src/main/java/com/alibaba/nacossync/template/processor/TaskDeleteProcessor.java b/nacossync-worker/src/main/java/com/alibaba/nacossync/template/processor/TaskDeleteProcessor.java index bb3f22be..2f18186e 100644 --- a/nacossync-worker/src/main/java/com/alibaba/nacossync/template/processor/TaskDeleteProcessor.java +++ b/nacossync-worker/src/main/java/com/alibaba/nacossync/template/processor/TaskDeleteProcessor.java @@ -16,15 +16,16 @@ */ package com.alibaba.nacossync.template.processor; -import lombok.extern.slf4j.Slf4j; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - import com.alibaba.nacossync.dao.TaskAccessService; -import com.alibaba.nacossync.pojo.result.BaseResult; +import com.alibaba.nacossync.event.DeleteTaskEvent; +import com.alibaba.nacossync.pojo.model.TaskDO; import com.alibaba.nacossync.pojo.request.TaskDeleteRequest; +import com.alibaba.nacossync.pojo.result.BaseResult; import com.alibaba.nacossync.template.Processor; +import com.google.common.eventbus.EventBus; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * @author NacosSync @@ -36,11 +37,15 @@ public class TaskDeleteProcessor implements Processor