diff --git a/java-chassis-reference/zh_CN/docs/build-consumer/3rd-party-service-invoke.md b/java-chassis-reference/zh_CN/docs/build-consumer/3rd-party-service-invoke.md
index f8508eb..90fcf75 100644
--- a/java-chassis-reference/zh_CN/docs/build-consumer/3rd-party-service-invoke.md
+++ b/java-chassis-reference/zh_CN/docs/build-consumer/3rd-party-service-invoke.md
@@ -2,9 +2,11 @@
 
 ## 概念阐述
 
-ServiceComb允许用户注册第三方REST服务的endpoint、接口契约等信息，使用户可以以调用ServiceComb provider服务相同的方式编写调用第三方服务的代码。
+第三方服务没有在服务中心注册，不存契约信息，Java Chassis 提供一种透明的方式访问第三方服务。 
 使用该功能调用第三方服务时，发往第三方服务的请求会经过consumer端handler链、HttpClientFilter的处理，
-即该功能支持对第三方服务调用的治理功能，并且也支持ServiceComb既有的用户自定义扩展处理机制。
+即该功能支持对第三方服务调用的治理功能，并且也支持ServiceComb既有的用户自定义扩展处理机制。 
+
+另外开发者也可以使用 [本地注册发现](../registry/local-registry.md) 实现第三方调用， 两种方式实现的效果是一致的。 
 
 ## 示例代码
 
@@ -51,40 +53,30 @@
         }
         ```
 
-3. 在consumer服务中调用ServiceComb提供的方法将其进行注册：
+3. 通过实现 `ThirdServiceWithInvokerRegister` 注册第三方服务信息。 可以注册多个 schema。 
 
         ```java
-        String endpoint = "rest://127.0.0.1:8080";
-        RegistryUtils.getServiceRegistry().registerMicroserviceMappingByEndpoints(
-          // 3rd party rest service name, you can specify the name on your need as long as you obey the microservice naming rule
-          "thirdPartyService",
-          // service version
-          "0.0.1",
-          // list of endpoints
-          Collections.singletonList(endpoint),
-          // java interface class to generate swagger schema
-          ThirdPartyRestServiceInterface.class
-        );
+        @Configuration
+        public class ThirdSvc extends ThirdServiceWithInvokerRegister {
+          public ThirdSvc() {
+            super("3rd-svc");
+        
+            addSchema("schema-1", VertxServerIntf.class);
+          }
+        }
         ```
 
+    ***注意：*** java chassis 2.1.3 以上版本才支持 ThirdServiceWithInvokerRegister。 
+
 4. 调用第三方服务，声明和调用方式与调用ServiceComb provider服务相同，此处以RPC调用方式为例。
 
         ```java
-        // declare rpc reference to 3rd party rest service, schemaId is the same as microservice name
-        @RpcReference(microserviceName = "thirdPartyService", schemaId = "thirdPartyService")
-        ThirdPartyRestServiceInterface thirdPartyRestService;
-        
-        @RequestMapping(path = "/{pathVar}", method = RequestMethod.GET)
-        public String testInvoke(@PathVariable(name = "pathVar") String pathVar) {
-        LOGGER.info("testInvoke() is called, pathVar = [{}]", pathVar);
-        // invoke 3rd party rest service
-        String response = thirdPartyRestService.testPathVar(pathVar);
-        LOGGER.info("testInvoke() response = [{}]", response);
-        return response;
-        }
+        VertxServerIntf client = BeanUtils.getContext().getBean(VertxServerIntf.class);
+        client.testPathVar(pathVar);
         ```
 
-5. 使用治理功能。使用治理功能的方法与普通的consumer调用provider场景类似。以限流策略为例，在consumer服务的microservice.yaml文件中进行如下配置:
+5. 使用治理功能。使用治理功能的方法与普通的consumer调用provider场景类似。以限流策略为例，在consumer
+  服务的microservice.yaml文件中进行如下配置:
 
         ```yaml
         servicecomb:
@@ -99,9 +91,8 @@
     此时即将consumer调用名为`thirdPartyService`的第三方REST服务的QPS设置为1。当consumer调用`thirdPartyService`的流量高于1QPS时，
     将会得到`429 Too Many Requests`的`InvocationException`异常。
 
-> ***注意：***
-- endpoint信息是以`rest`开头的，而非`http`，可以参照ServiceComb微服务注册到服务中心的endpoint样式进行编写。
-- 当第三方服务有多个实例（地址）时，可以在endpoint list中指定多个地址，ServiceComb支持对多个地址进行负载均衡处理，处理方式和对待ServiceComb
- provider服务相同。
-- 当前仅支持一次性注册第三方服务及其实例信息，不支持增加、删除和修改操作。
+6. 配置第三分服务的实例信息
 
+        3rd-svc:
+          urls:
+            - http://localhost:8080
diff --git a/java-chassis-reference/zh_CN/docs/registry/introduction.md b/java-chassis-reference/zh_CN/docs/registry/introduction.md
index 0df7a3b..8b2dbaf 100644
--- a/java-chassis-reference/zh_CN/docs/registry/introduction.md
+++ b/java-chassis-reference/zh_CN/docs/registry/introduction.md
@@ -25,27 +25,6 @@
 不同的注册发现机制，可能注册的信息和发现的信息不包括上述信息的全集，可以通过组合不同的注册发现机制，提供完整的信息。
 比如，可以通过 mDNS 的方式发现网络地址(endpoints)信息， 可以通过配置文件的方式，发现契约信息。
 
-## 使用服务中心 
-
-服务中心(servicecomb-service-center) 提供了完备的注册发现机制， 实现了所有 `Microservice` 和 `MicroserviceInstance` 信息的注册和发现，
-是 servicecomb 缺省使用的注册发现机制。 
-
-服务中心支持使用 `PULL` 和 `PUSH` 两种模式通知实例变化， 开发者可以配置服务中心集群地址、连接参数以及心跳管理等。
-
-* 表1-1 访问服务中心常用的配置项
-
-| 配置项 | 默认值 | 是否必选 | 含义 | 
-| :--- | :--- | :--- | :--- | 
-| servicecomb.service.registry.</p>address | http://127.0.0.1:30100 | 是 | 服务中心的地址信息，可以配置多个，用逗号分隔。 |
-| servicecomb.service.registry.</p>instance.watch | true | 否 | 是否采用PUSH模式监听实例变化。为false的时候表示使用PULL模式。 |
-| servicecomb.service.registry.</p>autodiscovery | false | 否 | 是否自动发现服务中心的地址。当需要配置部分地址，其他地址由配置的服务中心实例发现的时候，开启这个配置。 |
-| servicecomb.service.registry.</p>instance.healthCheck.interval | 30 | 否 | 心跳间隔。 |
-| servicecomb.service.registry.</p>instance.healthCheck.times | 3 | 否 | 允许的心跳失败次数。当连续第times+1次心跳仍然失败时则实例被sc下线。即interval \* (times + 1)决定了实例被自动注销的时间。如果服务中心等待这么长的时间没有收取到心跳，会注销实例。 |
-| servicecomb.service.registry.</p>instance.empty.protection | true | 否 | 当从服务中心查询到的地址为空的时候，是否覆盖本地缓存。这个是一种可靠性保护机制，避免实例异常批量下线导致的请求失败。 |
-
-servicecomb 与服务中心采用 HTTP 进行交互， HTTP client 相关配置可以参
-考 [Service Center Client 配置项](../config-reference/service-center-client.md)
-
 ## 同时使用多个注册发现
 
 从 2.1.0 版本开始，可以同时使用多个注册发现的实现。组合不同的注册发现的实现，能够满足一些非常重要场景的需求。
diff --git a/java-chassis-reference/zh_CN/docs/registry/multi-registries.md b/java-chassis-reference/zh_CN/docs/registry/multi-registries.md
deleted file mode 100644
index 1796994..0000000
--- a/java-chassis-reference/zh_CN/docs/registry/multi-registries.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# 连接多个服务中心
-
-有些应用场景需要连接多个服务中心。比如一个应用系统会在不同的 region 部署，其中一个 region 的服务需要访问
-另外一个 region 的服务， 这个时候，可以连接另外 region 的服务中心，发现服务信息。 
-
-***注意:*** 连接多个服务中心指的是不同的服务中心集群，不是指一个集群内部的多个服务中心实例。 
-
-连接多个服务中心比较简单， 只需要在项目里面定义新的服务中心的配置信息，通过 spring bean 的方式注入：
-
-```java
-@Configuration
-public class ServerBServiceCenterConfiguration {
-  @Bean("serverBServiceCenterConfig")
-  public ServiceRegistryConfig serverBServiceCenterConfig() {
-    ServiceRegistryConfig config = ServiceRegistryConfig.buildFromConfiguration();
-    return ServiceRegistryConfigCustomizer.from(config)
-        .addressListFromConfiguration("servicecomb.service.registry-serverB.address").get();
-  }
-}
-```
-
-上面的代码复用了缺省服务中心的配置信息，只修改了连接地址，代码指定了下面的配置项。如果需要自定义其他配置项，可以
-通过继承 ServiceRegistryConfig 来实现。
-
-```yaml
-servicecomb:
-  service:
-    registry:
-      address: http://127.0.0.1:30100
-    registry-serverB:
-      address: http://127.0.0.1:40100
-```
-
-启用多个服务中心以后，会在不同的服务中心查找服务的实例，并对信息进行合并。 
-
diff --git a/java-chassis-reference/zh_CN/docs/registry/service-center.md b/java-chassis-reference/zh_CN/docs/registry/service-center.md
new file mode 100644
index 0000000..c412bad
--- /dev/null
+++ b/java-chassis-reference/zh_CN/docs/registry/service-center.md
@@ -0,0 +1,172 @@
+# 使用服务中心 
+
+服务中心(servicecomb-service-center) 提供了完备的注册发现机制， 实现了所有 `Microservice` 和 `MicroserviceInstance` 信息的注册和发现，
+是 servicecomb 缺省使用的注册发现机制。 
+
+服务中心支持使用 `PULL` 和 `PUSH` 两种模式通知实例变化， 开发者可以配置服务中心集群地址、连接参数以及心跳管理等。
+
+* 表1-1 访问服务中心常用的配置项
+
+| 配置项 | 默认值 | 是否必选 | 含义 | 
+| :--- | :--- | :--- | :--- | 
+| servicecomb.service.registry.</p>address | http://127.0.0.1:30100 | 是 | 服务中心的地址信息，可以配置多个，用逗号分隔。 |
+| servicecomb.service.registry.</p>instance.watch | true | 否 | 是否采用PUSH模式监听实例变化。为false的时候表示使用PULL模式。 |
+| servicecomb.service.registry.</p>autodiscovery | false | 否 | 是否自动发现服务中心的地址。当需要配置部分地址，其他地址由配置的服务中心实例发现的时候，开启这个配置。 |
+| servicecomb.service.registry.</p>instance.healthCheck.interval | 30 | 否 | 心跳间隔。 |
+| servicecomb.service.registry.</p>instance.healthCheck.times | 3 | 否 | 允许的心跳失败次数。当连续第times+1次心跳仍然失败时则实例被sc下线。即interval \* (times + 1)决定了实例被自动注销的时间。如果服务中心等待这么长的时间没有收取到心跳，会注销实例。 |
+| servicecomb.service.registry.</p>instance.empty.protection | true | 否 | 当从服务中心查询到的地址为空的时候，是否覆盖本地缓存。这个是一种可靠性保护机制，避免实例异常批量下线导致的请求失败。 |
+
+servicecomb 与服务中心采用 HTTP 进行交互， HTTP client 相关配置可以参
+考 [Service Center Client 配置项](../config-reference/service-center-client.md)
+
+使用服务中心需要确保下面的软件包引入：
+
+```
+  <dependency>
+    <groupId>org.apache.servicecomb</groupId>
+    <artifactId>registry-service-center</artifactId>
+  </dependency>
+```
+
+也可以直接依赖：
+
+```
+  <dependency>
+    <groupId>org.apache.servicecomb</groupId>
+    <artifactId>solution-basic</artifactId>
+  </dependency>
+```
+
+## 使用 RBAC 认证
+
+服务中心支持[RBAC认证](https://service-center.readthedocs.io/en/latest/user-guides/rbac.html)，服务中心开启RBAC认证之
+后，客户端调用服务中心接口都需要先获取token，保证服务的安全可信。 使用 RBAC 认证， 需要使用 2.1.3 及其以上的版本。 
+
+* 服务配置
+
+  使用 RBAC 认证，需要在配置文件中增加如下配置项， 指定连接服务中心的用户名和密码：
+
+        ```
+        servicecomb:
+          credentials:
+            account:
+              name: root   #服务中心支持的用户名
+              password: your-password  #用户名对应的密码
+            cipher: default #账号密码加解密用的算法实现类
+        ```
+
+  账号密码都是敏感信息，一般需要加密保存，使用的时候再解密，Java Chassis 提供了一个扩展机制，用户只需要实现接口
+  `org.apache.servicecomb.foundation.auth.Cipher`，并注册成Spring Bean，就会自动被使用，接口里面包含两个方法：
+  
+        ```java
+          String name();
+        
+          char[] decrypt(char[] encrypted);
+        ```
+        
+  name方法返回cipher的名称，对应 `servicecomb.credentials.cipher` 的配置，decrypt是解密接口，用户名、密码使用的时候都会调用这个方法进行解密。
+  下面给了一个最简单的base64编解码的实现示例，用户使用base64编码把账号密码配置到配置文件即可。
+  
+  ***注意***: base64 并不是安全加密算法，请勿在生产环境使用。 
+  
+        ```yaml
+        servicecomb:
+          credentials:
+            account:
+              name: cm9vdA==
+              password: eW91ci1wYXNzd29yZCA=
+            cipher: base64
+        ```
+        
+        ```java
+        import java.util.Base64;
+        
+        import org.apache.servicecomb.foundation.auth.Cipher;
+        import org.springframework.stereotype.Component;
+        
+        /**
+         * Base64解码实现
+         */
+        @Component
+        public class Base64Cipher implements Cipher {
+          @Override
+          public String name() {
+            return "base64";
+          }
+        
+          @Override
+          public char[] decrypt(char[] encrypted) {
+            return new String(Base64.getDecoder().decode(new String(encrypted))).toCharArray();
+          }
+        }
+        ```
+
+## 使用 AK/SK 认证
+
+华为云微服务引擎专业版的服务中心需要使用 AK/SK 认证， 使用 AK/SK 认证， 需要使用 2.1.3 及其以上的版本。
+AK/SK 认证需要配置如下信息：
+
+```yaml
+servciecomb:
+  credentials:
+    akskEnabled: true
+    accessKey: your access key
+    secretKey: your secrete key
+    akskCustomCipher: default # 加密算法， 和 RBAC 一样
+    project: cn-south-1 # 项目名称，根据实际情况填写
+```
+
+secreteKey 支持加密存储， 扩展方式同 RBAC 。
+
+使用AK/SK 需要下面的软件包引入：
+
+```
+  <dependency>
+    <groupId>org.apache.servicecomb</groupId>
+    <artifactId>servicestage</artifactId>
+  </dependency>
+```
+
+也可以直接依赖：
+
+```
+  <dependency>
+    <groupId>org.apache.servicecomb</groupId>
+    <artifactId>solution-basic</artifactId>
+  </dependency>
+```
+
+## 连接多个服务中心
+
+有些应用场景需要连接多个服务中心。比如一个应用系统会在不同的 region 部署，其中一个 region 的服务需要访问
+另外一个 region 的服务， 这个时候，可以连接另外 region 的服务中心，发现服务信息。 
+
+***注意:*** 连接多个服务中心指的是不同的服务中心集群，不是指一个集群内部的多个服务中心实例。 
+
+连接多个服务中心比较简单， 只需要在项目里面定义新的服务中心的配置信息，通过 spring bean 的方式注入：
+
+```java
+@Configuration
+public class ServerBServiceCenterConfiguration {
+  @Bean("serverBServiceCenterConfig")
+  public ServiceRegistryConfig serverBServiceCenterConfig() {
+    ServiceRegistryConfig config = ServiceRegistryConfig.buildFromConfiguration();
+    return ServiceRegistryConfigCustomizer.from(config)
+        .addressListFromConfiguration("servicecomb.service.registry-serverB.address").get();
+  }
+}
+```
+
+上面的代码复用了缺省服务中心的配置信息，只修改了连接地址，代码指定了下面的配置项。如果需要自定义其他配置项，可以
+通过继承 ServiceRegistryConfig 来实现。
+
+```yaml
+servicecomb:
+  service:
+    registry:
+      address: http://127.0.0.1:30100
+    registry-serverB:
+      address: http://127.0.0.1:40100
+```
+
+启用多个服务中心以后，会在不同的服务中心查找服务的实例，并对信息进行合并。 
diff --git a/java-chassis-reference/zh_CN/docs/security/rbac.md b/java-chassis-reference/zh_CN/docs/security/rbac.md
deleted file mode 100644
index 6bd4034..0000000
--- a/java-chassis-reference/zh_CN/docs/security/rbac.md
+++ /dev/null
@@ -1,71 +0,0 @@
-## 场景描述
-
-服务注册发现，服务中心需要确保服务是信任的，服务中心支持[RBAC认证](https://service-center.readthedocs.io/en/latest/user-guides/rbac.html)，服务中心开启RBAC认证之后，客户端调用服务中心接口都需要先获取token，保证服务的安全可信（需要2.1.2+版本才支持）
-
-## 服务配置
-
-* 在pom.xml中增加依赖：
-
-```
-  <dependency>
-    <groupId>org.apache.servicecomb</groupId>
-    <artifactId>solution-basic</artifactId>
-  </dependency>
-  <dependency>
-    <groupId>org.apache.servicecomb</groupId>
-    <artifactId>registry-service-center</artifactId>
-  </dependency>
-```
-
-* 在microservice.yaml中添加账号配置
-
-```
-servicecomb:
-  credentials:
-    account:
-      name: root   #服务中心支持的用户名
-      password: your-password  #用户名对应的密码
-    cipher: default #账号密码加解密用的算法实现类
-```
-
-## 账号密码加解密配置
-账号密码都是敏感信息，一般需要加密保存，使用的时候再解密，ServiceComb JavaChassis提供了一个扩展机制，用户只需要实现接口org.apache.servicecomb.foundation.auth.Cipher，并注册成Spring Bean，就会自动被使用，接口里面包含两个方法：
-```java
-  String name();
-
-  char[] decrypt(char[] encrypted);
-```
-name方法返回cipher的名称，对应servicecomb.credentials.cipher的配置，decrypt是解密接口，用户名、密码使用的时候都会调用这个方法进行解密。下面给了一个最简单的base64编解码的实现示例，用户使用base64编码把账号密码配置到配置文件即可
-```yaml
-servicecomb:
-  credentials:
-    account:
-      name: cm9vdA==
-      password: eW91ci1wYXNzd29yZCA=
-    cipher: base64
-```
-```java
-import java.util.Base64;
-
-import org.apache.servicecomb.foundation.auth.Cipher;
-import org.springframework.stereotype.Component;
-
-/**
- * Base64解码实现
- */
-@Component
-public class Base64Cipher implements Cipher {
-  @Override
-  public String name() {
-    return "base64";
-  }
-
-  @Override
-  public char[] decrypt(char[] encrypted) {
-    return new String(Base64.getDecoder().decode(new String(encrypted))).toCharArray();
-  }
-}
-```
-
-
-
diff --git a/java-chassis-reference/zh_CN/docs/toc.md b/java-chassis-reference/zh_CN/docs/toc.md
index 46e347a..556c0da 100644
--- a/java-chassis-reference/zh_CN/docs/toc.md
+++ b/java-chassis-reference/zh_CN/docs/toc.md
@@ -73,10 +73,10 @@
     * [HTTP2](transports/http2.md)
 * 多样化的服务注册与发现功能参考:
     * [注册发现说明](registry/introduction.md)
+    * [使用服务中心](registry/service-center.md)
     * [本地注册发现](registry/local-registry.md)
     * [去中心化注册发现](registry/distributed.md)
-    * [连接多个服务中心](registry/multi-registries.md)
-- 服务治理功能参考:: 
+- 服务治理功能参考:
     - [处理链介绍](references-handlers/intruduction.md)
     - [负载均衡](references-handlers/loadbalance.md)
     - [限流](references-handlers/ratelimit.md)
@@ -91,7 +91,6 @@
     - [使用TLS通信](security/tls.md)
     - [使用RSA认证](security/shi-yong-rsa-ren-zheng.md)
     - [公钥认证](references-handlers/publickey.md)
-    - [RBAC认证](security/rbac.md)
 * 管理服务配置:
     * [通用配置说明](config/general-config.md)
     * [配置注入机制](config/inject-config.md)
diff --git a/java-chassis-reference/zh_CN/mkdocs.yml b/java-chassis-reference/zh_CN/mkdocs.yml
index 10c7cba..5ee4505 100644
--- a/java-chassis-reference/zh_CN/mkdocs.yml
+++ b/java-chassis-reference/zh_CN/mkdocs.yml
@@ -18,9 +18,9 @@
     - HTTP2: transports/http2.md
 - 多样化的服务注册与发现功能参考:
     - 注册发现说明: registry/introduction.md
+    - 使用服务中心: registry/service-center.md
     - 本地注册发现: registry/local-registry.md
     - 去中心化注册发现: registry/distributed.md
-    - 连接多个服务中心: registry/multi-registries.md
 - 服务治理功能参考:
       - 处理链介绍: references-handlers/intruduction.md
       - 负载均衡: references-handlers/loadbalance.md
