diff --git a/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroConsistencyServiceImpl.java b/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroConsistencyServiceImpl.java
index 7f679fec2af..26cfac16df7 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroConsistencyServiceImpl.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroConsistencyServiceImpl.java
@@ -19,7 +19,6 @@
 import com.alibaba.nacos.api.common.Constants;
 import com.alibaba.nacos.api.exception.NacosException;
 import com.alibaba.nacos.common.utils.Objects;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
 import com.alibaba.nacos.naming.cluster.ServerStatus;
 import com.alibaba.nacos.naming.cluster.transport.Serializer;
 import com.alibaba.nacos.consistency.DataOperation;
@@ -28,16 +27,10 @@
 import com.alibaba.nacos.naming.consistency.RecordListener;
 import com.alibaba.nacos.naming.consistency.ephemeral.EphemeralConsistencyService;
 import com.alibaba.nacos.naming.consistency.ephemeral.distro.combined.DistroHttpCombinedKey;
-import com.alibaba.nacos.naming.consistency.ephemeral.distro.combined.DistroHttpCombinedKeyTaskFailedHandler;
-import com.alibaba.nacos.naming.consistency.ephemeral.distro.combined.DistroHttpDelayTaskProcessor;
-import com.alibaba.nacos.naming.consistency.ephemeral.distro.component.DistroDataStorageImpl;
-import com.alibaba.nacos.naming.consistency.ephemeral.distro.component.DistroHttpAgent;
 import com.alibaba.nacos.core.distributed.distro.DistroProtocol;
-import com.alibaba.nacos.core.distributed.distro.component.DistroComponentHolder;
 import com.alibaba.nacos.core.distributed.distro.component.DistroDataProcessor;
 import com.alibaba.nacos.core.distributed.distro.entity.DistroData;
 import com.alibaba.nacos.core.distributed.distro.entity.DistroKey;
-import com.alibaba.nacos.core.distributed.distro.task.DistroTaskEngineHolder;
 import com.alibaba.nacos.naming.core.DistroMapper;
 import com.alibaba.nacos.naming.core.Instances;
 import com.alibaba.nacos.naming.core.Service;
@@ -102,20 +95,6 @@ public DistroConsistencyServiceImpl(DistroMapper distroMapper, DataStore dataSto
         this.switchDomain = switchDomain;
         this.globalConfig = globalConfig;
         this.distroProtocol = distroProtocol;
-        registerDistroComponent();
-    }
-    
-    private void registerDistroComponent() {
-        DistroComponentHolder componentHolder = ApplicationUtils.getBean(DistroComponentHolder.class);
-        DistroTaskEngineHolder taskEngineHolder = ApplicationUtils.getBean(DistroTaskEngineHolder.class);
-        componentHolder.registerDataStorage(KeyBuilder.INSTANCE_LIST_KEY_PREFIX,
-                new DistroDataStorageImpl(dataStore, distroMapper));
-        componentHolder.registerTransportAgent(KeyBuilder.INSTANCE_LIST_KEY_PREFIX, new DistroHttpAgent());
-        componentHolder.registerFailedTaskHandler(KeyBuilder.INSTANCE_LIST_KEY_PREFIX,
-                new DistroHttpCombinedKeyTaskFailedHandler(globalConfig, taskEngineHolder));
-        taskEngineHolder.registerNacosTaskProcessor(KeyBuilder.INSTANCE_LIST_KEY_PREFIX,
-                new DistroHttpDelayTaskProcessor(globalConfig, taskEngineHolder));
-        componentHolder.registerDataProcessor(this);
     }
     
     @PostConstruct
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroHttpData.java b/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroHttpData.java
index 7f22ed4d379..314770313af 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroHttpData.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroHttpData.java
@@ -33,8 +33,8 @@ public class DistroHttpData extends DistroData {
     
     private Object deserializedContent;
     
-    public DistroHttpData(DistroKey distroKey, byte[] content, Object deserializedContent) {
-        super(distroKey, content);
+    public DistroHttpData(DistroKey distroKey, Object deserializedContent) {
+        setDistroKey(distroKey);
         this.deserializedContent = deserializedContent;
     }
     
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroHttpRegistry.java b/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroHttpRegistry.java
new file mode 100644
index 00000000000..16c81fdab9a
--- /dev/null
+++ b/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroHttpRegistry.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright 1999-2018 Alibaba Group Holding Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.nacos.naming.consistency.ephemeral.distro;
+
+import com.alibaba.nacos.core.distributed.distro.component.DistroComponentHolder;
+import com.alibaba.nacos.core.distributed.distro.task.DistroTaskEngineHolder;
+import com.alibaba.nacos.naming.consistency.KeyBuilder;
+import com.alibaba.nacos.naming.consistency.ephemeral.distro.combined.DistroHttpCombinedKeyTaskFailedHandler;
+import com.alibaba.nacos.naming.consistency.ephemeral.distro.combined.DistroHttpDelayTaskProcessor;
+import com.alibaba.nacos.naming.consistency.ephemeral.distro.component.DistroDataStorageImpl;
+import com.alibaba.nacos.naming.consistency.ephemeral.distro.component.DistroHttpAgent;
+import com.alibaba.nacos.naming.core.DistroMapper;
+import com.alibaba.nacos.naming.misc.GlobalConfig;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+
+/**
+ * Distro http registry.
+ *
+ * @author xiweng.yy
+ */
+@Component
+public class DistroHttpRegistry {
+    
+    private final DistroComponentHolder componentHolder;
+    
+    private final DistroTaskEngineHolder taskEngineHolder;
+    
+    private final DataStore dataStore;
+    
+    private final DistroMapper distroMapper;
+    
+    private final GlobalConfig globalConfig;
+    
+    private final DistroConsistencyServiceImpl consistencyService;
+    
+    public DistroHttpRegistry(DistroComponentHolder componentHolder, DistroTaskEngineHolder taskEngineHolder,
+            DataStore dataStore, DistroMapper distroMapper, GlobalConfig globalConfig,
+            DistroConsistencyServiceImpl consistencyService) {
+        this.componentHolder = componentHolder;
+        this.taskEngineHolder = taskEngineHolder;
+        this.dataStore = dataStore;
+        this.distroMapper = distroMapper;
+        this.globalConfig = globalConfig;
+        this.consistencyService = consistencyService;
+    }
+    
+    /**
+     * Register necessary component to distro protocol for HTTP implement.
+     */
+    @PostConstruct
+    public void doRegister() {
+        componentHolder.registerDataStorage(KeyBuilder.INSTANCE_LIST_KEY_PREFIX,
+                new DistroDataStorageImpl(dataStore, distroMapper));
+        componentHolder.registerTransportAgent(KeyBuilder.INSTANCE_LIST_KEY_PREFIX, new DistroHttpAgent());
+        componentHolder.registerFailedTaskHandler(KeyBuilder.INSTANCE_LIST_KEY_PREFIX,
+                new DistroHttpCombinedKeyTaskFailedHandler(globalConfig, taskEngineHolder));
+        taskEngineHolder.registerNacosTaskProcessor(KeyBuilder.INSTANCE_LIST_KEY_PREFIX,
+                new DistroHttpDelayTaskProcessor(globalConfig, taskEngineHolder));
+        componentHolder.registerDataProcessor(consistencyService);
+    }
+}
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/controllers/DistroController.java b/naming/src/main/java/com/alibaba/nacos/naming/controllers/DistroController.java
index b1e89d92b28..7052b71a1fc 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/controllers/DistroController.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/controllers/DistroController.java
@@ -84,8 +84,7 @@ public ResponseEntity onSyncDatum(@RequestBody Map<String, Datum<Instances>> dat
                         .isDefaultInstanceEphemeral()) {
                     serviceManager.createEmptyService(namespaceId, serviceName, true);
                 }
-                DistroHttpData distroHttpData = new DistroHttpData(createDistroKey(entry.getKey()), null,
-                        entry.getValue());
+                DistroHttpData distroHttpData = new DistroHttpData(createDistroKey(entry.getKey()), entry.getValue());
                 distroProtocol.onReceive(distroHttpData);
             }
         }
@@ -101,7 +100,7 @@ public ResponseEntity onSyncDatum(@RequestBody Map<String, Datum<Instances>> dat
      */
     @PutMapping("/checksum")
     public ResponseEntity syncChecksum(@RequestParam String source, @RequestBody Map<String, String> dataMap) {
-        DistroHttpData distroHttpData = new DistroHttpData(createDistroKey(source), null, dataMap);
+        DistroHttpData distroHttpData = new DistroHttpData(createDistroKey(source), dataMap);
         distroProtocol.onVerify(distroHttpData);
         return ResponseEntity.ok("ok");
     }
diff --git a/naming/src/test/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroConsistencyServiceImplTest.java b/naming/src/test/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroConsistencyServiceImplTest.java
index ffaa82a05f4..4a76dc1b444 100644
--- a/naming/src/test/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroConsistencyServiceImplTest.java
+++ b/naming/src/test/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/DistroConsistencyServiceImplTest.java
@@ -24,9 +24,7 @@
 import com.alibaba.nacos.naming.consistency.KeyBuilder;
 import com.alibaba.nacos.naming.consistency.RecordListener;
 import com.alibaba.nacos.core.distributed.distro.DistroProtocol;
-import com.alibaba.nacos.core.distributed.distro.component.DistroComponentHolder;
 import com.alibaba.nacos.core.distributed.distro.entity.DistroKey;
-import com.alibaba.nacos.core.distributed.distro.task.DistroTaskEngineHolder;
 import com.alibaba.nacos.naming.core.Instances;
 import com.alibaba.nacos.naming.misc.GlobalConfig;
 import org.junit.After;
@@ -41,7 +39,6 @@
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -68,20 +65,12 @@ public class DistroConsistencyServiceImplTest extends BaseTest {
     @Mock
     private RecordListener<Instances> recordListener;
     
-    @Mock
-    private DistroComponentHolder distroComponentHolder;
-    
-    @Mock
-    private DistroTaskEngineHolder distroTaskEngineHolder;
-    
     private Map<String, ConcurrentLinkedQueue<RecordListener>> listeners;
     
     private Instances instances;
     
     @Before
     public void setUp() throws Exception {
-        doReturn(distroComponentHolder).when(context).getBean(DistroComponentHolder.class);
-        doReturn(distroTaskEngineHolder).when(context).getBean(DistroTaskEngineHolder.class);
         when(globalConfig.getTaskDispatchPeriod()).thenReturn(2000);
         distroConsistencyService = new DistroConsistencyServiceImpl(distroMapper, dataStore, serializer, switchDomain,
                 globalConfig, distroProtocol);