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

xiaoyu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shenyu-website.git


The following commit(s) were added to refs/heads/main by this push:
     new 2bb789e9ef3 [DOC] shenyu-sdk document. (#837)
2bb789e9ef3 is described below

commit 2bb789e9ef38f4970407d33bd6f762e9ea42e811
Author: Shawn Jim <[email protected]>
AuthorDate: Tue Dec 20 00:46:38 2022 +0800

    [DOC] shenyu-sdk document. (#837)
    
    * [DOC] shenyu-sdk document.
    
    tmp commit.
    
    * [DOC] Update shenyu-sdk_process.png for shenyu-sdk document.
---
 docs/user-guide/sdk-usage/_category_.json          |   4 +
 docs/user-guide/sdk-usage/shenyu-sdk-consul.md     | 200 +++++++++++++++++++++
 docs/user-guide/sdk-usage/shenyu-sdk-etcd.md       | 180 +++++++++++++++++++
 docs/user-guide/sdk-usage/shenyu-sdk-eureka.md     | 180 +++++++++++++++++++
 docs/user-guide/sdk-usage/shenyu-sdk-nacos.md      | 181 +++++++++++++++++++
 docs/user-guide/sdk-usage/shenyu-sdk-zookeeper.md  | 175 ++++++++++++++++++
 .../current/user-guide/sdk-usage/_category_.json   |   4 +
 .../user-guide/sdk-usage/shenyu-sdk-consul.md      | 192 ++++++++++++++++++++
 .../user-guide/sdk-usage/shenyu-sdk-etcd.md        | 178 ++++++++++++++++++
 .../user-guide/sdk-usage/shenyu-sdk-eureka.md      | 176 ++++++++++++++++++
 .../user-guide/sdk-usage/shenyu-sdk-nacos.md       | 176 ++++++++++++++++++
 .../user-guide/sdk-usage/shenyu-sdk-zookeeper.md   | 175 ++++++++++++++++++
 static/img/shenyu/sdk/shenyu-sdk_process.png       | Bin 0 -> 88974 bytes
 13 files changed, 1821 insertions(+)

diff --git a/docs/user-guide/sdk-usage/_category_.json 
b/docs/user-guide/sdk-usage/_category_.json
new file mode 100644
index 00000000000..f2539153751
--- /dev/null
+++ b/docs/user-guide/sdk-usage/_category_.json
@@ -0,0 +1,4 @@
+{
+  "label": "Shenyu-Sdk Usage",
+  "position": 3
+}
diff --git a/docs/user-guide/sdk-usage/shenyu-sdk-consul.md 
b/docs/user-guide/sdk-usage/shenyu-sdk-consul.md
new file mode 100644
index 00000000000..b389adbcc84
--- /dev/null
+++ b/docs/user-guide/sdk-usage/shenyu-sdk-consul.md
@@ -0,0 +1,200 @@
+---
+title: Using Consul with Shenyu-SDK
+keywords: ["Using Shenyu-Sdk", "Consul"]
+description: Using Shenyu-Sdk
+---
+
+## Background explanation
+
+Shenyu offers Shenyu-Sdk to make it easy for services to quickly integrate 
with the Shenyu gateway. By simply depending on the SDK and doing some simple 
configuration, client services can call the gateway's exposed APIs as if they 
were calling local interfaces.
+
+<img src="/img/shenyu/sdk/shenyu-sdk_process.png" width="80%" height="50%" />
+
+The registration center supported by the gateway for client access includes 
(nacos, eureka, etcd, zookeeper, consul), and the following is the relevant 
guide for using **Zookeeper** registration center when `shenyu-bootstrap` and 
`application client` are used.
+
+## Environment preparation
+
+Refer to `Deployment` guide, and choose a way to start `shenyu-admin` and 
`shenyu-bootstrap`.
+
+## shenyu-bootstrap
+
+### Maven dependency
+
+In the gateway's `pom.xml` file, introduce the following dependencies.
+
+```xml
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-spring-boot-starter-instance</artifactId>
+    <version>${project.version}</version>
+</dependency>
+```
+
+### Edit the configuration file
+
+Add the following configuration to the gateway's `yml` configuration file.
+
+```yaml
+shenyu:
+  register:
+    enabled: true
+    registerType: consul
+    serverLists: localhost
+    props:
+      delay: 1
+      wait-time: 55
+      instanceId: shenyu-gateway
+      hostName: localhost
+      tags: test1,test2
+      preferAgentAddress: false
+      enableTagOverride: false
+
+# registerType: service registration type, fill in consul
+# serverLists: consul client agent address (sidecar deployment mode (single 
machine or cluster), can also be the address of consul server agent (can only 
connect to one consul server agent node, if it is a cluster, then there will be 
a single point of failure problem))
+# delay: the polling interval of each metadata monitoring, unit: second, 
default 1 second
+# wait-time: the waiting time of a single request for metadata monitoring 
(long polling mechanism), unit: second, default 55 seconds
+# instanceId: required for consul service, consul needs to find specific 
services through instance-id
+# name: the group name where the service is registered to consul
+# hostName: for consul registration type, fill in the address of the 
registered service instance, the address of the registered service instance in 
this registration center will not be used for client calls, so this 
configuration can be omitted, port, preferAgentAddress similarly
+# port: for consul registration type, fill in the port of the registered 
service instance
+# tags: corresponding to the tags configuration in consul configuration
+# preferAgentAddress: use the address of the agent on the consul client side 
as the address of the registered service instance, which will override the 
manual configuration of hostName
+# enableTagOverride: corresponding to the enableTagOverride configuration in 
consul configuration for detailed reference, please see the user guide> 
attribute configuration> client access configuration document
+
+# for detailed reference, please see the `user-guide> Property Config> 
Register Center Instance Config` configuration document.
+```
+
+## Client Application
+
+### Maven dependency
+
+In the `pom.xml` file of the application client, introduce the following 
dependencies.
+
+- Shenyu-Sdk Core
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-sdk-core</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-spring-boot-starter-sdk</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+</dependencies>
+```
+
+- Shenyu-Sdk http implementation
+
+> HTTP client implementation, offering okhttp and httpclient as implementation 
options. Other implementations can be created by extending the 
`AbstractShenyuSdkClient` class.
+
+```xml
+<!-- httpclient -->
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-httpclient</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+
+<!-- okhttp -->
+<!-- 
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-okhttp</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+-->
+```
+
+### Edit the configuration file
+
+Add the following configuration in the application client's `yml` 
configuration file.
+
+```yaml
+shenyu:
+  sdk:
+    enabled: true
+    register-type: consul
+    server-lists: localhost
+    props:
+      checkTtl: 5
+      token: ""
+      waitTime: 30
+      watchDelay: 5
+      tags: ""
+      port: 8500
+      retry:
+        enable: true
+        period: 100
+        maxPeriod: 1000
+        maxAttempts: 5
+      algorithm: roundRobin
+      scheme: http
+      
+# registerType: service registration type, fill in consul.
+# serverLists: consul client agent address (sidecar deployment mode (single 
machine or cluster), can also be the address of consul server agent (can only 
connect to one consul server agent node, if it is a cluster, then there will be 
a single point of failure problem)).
+# checkTtl: TTL, Default 5 seconds.
+# token: ""
+# waitTime: The waiting time for a single request for monitoring metadata 
(long polling mechanism), in seconds, with a default value of 55 seconds.
+# watchDelay: The interval duration for each polling of metadata monitoring, 
in seconds, with a default value of 1 second.
+# tags: tags for consul configure.
+# port: consul server port.
+# scheme: Request protocol.
+
+# retry Configuration related to failure retries
+# retry.period: Retry waiting time.
+# retry.maxPeriod: Maximum retry waiting time .
+# retry.maxAttempts: Maximum retry count.
+```
+ 
+
+## Writing the local interface for the SDK
+
+1. In the project startup class, annotate `@EnableShenyuClients(basePackages = 
"org.apache.shenyu.examples.sdk.http.api")`, where `basePackages` maintains the 
package location of Shenyu-Sdk's corresponding maintained gateway API interface.
+
+2. Create an interface and use the `@ShenyuClient(name = "xxx", contextId = 
"ShenyuSdkApiName")` annotation to mark it, where `name` represents the gateway 
service name. If you need to define multiple beans to maintain the gateway's 
API, you can use `contextId` as the corresponding bean alias.
+
+3. In the defined interface, add the methods of the interface to be mapped to 
the shenyu gateway, where the `value` of `@xxMapping` corresponds to the path 
of the corresponding request in the gateway.
+
+**Example**
+
+Project startup class
+
+```java
+@SpringBootApplication
+@EnableShenyuClients(basePackages = "org.apache.shenyu.examples.sdk.http.api")
+public class ShenyuSdkHttpExampleApplication {
+
+    /**
+     * main.
+     *
+     * @param args args
+     */
+    public static void main(final String[] args) {
+        SpringApplication.run(ShenyuSdkHttpExampleApplication.class, args);
+    }
+}
+```
+
+Shenyu-SDK interface
+
+```java
+@ShenyuClient(name = "shenyu-gateway", contextId = "ShenyuSdkApiName")
+public interface ShenyuHttpClientApi {
+
+    /**
+     * findById.
+     * test Get.
+     *
+     * @param id id
+     * @return SdkTestDto
+     */
+    @GetMapping("/http/shenyu/client/findById")
+    SdkTestDto findById(@RequestParam("id") String id);
+}
+```
+
+For more information, refer to the sample project 
[shenyu-examples-sdk](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-sdk)
\ No newline at end of file
diff --git a/docs/user-guide/sdk-usage/shenyu-sdk-etcd.md 
b/docs/user-guide/sdk-usage/shenyu-sdk-etcd.md
new file mode 100644
index 00000000000..14cd340c4d3
--- /dev/null
+++ b/docs/user-guide/sdk-usage/shenyu-sdk-etcd.md
@@ -0,0 +1,180 @@
+---
+title: Using Etcd with Shenyu-SDK
+keywords: ["Using Shenyu-Sdk", "Etcd"]
+description: Using Shenyu-Sdk
+---
+
+## Background explanation
+
+Shenyu offers Shenyu-Sdk to make it easy for services to quickly integrate 
with the Shenyu gateway. By simply depending on the SDK and doing some simple 
configuration, client services can call the gateway's exposed APIs as if they 
were calling local interfaces.
+
+<img src="/img/shenyu/sdk/shenyu-sdk_process.png" width="80%" height="50%" />
+
+The registration center supported by the gateway for client access includes 
(nacos, eureka, etcd, zookeeper, consul), and the following is the relevant 
guide for using **etcd** registration center when `shenyu-bootstrap` and 
`application client` are used.
+
+## Environment preparation
+
+Refer to `Deployment` guide, and choose a way to start `shenyu-admin` and 
`shenyu-bootstrap`.
+
+## shenyu-bootstrap
+
+### Maven dependency
+
+In the gateway's `pom.xml` file, introduce the following dependencies.
+
+```xml
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-spring-boot-starter-instance</artifactId>
+    <version>${project.version}</version>
+</dependency>
+```
+
+### Edit the configuration file
+
+Add the following configuration to the gateway's `yml` configuration file.
+
+```yaml
+shenyu:
+  register:
+    enabled: true
+    registerType: etcd
+    serverLists: http://localhost:2379
+    props:
+      appName: http
+      port: xx
+      
+# registerType: service registration type, fill in etcd.
+# serverList: Enter the etcd address(es), separated by commas in English.
+# appName:Your application name. If not configured, the default value will be 
taken from spring.application.name.
+# port: Your project's startup port, currently springmvc/tars/grpc needs to be 
filled in.
+
+# for detailed reference, please see the `user-guide> Property Config> 
Register Center Instance Config` configuration document.
+```
+
+## Client Application
+
+### Maven dependency
+
+In the `pom.xml` file of the application client, introduce the following 
dependencies.
+
+- Shenyu-Sdk Core
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-sdk-core</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-spring-boot-starter-sdk</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+</dependencies>
+```
+
+- Shenyu-Sdk http implementation
+
+> HTTP client implementation, offering okhttp and httpclient as implementation 
options. Other implementations can be created by extending the 
`AbstractShenyuSdkClient` class.
+
+```xml
+<!-- httpclient -->
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-httpclient</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+
+<!-- okhttp -->
+<!-- 
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-okhttp</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+-->
+```
+
+### Edit the configuration file
+
+Add the following configuration in the application client's `yml` 
configuration file.
+
+```yaml
+shenyu:
+  sdk:
+    enabled: true
+    register-type: etcd
+    server-lists: http://localhost:2379
+    props:
+      etcdTimeout: 3000
+      etcdTTL: 5
+      retry:
+        enable: true
+        period: 100
+        maxPeriod: 1000
+        maxAttempts: 5
+      algorithm: roundRobin
+      scheme: http
+
+# register-type: service registration type, fill in etcd.
+# server-lists: Enter the etcd address(es), separated by commas in English.
+# etcdTimeout: Request timeout time, in milliseconds, default 3000
+# etcdTTL: Lease TTL, default 5 seconds.
+# scheme: Request protocol.
+
+# retry: Configuration related to failure retries.
+# retry.period: Retry waiting time.
+# retry.maxPeriod: Maximum retry waiting time .
+# retry.maxAttempts: Maximum retry count.
+``` 
+
+## Writing the local interface for the SDK
+
+1. In the project startup class, annotate `@EnableShenyuClients(basePackages = 
"org.apache.shenyu.examples.sdk.http.api")`, where `basePackages` maintains the 
package location of Shenyu-Sdk's corresponding maintained gateway API interface.
+
+2. Create an interface and use the `@ShenyuClient(name = "xxx", contextId = 
"ShenyuSdkApiName")` annotation to mark it, where `name` represents the gateway 
service name. If you need to define multiple beans to maintain the gateway's 
API, you can use `contextId` as the corresponding bean alias.
+
+3. In the defined interface, add the methods of the interface to be mapped to 
the shenyu gateway, where the `value` of `@xxMapping` corresponds to the path 
of the corresponding request in the gateway.
+
+**Example**
+
+Project startup class
+
+```java
+@SpringBootApplication
+@EnableShenyuClients(basePackages = "org.apache.shenyu.examples.sdk.http.api")
+public class ShenyuSdkHttpExampleApplication {
+
+    /**
+     * main.
+     *
+     * @param args args
+     */
+    public static void main(final String[] args) {
+        SpringApplication.run(ShenyuSdkHttpExampleApplication.class, args);
+    }
+}
+```
+
+Shenyu-SDK interface
+
+```java
+@ShenyuClient(name = "shenyu-gateway", contextId = "ShenyuSdkApiName")
+public interface ShenyuHttpClientApi {
+
+    /**
+     * findById.
+     * test Get.
+     *
+     * @param id id
+     * @return SdkTestDto
+     */
+    @GetMapping("/http/shenyu/client/findById")
+    SdkTestDto findById(@RequestParam("id") String id);
+}
+```
+
+For more information, refer to the sample project 
[shenyu-examples-sdk](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-sdk)
\ No newline at end of file
diff --git a/docs/user-guide/sdk-usage/shenyu-sdk-eureka.md 
b/docs/user-guide/sdk-usage/shenyu-sdk-eureka.md
new file mode 100644
index 00000000000..f76d1e9d2f3
--- /dev/null
+++ b/docs/user-guide/sdk-usage/shenyu-sdk-eureka.md
@@ -0,0 +1,180 @@
+---
+title: Using Eureka with Shenyu-SDK
+keywords: ["Using Shenyu-Sdk", "Eureka"]
+description: Using Shenyu-Sdk
+---
+
+## Background explanation
+
+Shenyu offers Shenyu-Sdk to make it easy for services to quickly integrate 
with the Shenyu gateway. By simply depending on the SDK and doing some simple 
configuration, client services can call the gateway's exposed APIs as if they 
were calling local interfaces.
+
+<img src="/img/shenyu/sdk/shenyu-sdk_process.png" width="80%" height="50%" />
+
+The registration center supported by the gateway for client access includes 
(nacos, eureka, etcd, zookeeper, consul), and the following is the relevant 
guide for using **eureka** registration center when `shenyu-bootstrap` and 
`application client` are used.
+
+## Environment preparation
+
+Refer to `Deployment` guide, and choose a way to start `shenyu-admin` and 
`shenyu-bootstrap`.
+
+## shenyu-bootstrap
+
+### Maven dependency
+
+In the gateway's `pom.xml` file, introduce the following dependencies.
+
+```xml
+<dependency>
+    <groupId>org.springframework.cloud</groupId>
+    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+    <version>${eureka-client.version}</version>
+    <exclusions>
+        <exclusion>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
+        </exclusion>
+    </exclusions>
+</dependency>
+```
+
+### Edit the configuration file
+
+Add the following configuration to the gateway's `yml` configuration file.
+
+```yaml
+spring:
+  cloud:
+    discovery:
+      enabled: true # Enable service discovery
+  
+eureka:
+  client:
+    enabled: true
+    serviceUrl:
+      defaultZone: http://localhost:8761/eureka/ # Enter your eureka registry 
center address here
+  instance:
+    prefer-ip-address: true
+```
+
+## Client Application
+
+### Maven dependency
+
+In the `pom.xml` file of the application client, introduce the following 
dependencies.
+
+- Shenyu-Sdk Core
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-sdk-core</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-spring-boot-starter-sdk</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+</dependencies>
+```
+
+- Shenyu-Sdk http implementation
+
+> HTTP client implementation, offering okhttp and httpclient as implementation 
options. Other implementations can be created by extending the 
`AbstractShenyuSdkClient` class.
+
+```xml
+<!-- httpclient -->
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-httpclient</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+
+<!-- okhttp -->
+<!-- 
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-okhttp</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+-->
+```
+
+### Edit the configuration file
+
+Add the following configuration in the application client's `yml` 
configuration file.
+
+```yaml
+shenyu:
+  sdk:
+    enabled: true
+    register-type: eureka 
+    server-lists: http://localhost:8761/eureka/
+    props:
+      retry:
+        enable: true
+        period: 100
+        maxPeriod: 1000
+        maxAttempts: 5
+      algorithm: roundRobin
+      scheme: http
+      
+# registerType: service registration type, fill in eureka
+# serverList: Enter the eureka server address(es), separated by commas in 
English.
+# scheme: Request protocol.
+
+# retry: Configuration related to failure retries.
+# retry.period: Retry waiting time.
+# retry.maxPeriod: Maximum retry waiting time .
+# retry.maxAttempts: Maximum retry count.
+```
+
+
+## Writing the local interface for the SDK
+
+1. In the project startup class, annotate `@EnableShenyuClients(basePackages = 
"org.apache.shenyu.examples.sdk.http.api")`, where `basePackages` maintains the 
package location of Shenyu-Sdk's corresponding maintained gateway API interface.
+
+2. Create an interface and use the `@ShenyuClient(name = "xxx", contextId = 
"ShenyuSdkApiName")` annotation to mark it, where `name` represents the gateway 
service name. If you need to define multiple beans to maintain the gateway's 
API, you can use `contextId` as the corresponding bean alias.
+
+3. In the defined interface, add the methods of the interface to be mapped to 
the shenyu gateway, where the `value` of `@xxMapping` corresponds to the path 
of the corresponding request in the gateway.
+
+**Example**
+
+Project startup class
+
+```java
+@SpringBootApplication
+@EnableShenyuClients(basePackages = "org.apache.shenyu.examples.sdk.http.api")
+public class ShenyuSdkHttpExampleApplication {
+
+    /**
+     * main.
+     *
+     * @param args args
+     */
+    public static void main(final String[] args) {
+        SpringApplication.run(ShenyuSdkHttpExampleApplication.class, args);
+    }
+}
+```
+
+Shenyu-SDK interface
+
+```java
+@ShenyuClient(name = "shenyu-bootstrap", contextId = "ShenyuSdkApiName")
+public interface ShenyuHttpClientApi {
+
+    /**
+     * findById.
+     * test Get.
+     *
+     * @param id id
+     * @return SdkTestDto
+     */
+    @GetMapping("/http/shenyu/client/findById")
+    SdkTestDto findById(@RequestParam("id") String id);
+}
+```
+
+For more information, refer to the sample project 
[shenyu-examples-sdk](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-sdk)
\ No newline at end of file
diff --git a/docs/user-guide/sdk-usage/shenyu-sdk-nacos.md 
b/docs/user-guide/sdk-usage/shenyu-sdk-nacos.md
new file mode 100644
index 00000000000..948408ccafd
--- /dev/null
+++ b/docs/user-guide/sdk-usage/shenyu-sdk-nacos.md
@@ -0,0 +1,181 @@
+---
+title: Using Nacos with Shenyu-SDK
+keywords: ["Using Shenyu-Sdk", "Nacos"]
+description: Using Shenyu-Sdk
+---
+
+## Background explanation
+
+Shenyu offers Shenyu-Sdk to make it easy for services to quickly integrate 
with the Shenyu gateway. By simply depending on the SDK and doing some simple 
configuration, client services can call the gateway's exposed APIs as if they 
were calling local interfaces.
+
+<img src="/img/shenyu/sdk/shenyu-sdk_process.png" width="80%" height="50%" />
+
+The registration center supported by the gateway for client access includes 
(nacos, eureka, etcd, zookeeper, consul), and the following is the relevant 
guide for using **nacos** registration center when `shenyu-bootstrap` and 
`application client` are used.
+
+## Environment preparation
+
+Refer to `Deployment` guide, and choose a way to start `shenyu-admin` and 
`shenyu-bootstrap`.
+
+## shenyu-bootstrap
+
+### Maven dependency
+
+In the gateway's `pom.xml` file, introduce the following dependencies.
+
+```xml
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-spring-boot-starter-instance</artifactId>
+    <version>${project.version}</version>
+</dependency>
+```
+
+### Edit the configuration file
+
+Add the following configuration to the gateway's `yml` configuration file.
+
+```yaml
+spring:
+  application:
+    name: shenyu-bootstrap
+  cloud:
+    discovery:
+      enabled: true
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848 # Enter the nacos address(es), separated 
by commas in English.
+        enabled: true
+        namespace: ShenyuRegisterCenter # nacos namespace ID
+        # if nacos authentication is enabled, the following parameters must be 
configured
+        username: nacos # Authentication username
+        password: nacos # Authentication password
+```
+
+## Client Application
+
+### Maven dependency
+
+In the `pom.xml` file of the application client, introduce the following 
dependencies.
+
+- Shenyu-Sdk Core
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-sdk-core</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-spring-boot-starter-sdk</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+</dependencies>
+```
+
+- Shenyu-Sdk http implementation
+
+> HTTP client implementation, offering okhttp and httpclient as implementation 
options. Other implementations can be created by extending the 
`AbstractShenyuSdkClient` class.
+
+```xml
+<!-- httpclient -->
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-httpclient</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+
+<!-- okhttp -->
+<!-- 
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-okhttp</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+-->
+```
+
+### Edit the configuration file
+
+Add the following configuration in the application client's `yml` 
configuration file.
+
+```yaml
+shenyu:
+  sdk:
+    enabled: true
+    register-type: nacos 
+    server-lists: localhost:2181
+    props:
+      nacosNameSpace: ShenyuRegisterCenter
+      username: nacos
+      password: nacos
+      retry:
+        enable: true
+        period: 100
+        maxPeriod: 1000
+        maxAttempts: 5
+      algorithm: roundRobin
+      scheme: http
+      
+# registerType: service registration type, fill in nacos.
+# serverList: Enter the nacos address(es), separated by commas in English.
+# nacosNameSpace: nacos namespace ID
+# username: Authentication username
+# password: Authentication password
+# scheme: Request protocol.
+
+# retry: Configuration related to failure retries.
+# retry.period: Retry waiting time.
+# retry.maxPeriod: Maximum retry waiting time .
+# retry.maxAttempts: Maximum retry count.
+```
+
+## Writing the local interface for the SDK
+
+1. In the project startup class, annotate `@EnableShenyuClients(basePackages = 
"org.apache.shenyu.examples.sdk.http.api")`, where `basePackages` maintains the 
package location of Shenyu-Sdk's corresponding maintained gateway API interface.
+
+2. Create an interface and use the `@ShenyuClient(name = "xxx", contextId = 
"ShenyuSdkApiName")` annotation to mark it, where `name` represents the gateway 
service name. If you need to define multiple beans to maintain the gateway's 
API, you can use `contextId` as the corresponding bean alias.
+
+3. In the defined interface, add the methods of the interface to be mapped to 
the shenyu gateway, where the `value` of `@xxMapping` corresponds to the path 
of the corresponding request in the gateway.
+
+**Example**
+
+Project startup class
+
+```java
+@SpringBootApplication
+@EnableShenyuClients(basePackages = "org.apache.shenyu.examples.sdk.http.api")
+public class ShenyuSdkHttpExampleApplication {
+
+    /**
+     * main.
+     *
+     * @param args args
+     */
+    public static void main(final String[] args) {
+        SpringApplication.run(ShenyuSdkHttpExampleApplication.class, args);
+    }
+}
+```
+
+Shenyu-SDK interface
+
+```java
+@ShenyuClient(name = "shenyu-bootstrap", contextId = "ShenyuSdkApiName")
+public interface ShenyuHttpClientApi {
+
+    /**
+     * findById.
+     * test Get.
+     *
+     * @param id id
+     * @return SdkTestDto
+     */
+    @GetMapping("/http/shenyu/client/findById")
+    SdkTestDto findById(@RequestParam("id") String id);
+}
+```
+
+For more information, refer to the sample project 
[shenyu-examples-sdk](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-sdk)
\ No newline at end of file
diff --git a/docs/user-guide/sdk-usage/shenyu-sdk-zookeeper.md 
b/docs/user-guide/sdk-usage/shenyu-sdk-zookeeper.md
new file mode 100644
index 00000000000..0247086b289
--- /dev/null
+++ b/docs/user-guide/sdk-usage/shenyu-sdk-zookeeper.md
@@ -0,0 +1,175 @@
+---
+title: Using Zookeeper with Shenyu-SDK
+keywords: ["Using Shenyu-Sdk", "zookeeper"]
+description: Using Shenyu-Sdk
+---
+
+## Background explanation
+
+Shenyu offers Shenyu-Sdk to make it easy for services to quickly integrate 
with the Shenyu gateway. By simply depending on the SDK and doing some simple 
configuration, client services can call the gateway's exposed APIs as if they 
were calling local interfaces.
+
+<img src="/img/shenyu/sdk/shenyu-sdk_process.png" width="80%" height="50%" />
+
+The registration center supported by the gateway for client access includes 
(nacos, eureka, etcd, zookeeper, consul), and the following is the relevant 
guide for using **Zookeeper** registration center when `shenyu-bootstrap` and 
`application client` are used.
+
+## Environment preparation
+
+Refer to `Deployment` guide, and choose a way to start `shenyu-admin` and 
`shenyu-bootstrap`.
+
+## shenyu-bootstrap
+
+### Maven dependency
+
+In the gateway's `pom.xml` file, introduce the following dependencies.
+
+```xml
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-spring-boot-starter-instance</artifactId>
+    <version>${project.version}</version>
+</dependency>
+```
+
+### Edit the configuration file
+
+Add the following configuration to the gateway's `yml` configuration file.
+
+```yaml
+shenyu:
+  register:
+    enabled: true
+    registerType: zookeeper
+    serverLists: localhost:2181
+    props:
+      appName: http
+      port: xx
+# registerType: service registration type, fill in zookeeper.
+# serverList: Enter the zookeeper address(es), separated by commas in English.
+# appName:Your application name. If not configured, the default value will be 
taken from spring.application.name.
+# port: Your project's startup port, currently springmvc/tars/grpc needs to be 
filled in.
+
+# for detailed reference, please see the `user-guide> Property Config> 
Register Center Instance Config` configuration document.
+```
+
+## Client Application
+
+### Maven dependency
+
+In the `pom.xml` file of the application client, introduce the following 
dependencies.
+
+- Shenyu-Sdk Core
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-sdk-core</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-spring-boot-starter-sdk</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+</dependencies>
+```
+
+- Shenyu-Sdk http implementation
+
+> HTTP client implementation, offering okhttp and httpclient as implementation 
options. Other implementations can be created by extending the 
`AbstractShenyuSdkClient` class.
+
+```xml
+<!-- httpclient -->
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-httpclient</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+
+<!-- okhttp -->
+<!-- 
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-okhttp</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+-->
+```
+
+### Edit the configuration file
+
+Add the following configuration in the application client's `yml` 
configuration file.
+
+```yaml
+shenyu:
+  sdk:
+    enabled: true
+    register-type: zookeeper 
+    server-lists: localhost:2181
+    props:
+      retry:
+        enable: true
+        period: 100
+        maxPeriod: 1000
+        maxAttempts: 5
+      algorithm: roundRobin
+      scheme: http
+
+# register-type: service registration type, fill in zookeeper.
+# server-lists: Enter the zookeeper address(es), separated by commas in 
English.
+# scheme: Request protocol.
+
+# retry: Configuration related to failure retries.
+# retry.period: Retry waiting time.
+# retry.maxPeriod: Maximum retry waiting time .
+# retry.maxAttempts: Maximum retry count.
+```
+
+## Writing the local interface for the SDK
+
+1. In the project startup class, annotate `@EnableShenyuClients(basePackages = 
"org.apache.shenyu.examples.sdk.http.api")`, where `basePackages` maintains the 
package location of Shenyu-Sdk's corresponding maintained gateway API interface.
+
+2. Create an interface and use the `@ShenyuClient(name = "xxx", contextId = 
"ShenyuSdkApiName")` annotation to mark it, where `name` represents the gateway 
service name. If you need to define multiple beans to maintain the gateway's 
API, you can use `contextId` as the corresponding bean alias.
+
+3. In the defined interface, add the methods of the interface to be mapped to 
the shenyu gateway, where the `value` of `@xxMapping` corresponds to the path 
of the corresponding request in the gateway.
+
+**Example**
+
+Project startup class
+
+```java
+@SpringBootApplication
+@EnableShenyuClients(basePackages = "org.apache.shenyu.examples.sdk.http.api")
+public class ShenyuSdkHttpExampleApplication {
+
+    /**
+     * main.
+     *
+     * @param args args
+     */
+    public static void main(final String[] args) {
+        SpringApplication.run(ShenyuSdkHttpExampleApplication.class, args);
+    }
+}
+```
+
+Shenyu-SDK interface
+
+```java
+@ShenyuClient(name = "shenyu-gateway", contextId = "ShenyuSdkApiName")
+public interface ShenyuHttpClientApi {
+
+    /**
+     * findById.
+     * test Get.
+     *
+     * @param id id
+     * @return SdkTestDto
+     */
+    @GetMapping("/http/shenyu/client/findById")
+    SdkTestDto findById(@RequestParam("id") String id);
+}
+```
+
+For more information, refer to the sample project 
[shenyu-examples-sdk](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-sdk)
\ No newline at end of file
diff --git 
a/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/_category_.json
 
b/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/_category_.json
new file mode 100644
index 00000000000..f5623cb13fb
--- /dev/null
+++ 
b/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/_category_.json
@@ -0,0 +1,4 @@
+{
+  "label": "Shenyu-Sdk 接入",
+  "position": 3
+}
diff --git 
a/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-consul.md
 
b/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-consul.md
new file mode 100644
index 00000000000..860b870f200
--- /dev/null
+++ 
b/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-consul.md
@@ -0,0 +1,192 @@
+---
+title: 使用Consul接入
+keywords: ["Sdk 使用", "Consul"]
+description: Sdk使用
+---
+
+## 背景说明
+Shenyu提供了Shenyu-Sdk方便让服务能够快速接入shenyu网关, 客户端服务只需要依赖该sdk, 并做些简单配置, 
即可类似调用本地接口一样调用网关暴露的API。
+
+<img src="/img/shenyu/sdk/shenyu-sdk_process.png" width="80%" height="50%" />
+
+客户端接入网关的注册中心支持(nacos、eureka、etcd、zookeeper、consul),下面为`shenyu-bootstrap`及`应用客户端`使用**Zookeeper**注册中心时的相关指引。
+
+## 环境准备
+需要参考 `运维部署` , 选择一种方式启动`shenyu-admin`及`shenyu-bootstrap`.
+
+## shenyu-bootstrap
+
+### 添加Maven依赖
+
+在网关的`pom.xml`文件中引入如下依赖.
+
+```xml
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-spring-boot-starter-instance</artifactId>
+    <version>${project.version}</version>
+</dependency>
+```
+
+### 配置文件调整
+
+在网关的`yml`配置文件中添加如下配置.
+
+```yaml
+shenyu:
+  register:
+    enabled: true
+    registerType: consul
+    serverLists: localhost
+    props:
+      delay: 1
+      wait-time: 55
+      instanceId: shenyu-gateway
+      hostName: localhost
+      tags: test1,test2
+      preferAgentAddress: false
+      enableTagOverride: false
+
+# registerType: 服务注册类型,填写 consul
+# serverLists: consul client agent地址(sidecar模式部署(单机或者集群),也可以是consul server 
agent的地址(只能连接一个consul server agent节点,如果是集群,那么会存在单点故障问题))
+# delay: 对Metadata的监控每次轮询的间隔时长,单位为秒,默认1秒
+# wait-time: 对Metadata的监控单次请求的等待时间(长轮询机制),单位为秒,默认55秒
+# instanceId: consul服务必填,consul需要通过instance-id找到具体服务
+# name 服务注册到consul时所在的组名
+# hostName: 为 consul 注册类型时,填写 注册服务实例的 地址, 
该注册中心注册的服务实例地址,并不会用于客户端的调用,所以该配置可以不填,port,preferAgentAddress同理
+# port: 为 consul 注册类型时,填写 注册服务实例的 端口
+# tags: 对应consul配置中的tags配置
+# 
preferAgentAddress:使用consul客户端侧的agent对应的address作为注册服务实例的address,会覆盖hostName的手动配置
+# enableTagOverride:对应consul配置中的enableTagOverride配置
+
+# 详细参考`用户指南>属性配置>客户端接入配置`文档 
+```
+
+## 应用客户端
+
+### 添加Maven依赖
+
+在应用客户端的`pom.xml`文件中引入如下依赖.
+
+- Shenyu-Sdk 核心包
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-sdk-core</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-spring-boot-starter-sdk</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+</dependencies>
+```
+
+- Shenyu-Sdk http实现包
+
+> http客户端实现, 目前提供实现okhttp, httpclient. 其他客户端实现可继承`AbstractShenyuSdkClient`实现。
+
+```xml
+<!-- httpclient -->
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-httpclient</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+
+<!-- okhttp -->
+<!-- 
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-okhttp</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+-->
+```
+
+### 配置文件调整
+
+在应用客户端的`yml`配置文件中添加如下配置.
+
+```yaml
+shenyu:
+  sdk:
+    enabled: true
+    register-type: consul #zookeeper #local #etcd #nacos #consul
+    server-lists: localhost #localhost:2181 #http://localhost:9095 
#http://localhost:2379 #localhost:8848
+    props:
+      checkTtl: 5
+      token: ""
+      waitTime: 30
+      watchDelay: 5
+      tags: ""
+      port: 8500
+      retry:
+        enable: true
+        period: 100
+        maxPeriod: 1000
+        maxAttempts: 5
+      scheme: http
+# register-type : 服务注册类型,填写 consul
+# server-lists: 为consul注册类型时,填写consul地址,多个地址用英文逗号分隔
+# checkTtl: TTL, 默认5秒
+# token: ""
+# waitTime: 对Metadata的监控单次请求的等待时间(长轮询机制),单位为秒,默认55秒
+# watchDelay: 对Metadata的监控每次轮询的间隔时长,单位为秒,默认1秒
+# tags: 对应consul配置中的tags配置
+# port: consul 服务端口
+# retry 失败重试相关配置
+# retry.period: 重试等待时间
+# retry.maxPeriod: 最大重试等待时间 
+# retry.maxAttempts: 最大重试次数
+# scheme: 请求协议头
+``` 
+
+## 本地接口配置
+
+1. 在项目启动类上标注`@EnableShenyuClients(basePackages = 
"org.apache.shenyu.examples.sdk.http.api")`, 
其中`basePackages`中维护的是Shenyu-Sdk对应维护网关API接口的所在包位置.
+
+2. 创建interface并使用`@ShenyuClient(name = "xxx", contextId = 
"ShenyuSdkApiName")`注解标注, 其中`name`表示网关服务名.假如你需要定义多个bean来维护网关的API, 
可以使用`contextId`作为对应的bean别名. 
+
+3. 在定义接口中添加所要映射shenyu网关中的接口方法, 其中`@xxMapping`中的`value`对应值是网关中对应请求的路径。
+
+**示例**
+
+项目启动类
+```java
+@SpringBootApplication
+@EnableShenyuClients(basePackages = "org.apache.shenyu.examples.sdk.http.api")
+public class ShenyuSdkHttpExampleApplication {
+
+    /**
+     * main.
+     *
+     * @param args args
+     */
+    public static void main(final String[] args) {
+        SpringApplication.run(ShenyuSdkHttpExampleApplication.class, args);
+    }
+}
+```
+
+网关API接口
+```java
+@ShenyuClient(name = "shenyu-gateway", contextId = "ShenyuSdkApiName")
+public interface ShenyuHttpClientApi {
+
+    /**
+     * findById.
+     * test Get.
+     *
+     * @param id id
+     * @return SdkTestDto
+     */
+    @GetMapping("/http/shenyu/client/findById")
+    SdkTestDto findById(@RequestParam("id") String id);
+}
+```
+
+更多可参考示例工程 
[shenyu-examples-sdk](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-sdk)
\ No newline at end of file
diff --git 
a/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-etcd.md
 
b/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-etcd.md
new file mode 100644
index 00000000000..bc307ced77d
--- /dev/null
+++ 
b/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-etcd.md
@@ -0,0 +1,178 @@
+---
+title: 使用Etcd接入
+keywords: ["Sdk 使用", "Etcd"]
+description: Sdk使用
+---
+
+## 背景说明
+Shenyu提供了Shenyu-Sdk方便让服务能够快速接入shenyu网关, 客户端服务只需要依赖该sdk, 并做些简单配置, 
即可类似调用本地接口一样调用网关暴露的API。
+
+<img src="/img/shenyu/sdk/shenyu-sdk_process.png" width="80%" height="50%" />
+
+客户端接入网关的注册中心支持(nacos、eureka、etcd、zookeeper、consul),下面为`shenyu-bootstrap`及`应用客户端`使用**Zookeeper**注册中心时的相关指引。
+
+## 环境准备
+需要参考 `运维部署` , 选择一种方式启动`shenyu-admin`及`shenyu-bootstrap`.
+
+## shenyu-bootstrap
+
+### 添加Maven依赖
+
+在网关的`pom.xml`文件中引入如下依赖.
+
+```xml
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-spring-boot-starter-instance</artifactId>
+    <version>${project.version}</version>
+</dependency>
+```
+
+### 配置文件调整
+
+在网关的`yml`配置文件中添加如下配置.
+
+```yaml
+shenyu:
+  register:
+    enabled: true
+    registerType: etcd
+    serverLists: http://localhost:2379
+    props:
+      contextPath: /http
+      appName: http
+      port: 8189
+      isFull: false
+# registerType : 服务注册类型,填写 etcd
+# serverList: 为etcd注册类型时,填写etcd地址,多个地址用英文逗号分隔
+# port: 你本项目的启动端口,目前springmvc/tars/grpc需要进行填写
+# contextPath: 为你的这个mvc项目在shenyu网关的路由前缀, 比如/order ,/product 
等等,网关会根据你的这个前缀来进行路由.
+# appName:你的应用名称,不配置的话,会默认取 `spring.application.name` 的值
+# isFull: 设置true 
代表代理你的整个服务,false表示代理你其中某几个controller;目前适用于springmvc/springcloud
+
+# 详细参考`用户指南>属性配置>客户端接入配置`文档 
+```
+
+## 应用客户端
+
+### 添加Maven依赖
+
+在应用客户端的`pom.xml`文件中引入如下依赖.
+
+- Shenyu-Sdk 核心包
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-sdk-core</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-spring-boot-starter-sdk</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+</dependencies>
+```
+
+- Shenyu-Sdk http实现包
+
+> http客户端实现, 目前提供实现okhttp, httpclient. 其他客户端实现可继承`AbstractShenyuSdkClient`实现。
+
+```xml
+<!-- httpclient -->
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-httpclient</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+
+<!-- okhttp -->
+<!-- 
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-okhttp</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+-->
+```
+
+### 配置文件调整
+
+在应用客户端的`yml`配置文件中添加如下配置.
+
+```yaml
+shenyu:
+  sdk:
+    enabled: true
+    register-type: etcd
+    server-lists: http://localhost:2379
+    props:
+      etcdTimeout: 3000
+      etcdTTL: 5
+      retry:
+        enable: true
+        period: 100
+        maxPeriod: 1000
+        maxAttempts: 5
+      algorithm: roundRobin
+      scheme: http
+
+# register-type : 服务注册类型,填写 etcd
+# server-lists: 为etcd注册类型时,填写etcd地址,多个地址用英文逗号分隔
+# etcdTimeout: 请求超时时间, 单位毫秒, 默认3000
+# etcdTTL: 租约TTL, 默认5秒
+# retry 失败重试相关配置
+# retry.period: 重试等待时间
+# retry.maxPeriod: 最大重试等待时间 
+# retry.maxAttempts: 最大重试次数
+# algorithm: 负载均衡
+# scheme: 请求协议头
+``` 
+
+## 本地接口配置
+
+1. 在项目启动类上标注`@EnableShenyuClients(basePackages = 
"org.apache.shenyu.examples.sdk.http.api")`, 
其中`basePackages`中维护的是Shenyu-Sdk对应维护网关API接口的所在包位置.
+
+2. 创建interface并使用`@ShenyuClient(name = "xxx", contextId = 
"ShenyuSdkApiName")`注解标注, 其中`name`表示网关服务名.假如你需要定义多个bean来维护网关的API, 
可以使用`contextId`作为对应的bean别名. 
+
+3. 在定义接口中添加所要映射shenyu网关中的接口方法, 其中`@xxMapping`中的`value`对应值是网关中对应请求的路径。
+
+**示例**
+
+项目启动类
+```java
+@SpringBootApplication
+@EnableShenyuClients(basePackages = "org.apache.shenyu.examples.sdk.http.api")
+public class ShenyuSdkHttpExampleApplication {
+
+    /**
+     * main.
+     *
+     * @param args args
+     */
+    public static void main(final String[] args) {
+        SpringApplication.run(ShenyuSdkHttpExampleApplication.class, args);
+    }
+}
+```
+
+网关API接口
+```java
+@ShenyuClient(name = "shenyu-gateway", contextId = "ShenyuSdkApiName")
+public interface ShenyuHttpClientApi {
+
+    /**
+     * findById.
+     * test Get.
+     *
+     * @param id id
+     * @return SdkTestDto
+     */
+    @GetMapping("/http/shenyu/client/findById")
+    SdkTestDto findById(@RequestParam("id") String id);
+}
+```
+
+更多可参考示例工程 
[shenyu-examples-sdk](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-sdk)
\ No newline at end of file
diff --git 
a/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-eureka.md
 
b/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-eureka.md
new file mode 100644
index 00000000000..c9cb6d2d56f
--- /dev/null
+++ 
b/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-eureka.md
@@ -0,0 +1,176 @@
+---
+title: 使用Eureka接入
+keywords: ["Sdk 使用", "Eureka"]
+description: Sdk使用
+---
+
+## 背景说明
+Shenyu提供了Shenyu-Sdk方便让服务能够快速接入shenyu网关, 客户端服务只需要依赖该sdk, 并做些简单配置, 
即可类似调用本地接口一样调用网关暴露的API。
+
+<img src="/img/shenyu/sdk/shenyu-sdk_process.png" width="80%" height="50%" />
+
+客户端接入网关时可使用注册中心做服务发现,支持的注册中心有`nacos、eureka、etcd、zookeeper、consul`, 
下面为`shenyu-bootstrap`及`应用客户端`使用**eureka**为注册中心时的相关指引。
+
+## 环境准备
+需要参考 `运维部署` , 选择一种方式启动`shenyu-admin`及`shenyu-bootstrap`.
+
+## shenyu-bootstrap
+
+### 添加Maven依赖
+
+在网关的`pom.xml`文件中引入如下依赖.
+
+```xml
+<dependency>
+    <groupId>org.springframework.cloud</groupId>
+    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+    <version>${eureka-client.version}</version>
+    <exclusions>
+        <exclusion>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
+        </exclusion>
+    </exclusions>
+</dependency>
+```
+
+### 配置文件调整
+
+在网关的`yml`配置文件中添加如下配置.
+
+```yaml
+spring:
+  cloud:
+    discovery:
+      enabled: true # 启用服务发现
+  
+eureka:
+  client:
+    enabled: true
+    serviceUrl:
+      defaultZone: http://localhost:8761/eureka/ # 此处填你的eureka注册中心地址
+  instance:
+    prefer-ip-address: true
+```
+
+## 应用客户端
+
+### 添加Maven依赖
+
+在应用客户端的`pom.xml`文件中引入如下依赖.
+
+- Shenyu-Sdk 核心包
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-sdk-core</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-spring-boot-starter-sdk</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+</dependencies>
+```
+
+- Shenyu-Sdk http实现包
+
+> http客户端实现, 目前提供实现okhttp, httpclient. 其他客户端实现可继承`AbstractShenyuSdkClient`实现。
+
+```xml
+<!-- httpclient -->
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-httpclient</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+
+<!-- okhttp -->
+<!-- 
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-okhttp</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+-->
+```
+
+### 配置文件调整
+
+在应用客户端的`yml`配置文件中添加如下配置.
+
+```yaml
+shenyu:
+  sdk:
+    enabled: true
+    register-type: eureka 
+    server-lists: http://localhost:8761/eureka/
+    props:
+      retry:
+        enable: true
+        period: 100
+        maxPeriod: 1000
+        maxAttempts: 5
+      algorithm: roundRobin
+      scheme: http
+      
+# registerType : 服务注册类型,填写 eureka
+# serverList: 为eureka注册类型时,配置成你的eureka注册中心地址,集群环境请使用(,)分隔
+# retry 失败重试相关配置
+# retry.period: 重试等待时间
+# retry.maxPeriod: 最大重试等待时间 
+# retry.maxAttempts: 最大重试次数
+# algorithm: 负载均衡
+# scheme: 请求协议头
+```
+
+
+## 本地接口配置
+
+1. 在项目启动类上标注`@EnableShenyuClients(basePackages = 
"org.apache.shenyu.examples.sdk.http.api")`, 
其中`basePackages`中维护的是Shenyu-Sdk对应维护网关API接口的所在包位置.
+   
+2. 创建interface并使用`@ShenyuClient(name = "xxx", contextId = 
"ShenyuSdkApiName")`注解标注, 其中`name`表示网关服务名.假如你需要定义多个bean来维护网关的API, 
可以使用`contextId`作为对应的bean别名.
+
+3. 在定义接口中添加所要映射shenyu网关中的接口方法, 其中`@xxMapping`中的`value`对应值是网关中对应请求的路径。
+
+**示例**
+
+项目启动类
+```java
+@SpringBootApplication
+@EnableShenyuClients(basePackages = "org.apache.shenyu.examples.sdk.http.api")
+public class ShenyuSdkHttpExampleApplication {
+
+    /**
+     * main.
+     *
+     * @param args args
+     */
+    public static void main(final String[] args) {
+        SpringApplication.run(ShenyuSdkHttpExampleApplication.class, args);
+    }
+}
+```
+
+网关API接口
+```java
+@ShenyuClient(name = "shenyu-bootstrap", contextId = "ShenyuSdkApiName")
+public interface ShenyuHttpClientApi {
+
+    /**
+     * findById.
+     * test Get.
+     *
+     * @param id id
+     * @return SdkTestDto
+     */
+    @GetMapping("/http/shenyu/client/findById")
+    SdkTestDto findById(@RequestParam("id") String id);
+}
+```
+
+
+更多可参考示例工程 
[shenyu-examples-sdk](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-sdk)
\ No newline at end of file
diff --git 
a/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-nacos.md
 
b/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-nacos.md
new file mode 100644
index 00000000000..1ebe35ddc45
--- /dev/null
+++ 
b/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-nacos.md
@@ -0,0 +1,176 @@
+---
+title: 使用Nacos接入
+keywords: ["Sdk 使用", "Nacos"]
+description: Sdk使用
+---
+
+## 背景说明
+Shenyu提供了Shenyu-Sdk方便让服务能够快速接入shenyu网关, 客户端服务只需要依赖该sdk, 并做些简单配置, 
即可类似调用本地接口一样调用网关暴露的API。
+
+<img src="/img/shenyu/sdk/shenyu-sdk_process.png" width="80%" height="50%" />
+
+客户端接入网关的注册中心支持(nacos、eureka、etcd、zookeeper、consul),下面为`shenyu-bootstrap`及`应用客户端`使用**Zookeeper**注册中心时的相关指引。
+
+## 环境准备
+需要参考 `运维部署` , 选择一种方式启动`shenyu-admin`及`shenyu-bootstrap`.
+
+## shenyu-bootstrap
+
+### 添加Maven依赖
+
+在网关的`pom.xml`文件中引入如下依赖.
+
+```xml
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-spring-boot-starter-instance</artifactId>
+    <version>${project.version}</version>
+</dependency>
+```
+
+### 配置文件调整
+
+在网关的`yml`配置文件中添加如下配置.
+
+```yaml
+spring:
+  application:
+    name: shenyu-bootstrap
+  cloud:
+    discovery:
+      enabled: true
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848 # 此处填你的nacos服务地址
+        enabled: true
+        namespace: ShenyuRegisterCenter # nacos命名空间
+        # 如开启nacos鉴权需配置如下参数
+        username: nacos # 鉴权用户名
+        password: nacos # 鉴权密码
+```
+
+## 应用客户端
+
+### 添加Maven依赖
+
+在应用客户端的`pom.xml`文件中引入如下依赖.
+
+- Shenyu-Sdk 核心包
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-sdk-core</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-spring-boot-starter-sdk</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+</dependencies>
+```
+
+- Shenyu-Sdk http实现包
+
+> http客户端实现, 目前提供实现okhttp, httpclient. 其他客户端实现可继承`AbstractShenyuSdkClient`实现。
+
+```xml
+<!-- httpclient -->
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-httpclient</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+
+<!-- okhttp -->
+<!-- 
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-okhttp</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+-->
+```
+
+### 配置文件调整
+
+在应用客户端的`yml`配置文件中添加如下配置.
+
+```yaml
+shenyu:
+  sdk:
+    enabled: true
+    register-type: nacos 
+    server-lists: localhost:2181
+    props:
+      nacosNameSpace: ShenyuRegisterCenter
+      username: nacos
+      password: nacos
+      retry:
+        enable: true
+        period: 100
+        maxPeriod: 1000
+        maxAttempts: 5
+      algorithm: roundRobin
+      scheme: http
+
+# registerType : 服务注册类型,填写 nacos
+# serverList: 为nacos注册类型时,配置成你的nacos地址,集群环境请使用(,)分隔
+# nacosNameSpace: nacos命名空间ID
+# username: nacos鉴权用户名
+# password: nacos鉴权密码
+# retry 失败重试相关配置
+# retry.period: 重试等待时间
+# retry.maxPeriod: 最大重试等待时间 
+# retry.maxAttempts: 最大重试次数
+# algorithm: 负载均衡
+# scheme: 请求协议头
+```
+
+## 本地接口配置
+
+1. 在项目启动类上标注`@EnableShenyuClients(basePackages = 
"org.apache.shenyu.examples.sdk.http.api")`, 
其中`basePackages`中维护的是Shenyu-Sdk对应维护网关API接口的所在包位置.
+
+2. 创建interface并使用`@ShenyuClient(name = "xxx", contextId = 
"ShenyuSdkApiName")`注解标注, 其中`name`表示网关服务名.假如你需要定义多个bean来维护网关的API, 
可以使用`contextId`作为对应的bean别名. 
+
+3. 在定义接口中添加所要映射shenyu网关中的接口方法, 其中`@xxMapping`中的`value`对应值是网关中对应请求的路径。
+
+**示例**
+
+项目启动类
+```java
+@SpringBootApplication
+@EnableShenyuClients(basePackages = "org.apache.shenyu.examples.sdk.http.api")
+public class ShenyuSdkHttpExampleApplication {
+
+    /**
+     * main.
+     *
+     * @param args args
+     */
+    public static void main(final String[] args) {
+        SpringApplication.run(ShenyuSdkHttpExampleApplication.class, args);
+    }
+}
+```
+
+网关API接口
+```java
+@ShenyuClient(name = "shenyu-bootstrap", contextId = "ShenyuSdkApiName")
+public interface ShenyuHttpClientApi {
+
+    /**
+     * findById.
+     * test Get.
+     *
+     * @param id id
+     * @return SdkTestDto
+     */
+    @GetMapping("/http/shenyu/client/findById")
+    SdkTestDto findById(@RequestParam("id") String id);
+}
+```
+
+更多可参考示例工程 
[shenyu-examples-sdk](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-sdk)
\ No newline at end of file
diff --git 
a/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-zookeeper.md
 
b/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-zookeeper.md
new file mode 100644
index 00000000000..07e6da4ced1
--- /dev/null
+++ 
b/i18n/zh/docusaurus-plugin-content-docs/current/user-guide/sdk-usage/shenyu-sdk-zookeeper.md
@@ -0,0 +1,175 @@
+---
+title: 使用Zookeeper接入
+keywords: ["Sdk 使用", "zookeeper"]
+description: Sdk使用
+---
+
+## 背景说明
+Shenyu提供了Shenyu-Sdk方便让服务能够快速接入shenyu网关, 客户端服务只需要依赖该sdk, 并做些简单配置, 
即可类似调用本地接口一样调用网关暴露的API。
+
+<img src="/img/shenyu/sdk/shenyu-sdk_process.png" width="80%" height="50%" />
+
+客户端接入网关的注册中心支持(nacos、eureka、etcd、zookeeper、consul),下面为`shenyu-bootstrap`及`应用客户端`使用**Zookeeper**注册中心时的相关指引。
+
+## 环境准备
+需要参考 `运维部署` , 选择一种方式启动`shenyu-admin`及`shenyu-bootstrap`.
+ 
+## shenyu-bootstrap
+
+### 添加Maven依赖
+
+在网关的`pom.xml`文件中引入如下依赖.
+
+```xml
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-spring-boot-starter-instance</artifactId>
+    <version>${project.version}</version>
+</dependency>
+```
+
+### 配置文件调整
+
+在网关的`yml`配置文件中添加如下配置.
+
+```yaml
+shenyu:
+  register:
+    enabled: true
+    registerType: zookeeper
+    serverLists: localhost:2181
+    props:
+      contextPath: /http
+      appName: http
+      port: 8189
+      isFull: false
+# registerType : 服务注册类型,填写 zookeeper
+# serverList: 为zookeeper注册类型时,填写zookeeper地址,多个地址用英文逗号分隔
+# port: 你本项目的启动端口,目前springmvc/tars/grpc需要进行填写
+# contextPath: 为你的这个mvc项目在shenyu网关的路由前缀, 比如/order ,/product 
等等,网关会根据你的这个前缀来进行路由.
+# appName:你的应用名称,不配置的话,会默认取 `spring.application.name` 的值
+# isFull: 设置true 
代表代理你的整个服务,false表示代理你其中某几个controller;目前适用于springmvc/springcloud
+
+# 详细参考`用户指南>属性配置>客户端接入配置`文档 
+```
+
+## 应用客户端
+
+### 添加Maven依赖
+
+在应用客户端的`pom.xml`文件中引入如下依赖.
+
+- Shenyu-Sdk 核心包
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-sdk-core</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+        <groupId>org.apache.shenyu</groupId>
+        <artifactId>shenyu-spring-boot-starter-sdk</artifactId>
+        <version>2.5.1-SNAPSHOT</version>
+    </dependency>
+</dependencies>
+```
+
+- Shenyu-Sdk http实现包
+
+> http客户端实现, 目前提供实现okhttp, httpclient. 其他客户端实现可继承`AbstractShenyuSdkClient`实现。
+
+```xml
+<!-- httpclient -->
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-httpclient</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+
+<!-- okhttp -->
+<!-- 
+<dependency>
+    <groupId>org.apache.shenyu</groupId>
+    <artifactId>shenyu-sdk-okhttp</artifactId>
+    <version>2.5.1-SNAPSHOT</version>
+</dependency>
+-->
+```
+
+### 配置文件调整
+
+在应用客户端的`yml`配置文件中添加如下配置.
+
+```yaml
+shenyu:
+  sdk:
+    enabled: true
+    register-type: zookeeper 
+    server-lists: localhost:2181
+    props:
+      retry:
+        enable: true
+        period: 100
+        maxPeriod: 1000
+        maxAttempts: 5
+      algorithm: roundRobin
+      scheme: http
+
+# registerType : 服务注册类型,填写 zookeeper
+# serverList: 为zookeeper注册类型时,填写zookeeper地址,多个地址用英文逗号分隔
+# retry 失败重试相关配置
+# retry.period: 重试等待时间
+# retry.maxPeriod: 最大重试等待时间 
+# retry.maxAttempts: 最大重试次数
+# algorithm: 负载均衡
+# scheme: 请求协议头
+```
+
+
+## 本地接口配置
+
+1. 在项目启动类上标注`@EnableShenyuClients(basePackages = 
"org.apache.shenyu.examples.sdk.http.api")`, 
其中`basePackages`中维护的是Shenyu-Sdk对应维护网关API接口的所在包位置.
+
+2. 创建interface并使用`@ShenyuClient(name = "xxx", contextId = 
"ShenyuSdkApiName")`注解标注, 其中`name`表示网关服务名.假如你需要定义多个bean来维护网关的API, 
可以使用`contextId`作为对应的bean别名. 
+
+3. 在定义接口中添加所要映射shenyu网关中的接口方法, 其中`@xxMapping`中的`value`对应值是网关中对应请求的路径。
+
+**示例**
+
+项目启动类
+```java
+@SpringBootApplication
+@EnableShenyuClients(basePackages = "org.apache.shenyu.examples.sdk.http.api")
+public class ShenyuSdkHttpExampleApplication {
+
+    /**
+     * main.
+     *
+     * @param args args
+     */
+    public static void main(final String[] args) {
+        SpringApplication.run(ShenyuSdkHttpExampleApplication.class, args);
+    }
+}
+```
+
+网关API接口
+```java
+@ShenyuClient(name = "shenyu-gateway", contextId = "ShenyuSdkApiName")
+public interface ShenyuHttpClientApi {
+
+    /**
+     * findById.
+     * test Get.
+     *
+     * @param id id
+     * @return SdkTestDto
+     */
+    @GetMapping("/http/shenyu/client/findById")
+    SdkTestDto findById(@RequestParam("id") String id);
+}
+```
+
+更多可参考示例工程 
[shenyu-examples-sdk](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-sdk)
\ No newline at end of file
diff --git a/static/img/shenyu/sdk/shenyu-sdk_process.png 
b/static/img/shenyu/sdk/shenyu-sdk_process.png
new file mode 100644
index 00000000000..6e0bbbf187b
Binary files /dev/null and b/static/img/shenyu/sdk/shenyu-sdk_process.png differ

Reply via email to