diff --git a/cluster/router/condition/app_router.go b/cluster/router/condition/app_router.go
index 2b07f8fd714aa639ded20cd8e37f3792a62766a2..0fa50ad040e6f67bba9b0fe9fc0bb59785455464 100644
--- a/cluster/router/condition/app_router.go
+++ b/cluster/router/condition/app_router.go
@@ -14,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package condition
 
 import (
diff --git a/common/url.go b/common/url.go
index ff3ca4952e1cfdb35d33d4faf6ca9e75adfefde1..8f1059b0d01a07c77b0e2632e0c97762c922e600 100644
--- a/common/url.go
+++ b/common/url.go
@@ -55,7 +55,8 @@ const (
 var (
 	// DubboNodes ...
 	DubboNodes = [...]string{"consumers", "configurators", "routers", "providers"}
-	DubboRole  = [...]string{"consumer", "", "routers", "provider"}
+	// DubboRole dubbo service role
+	DubboRole = [...]string{"consumer", "", "routers", "provider"}
 )
 
 // RoleType ...
@@ -309,6 +310,7 @@ func (c URL) Key() string {
 	//return c.ServiceKey()
 }
 
+// ColonSeparatedKey The format is "{interface}:[version]:[group]"
 func (c *URL) ColonSeparatedKey() string {
 	intf := c.GetParam(constant.INTERFACE_KEY, strings.TrimPrefix(c.Path, "/"))
 	if intf == "" {
@@ -329,36 +331,6 @@ func (c *URL) ColonSeparatedKey() string {
 	return buf.String()
 }
 
-func (c *URL) GetBackupUrls() []*URL {
-	var (
-		urls []*URL
-		host string
-	)
-	urls = append(urls, c)
-	backups := strings.Split(c.GetParam(constant.BACKUP_KEY, ""), "")
-	for _, address := range backups {
-		index := strings.LastIndex(address, ":")
-		port := c.Port
-		if index > 0 {
-			host = address[:index]
-			port = address[index+1:]
-		} else {
-			host = address
-		}
-		newURL := NewURLWithOptions(
-			WithProtocol(c.Protocol),
-			WithPath(c.Path),
-			WithIp(host),
-			WithUsername(c.Username),
-			WithPassword(c.Password),
-			WithPort(port),
-			WithParams(c.params))
-
-		urls = append(urls, newURL)
-	}
-	return urls
-}
-
 // ServiceKey ...
 func (c URL) ServiceKey() string {
 	intf := c.GetParam(constant.INTERFACE_KEY, strings.TrimPrefix(c.Path, "/"))
diff --git a/config/condition_router_config.go b/config/condition_router_config.go
index 2fb02c951be788e4d5a8801e0bb76eba856c9892..de4ba406245d55613042be360bef93d7c118bdff 100644
--- a/config/condition_router_config.go
+++ b/config/condition_router_config.go
@@ -14,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package config
 
 import (
diff --git a/registry/directory/directory.go b/registry/directory/directory.go
index 3af5e0ca1523317db906a4be5a7ddbb1f29c50e7..65a4ef5d3776cd18caf9aaddab5b9abe0ff1af01 100644
--- a/registry/directory/directory.go
+++ b/registry/directory/directory.go
@@ -131,7 +131,6 @@ func (dir *registryDirectory) refreshInvokers(res *registry.ServiceEvent) {
 		}
 		switch res.Action {
 		case remoting.EventTypeAdd, remoting.EventTypeUpdate:
-			dirUrl := &res.Service
 			var urls []*common.URL
 
 			for _, v := range directory.GetRouterURLSet().Values() {
diff --git a/registry/zookeeper/registry.go b/registry/zookeeper/registry.go
index b21d7915f7797d662910f4261e9d5d328c0c2d9e..5b6b5537b1d8823e68860f75ba34d4f4e93a7bcf 100644
--- a/registry/zookeeper/registry.go
+++ b/registry/zookeeper/registry.go
@@ -391,7 +391,6 @@ func (r *zkRegistry) register(c common.URL) error {
 		logger.Debugf("consumer path:%s, url:%s", dubboPath, rawURL)
 
 	case common.ROUTER:
-		//todo
 		dubboPath = fmt.Sprintf("/dubbo/%s/%s", c.Service(), common.DubboNodes[common.ROUTER])
 		r.cltLock.Lock()
 		err = r.client.Create(dubboPath)