move transports from "build-provider" to root
diff --git a/java-chassis-reference/en_US/assets/eventloop-and-verticle.png b/java-chassis-reference/en_US/assets/eventloop-and-verticle.png
new file mode 100644
index 0000000..d46e8b8
--- /dev/null
+++ b/java-chassis-reference/en_US/assets/eventloop-and-verticle.png
Binary files differ
diff --git a/java-chassis-reference/en_US/build-provider/protocol.md b/java-chassis-reference/en_US/build-provider/protocol.md
deleted file mode 100644
index fca2c74..0000000
--- a/java-chassis-reference/en_US/build-provider/protocol.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Communication Protocol
-### Concepts
-
-ServiceComb uses two network channels, REST and Highway, both support encrypted Transport Layer Security (TLS) transmission. The REST channel provides services in the standard RESTful form. The consumer can call RESTful APIs with http client.
-
-### Precautions
-
-Serialization of parameters and the returned values:
-
-Currently, the body parameters of the REST channel support only the application/json serialization. To send form-type parameters to the server, construct a body of the application/json format at the consumer end. Do not send the form type parameters in multipart/form-data format.
-
-Currently, the REST channel supports the application/json and text/plain serialization. A provider uses produces to declare that it has the serialization capability. The consumer specifies the serialization mode of the returned values by setting parameters regarding the requested Accept header. Data serialized in application/json serialization mode is returned by default.
diff --git a/java-chassis-reference/en_US/build-provider/protocol/highway-rpc.md b/java-chassis-reference/en_US/build-provider/protocol/highway-rpc.md
deleted file mode 100644
index a9b0ee2..0000000
--- a/java-chassis-reference/en_US/build-provider/protocol/highway-rpc.md
+++ /dev/null
@@ -1,39 +0,0 @@
-## Highway RPC Protocol
-### Concept Description
-
-Highway is ServiceComb's private high-performance protocol, it's suitable for the performance sensitive scenarios.
-
-### Configuration
-
-To use the Highway channel, add the following dependencies in the pom.xml file:
-
-```xml
-<dependency> 
-  <groupId>org.apache.servicecomb</groupId>  
-  <artifactId>transport-highway</artifactId> 
-</dependency>
-```
-
-The Highway configuration items in the microservice.yaml file are described below:
-
-Table 1-1 Highway configuration items
-
-| Configuration Item                                    | Default Value | Value Range | Required | Description                                  | Remark                                               |
-| :---------------------------------------------------- | :------------ | :---------- | :------- | :------------------------------------------- | :--------------------------------------------------- |
-| servicecomb.highway.address                           | 0.0.0.0:7070  | -           | No       | The address that the server listens          | -                                                    |
-| servicecomb.highway.server.thread-count               | 1             | -           | No       | The number of server network threads         | -                                                    |
-| servicecomb.highway.client.thread-count               | 1             | -           | No       | The max number of allowed client connections | -                                                    |
-| servicecomb.highway.client.connection-pool-per-thread | 1             | -           | No       | The number of client network threads         | -                                                    |
-| servicecomb.request.timeout                           | 30000         | -           | No       | The request timeout duration                 | The same with the configuration of "REST over Vertx" |
-| servicecomb.references.\[servicename\].transport      | rest          |             | No       | The transport type of the request            | The same with the configuration of "REST over Vertx" |
-| servicecomb.references.\[servicename\].version-rule   | latest        | -           | No       | The version of the requested instance.       | The same with the configuration of "REST over Vertx" |
-
-### Sample code
-
-An example of the Highway configuration in the microservice.yaml:
-
-```yaml
-servicecomb:
-  highway:
-    address: 0.0.0.0:7070
-```
diff --git a/java-chassis-reference/en_US/build-provider/protocol/http2.md b/java-chassis-reference/en_US/build-provider/protocol/http2.md
deleted file mode 100644
index fd1ebfe..0000000
--- a/java-chassis-reference/en_US/build-provider/protocol/http2.md
+++ /dev/null
@@ -1,32 +0,0 @@
-## Scenario
-
-Users can easily enable Http2 protocol for better performance through configuration.
-
-## External Service Communication Configuration
-
-The configuration for external service communication is in the microservice.yaml file.
-
-* Enable h2\(Http2 + TLS\)
-
-     Append  `?sslEnabled=true` to the listening address to enable  TLS communication on server side. For details, see the section [Using TLS Communication](../../security/tls.md). Then add `&protocol=http2` to enable h2 communication. Here is the sample configuration:
-
-  ```yaml
-  servicecomb:
-    rest:
-      address: 0.0.0.0:8080?sslEnabled=true&protocol=http2
-    highway:
-      address: 0.0.0.0:7070?sslEnabled=true&protocol=http2
-  ```
-
-* Enable h2c\(Http2 without TLS\)
-
-     Simply add `?protocol=http2` to enable h2c communication in the server's configuration:
-
-  ```yaml
-  servicecomb:
-    rest:
-      address: 0.0.0.0:8080?protocol=http2
-    highway:
-      address: 0.0.0.0:7070?protocol=http2
-  ```
-* The client will read the server's address configuration from service center, then communicate with the server by http2 protocol.
diff --git a/java-chassis-reference/en_US/build-provider/protocol/rest-over-vertx.md b/java-chassis-reference/en_US/build-provider/protocol/rest-over-vertx.md
deleted file mode 100644
index 734b77f..0000000
--- a/java-chassis-reference/en_US/build-provider/protocol/rest-over-vertx.md
+++ /dev/null
@@ -1,60 +0,0 @@
-## REST over Vertx
-### Configuration
-
-The REST over Vertx communication channel runs in standalone mode, it can be started in the main function. In the main function, you need to initialize logs and load service configuration. The code is as follow:
-
-```java
-import org.apache.servicecomb.foundation.common.utils.BeanUtils;
-import org.apache.servicecomb.foundation.common.utils.Log4jUtils;
-
-public class MainServer {
-  public static void main(String[] args) throws Exception {
-   Log4jUtils.init();// Log initialization
-   BeanUtils.init(); // Spring bean initialization
-  }
-}
-```
-
-To use the REST over Vertx communication channel, add the following dependencies in the maven pom.xml file:
-
-```xml
-<dependency>
-  <groupId>org.apache.servicecomb</groupId>
-  <artifactId>transport-rest-vertx</artifactId>
-</dependency>
-```
-
-The REST over Vertx related configuration items in the microservice.yaml file are described as follows:
-
-Table 1-1 Configuration items for REST over Vertx
-
-
-| Configuration Item | Default Value | Range | Required | Description | Remark |
-| :--- | :--- | :--- | :--- | :--- | :--- |
-| servicecomb.rest.address | 0.0.0.0:8080 | - | No | Service listening address | Only for providers |
-| servicecomb.rest.server.thread-count | 1 | - | No | Server's thread number | Only for providers |
-| servicecomb.rest.server.connection-limit | Integer.MAX_VALUE | - | No | Max allowed client connections | Only for providers |
-| servicecomb.rest.server.connection.idleTimeoutInSeconds | 60 | - | No | Timeout for server's idle connection | The idle connections will be recycled |
-| servicecomb.rest.client.thread-count | 1 | - | No | Client's thread number | Only for consumers |
-| servicecomb.rest.client.connection.maxPoolSize | 5 | - | No | Max connection number of each pool | connection number = thread number \* pool number \* pool connection number |
-| servicecomb.rest.client.connection.idleTimeoutInSeconds | 30 | - | No | The timeout of client idle connection| The idle connections will be recycled  |
-| servicecomb.rest.client.connection.keepAlive | true | - | No | Use long lived connection or not |  |
-| servicecomb.request.timeout | 30000 | - | No | Request timeout |  |
-| servicecomb.references.\[ServiceName\].transport | rest |  | No | The transport type to access | Only for consumers |
-| servicecomb.references.\[ServiceName\].version-rule | latest | - | No | The version of instance to access | Only for consumers. The supported rules including latest,1.0.0+,1.0.0-2.0.2,or accurate version. For details, please refer to the service center interface description |
-
-### Sample Code
-
-An example of the configuration in the microservice.yaml file for REST over Vertx:
-
-```yaml
-servicecomb:
-  rest:
-    address: 0.0.0.0:8080
-    thread-count: 1
-  references:
-    hello:
-      transport: rest
-      version-rule: 0.0.1
-```
-
diff --git a/java-chassis-reference/en_US/transports/highway-rpc.md b/java-chassis-reference/en_US/transports/highway-rpc.md
new file mode 100644
index 0000000..83b7fbb
--- /dev/null
+++ b/java-chassis-reference/en_US/transports/highway-rpc.md
@@ -0,0 +1,38 @@
+# Highway
+
+## Concept Description
+
+Highway is ServiceComb's private high-performance protocol, it's suitable for the performance sensitive scenarios.
+
+## Configuration
+
+To use the Highway channel, add the following dependencies in the pom.xml file:
+
+```xml
+<dependency> 
+  <groupId>org.apache.servicecomb</groupId>  
+  <artifactId>transport-highway</artifactId> 
+</dependency>
+```
+
+The Highway configuration items in the microservice.yaml file are described below:
+
+Table 1-1 Highway configuration items
+
+| Configuration Item                          | Default Value                                   | Description                                      | 
+| :------------------------------------------ | :---------------------------------------------- | :----------------------------------------------- | 
+| servicecomb.highway.address                 |                                                 |The address that the server listens, empty for not listen, just a highway client|
+| servicecomb.highway.server.connection-limit | Integer.MAX_VALUE                               |Allow client maximum connections                  |
+| servicecomb.highway.server.thread-count     | [verticle-count](/transports/verticle-count.md) |highway server verticle instance count(Deprecated)|
+| servicecomb.highway.server.verticle-count   | [verticle-count](/transports/verticle-count.md) |highway server verticle instance count            |
+| servicecomb.highway.client.thread-count     | [verticle-count](/transports/verticle-count.md) |highway client verticle instance count(Deprecated)|
+| servicecomb.highway.client.verticle-count   | [verticle-count](/transports/verticle-count.md) |highway client verticle instance count(Deprecated)|
+## Sample code
+
+An example of the Highway configuration in the microservice.yaml:
+
+```yaml
+servicecomb:
+  highway:
+    address: 0.0.0.0:7070
+```
diff --git a/java-chassis-reference/en_US/transports/http2.md b/java-chassis-reference/en_US/transports/http2.md
new file mode 100644
index 0000000..289c01e
--- /dev/null
+++ b/java-chassis-reference/en_US/transports/http2.md
@@ -0,0 +1,49 @@
+#Http2
+
+## Scenario
+
+Users can easily enable Http2 protocol for better performance through configuration.
+
+## External Service Communication Configuration
+
+The configuration for external service communication is in the microservice.yaml file.
+
+* Enable h2\(Http2 + TLS\)
+
+     Append  `sslEnabled=true` to the listening address to enable  TLS communication on server side. For details, see the section [Using TLS Communication](../../security/tls.md). Then add `protocol=http2` to enable h2 communication. Here is the sample configuration:
+
+  ```yaml
+  servicecomb:
+    rest:
+      address: 0.0.0.0:8080?sslEnabled=true&protocol=http2
+  ```
+
+* Enable h2c\(Http2 without TLS\)
+
+     Simply add `protocol=http2` to enable h2c communication in the server's configuration:
+
+  ```yaml
+  servicecomb:
+    rest:
+      address: 0.0.0.0:8080?protocol=http2
+  ```
+* The client will read the server's address configuration from service center, then communicate with the server by http2 protocol.
+
+Specific examples can refer to [http2-it-tests](https://github.com/apache/servicecomb-java-chassis/blob/master/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/ConsumerMain.java)
+
+## http2 server configuration
+
+| configuration                                 | default | description                                             | notice | 
+|-----------------------------------------------|---------|-------------------------------------------------------- |--------|
+|servicecomb.rest.server.http2.useAlpnEnabled   | true    |Whether to enable ALPN                                   |        |
+|servicecomb.rest.server.http2.concurrentStreams| 100     |The maximum stream concurrency supported in a connection |The smaller value of the concurrentStreams on the server side and the multiplexingLimit on the client side|
+
+## http2 client configuration
+
+| configuration                                     | default | description                                                                               | notice | 
+|---------------------------------------------------|---------|------------------------------------------------------------------------------------------ |--------|
+|servicecomb.rest.client.http2.useAlpnEnabled       |true     |Whether to enable ALPN                                                                     |        |
+|servicecomb.rest.client.http2.multiplexingLimit    |-1       |The maximum stream concurrency supported in a connection,-1 means no limit                 |The smaller value of the concurrentStreams on the server side and the multiplexingLimit on the client side|
+|servicecomb.rest.client.http2.maxPoolSize          |1        |The maximum number of connections established for each IP:Port in each connection pool     |        |
+|servicecomb.rest.client.http2.idleTimeoutInSeconds |0        |The timeout period of the idle connection, the connection will be closed after the timeout |        |
+
diff --git a/java-chassis-reference/en_US/build-provider/protocol/rest-over-servlet.md b/java-chassis-reference/en_US/transports/rest-over-servlet.md
similarity index 100%
rename from java-chassis-reference/en_US/build-provider/protocol/rest-over-servlet.md
rename to java-chassis-reference/en_US/transports/rest-over-servlet.md
diff --git a/java-chassis-reference/en_US/transports/rest-over-vertx.md b/java-chassis-reference/en_US/transports/rest-over-vertx.md
new file mode 100644
index 0000000..1699a2e
--- /dev/null
+++ b/java-chassis-reference/en_US/transports/rest-over-vertx.md
@@ -0,0 +1,59 @@
+# REST over Vertx
+
+## Configuration
+
+The REST over Vertx communication channel runs in standalone mode, it can be started in the main function. In the main function, you need to initialize logs and load service configuration. The code is as follow:
+
+```java
+import org.apache.servicecomb.foundation.common.utils.BeanUtils;
+import org.apache.servicecomb.foundation.common.utils.Log4jUtils;
+
+public class MainServer {
+  public static void main(String[] args) throws Exception {
+   Log4jUtils.init();// Log initialization
+   BeanUtils.init(); // Spring bean initialization
+  }
+}
+```
+
+To use the REST over Vertx communication channel, add the following dependencies in the maven pom.xml file:
+
+```xml
+<dependency>
+  <groupId>org.apache.servicecomb</groupId>
+  <artifactId>transport-rest-vertx</artifactId>
+</dependency>
+```
+
+The REST over Vertx related configuration items in the microservice.yaml file are described as follows:
+
+Table 1-1 Configuration items for REST over Vertx
+
+| Configuration Item                                     | Default Value                                  | Description                                    |
+| :----------------------------------------------------- | :--------------------------------------------- | :--------------------------------------------- |
+|servicecomb.rest.address                                |                                                |listening address, empty for not listen, just a rest client |
+|servicecomb.rest.server.connection-limit                |Integer.MAX_VALUE                               |Max allowed client connections                  | 
+|servicecomb.rest.server.thread-count                    |[verticle-count](/transports/verticle-count.md) |rest server verticle instance count(Deprecated) |
+|servicecomb.rest.server.verticle-count                  |[verticle-count](/transports/verticle-count.md) |rest server verticle instance count             |
+|servicecomb.rest.server.connection.idleTimeoutInSeconds |60                                              |Timeout for server's idle connection, The idle connections will be closed |
+|servicecomb.rest.client.thread-count                    |[verticle-count](/transports/verticle-count.md) |rest client verticle instance count(Deprecated) |
+|servicecomb.rest.client.verticle-count                  |[verticle-count](/transports/verticle-count.md) |rest client verticle instance count             |
+|servicecomb.rest.client.connection.maxPoolSize          |5                                               |The maximum number of connections in each connection pool for an IP:port combination |
+|servicecomb.rest.client.connection.idleTimeoutInSeconds |30                                              |Timeout for client's idle connection, The idle connections will be closed |
+|servicecomb.rest.client.connection.keepAlive            |true                                            |Whether to use long connections                 |
+
+## Sample Code
+
+An example of the configuration in the microservice.yaml file for REST over Vertx:
+
+```yaml
+servicecomb:
+  rest:
+    address: 0.0.0.0:8080
+    thread-count: 1
+  references:
+    hello:
+      transport: rest
+      version-rule: 0.0.1
+```
+
diff --git a/java-chassis-reference/en_US/transports/transport.md b/java-chassis-reference/en_US/transports/transport.md
new file mode 100644
index 0000000..7ef7bb2
--- /dev/null
+++ b/java-chassis-reference/en_US/transports/transport.md
@@ -0,0 +1,5 @@
+# Communication
+
+## Concepts
+ServiceComb uses two network channels, REST and Highway, both support encrypted Transport Layer Security (TLS) transmission. The REST channel provides services in the standard RESTful form. The consumer can call RESTful APIs with http client.
+
diff --git a/java-chassis-reference/en_US/transports/verticle-count.md b/java-chassis-reference/en_US/transports/verticle-count.md
new file mode 100644
index 0000000..84a5e9d
--- /dev/null
+++ b/java-chassis-reference/en_US/transports/verticle-count.md
@@ -0,0 +1,23 @@
+# verticle-count
+
+## name and default value
+* Version prior to 1.2.0  
+  Named thread-count, and the default value is 1, which has the following problems:  
+  * The name is ambiguous  
+    The underlying ServiceComb is based on vertx. The communication layer logic is hosted by verticle, running in the eventloop thread, and no separate threads are created.
+    So thread-count actually represents the number of verticle instances created, not the number of threads.
+  * The default value is too small  
+    Because there is no best configuration in all scenarios, the old version chose the most conservative default value, which leads to the adjustment of these parameters in most scenarios.
+* 1.2.0 and later versions  
+  Renamed to verticle-count  
+  At the same time, the old thread-count is allowed, but the warning log is printed, reminding to switch to the new configuration.  
+  Default rule:  
+  * If the number of CPUs is less than 8, the number of CPUs is taken.
+  * 8 if the number of CPUs is greater than or equal to 8.
+  
+## The relationship between Eventloop and verticle instances:  
+Assuming the CPU is 2, vertx creates 2 * CPU by default, ie 4 Eventloop threads.  
+Assuming the configuration server verticle count and client verticle count are both 3, then:  
+![](/assets/eventloop-and-verticle.png)  
+Because it is not allowed to perform any blocking action in the Eventloop, combined with the above figure, we can know that when the CPU is fully utilized, it is meaningless to add the verticle instance.  
+Users are advised to combine their actual scenarios to test and summarize the appropriate configuration values.
\ No newline at end of file
diff --git a/java-chassis-reference/zh_CN/assets/eventloop-and-verticle.png b/java-chassis-reference/zh_CN/assets/eventloop-and-verticle.png
new file mode 100644
index 0000000..d46e8b8
--- /dev/null
+++ b/java-chassis-reference/zh_CN/assets/eventloop-and-verticle.png
Binary files differ
diff --git a/java-chassis-reference/zh_CN/build-provider/protocol/highway-rpc.md b/java-chassis-reference/zh_CN/build-provider/protocol/highway-rpc.md
deleted file mode 100644
index d536036..0000000
--- a/java-chassis-reference/zh_CN/build-provider/protocol/highway-rpc.md
+++ /dev/null
@@ -1,41 +0,0 @@
-## 概念阐述
-
-Highway是ServiceComb的高性能私有协议,用户可在有特殊性能需求的场景下选用。
-
-## 配置说明
-
-使用Highway网络通道需要在maven pom文件中添加如下依赖:
-
-```xml
- <dependency>
-     <groupId>org.apache.servicecomb</groupId>
-     <artifactId>transport-highway</artifactId>
- </dependency>
-```
-
-Highway通道在microservice.yaml文件中的配置项如下表所示:
-
-表1-1Highway配置项说明
-
-| 配置项 | 默认值 | 取值范围 | 是否必选 | 含义 | 注意 |
-| :--- | :--- | :--- | :--- | :--- | :--- |
-| servicecomb.highway.address | 0.0.0.0:7070 | - | 否 | 服务监听地址 | - |
-| servicecomb.highway.server.thread-count | 1 | - | 否 | 服务端网络线程个数 | - |
-| servicecomb.highway.server.connection-limit | Integer.MAX_VALUE | - | 否 | 允许客户端最大连接数 | - |
-| servicecomb.highway.client.thread-count | 1 | - | 否 | 客户端网络线程个数 | - |
-| servicecomb.request.timeout | 30000 | - | 否 | 请求超时时间 | 同REST over Vertx的配置 |
-| servicecomb.references.\[服务名\].transport | rest |  | 否 | 访问的transport类型 | 同REST over Vertx的配置 |
-| servicecomb.references.\[服务名\].version-rule | latest | - | 否 | 访问实例的版本号 | 同REST over Vertx的配置 |
-
-## 示例代码
-
-microservice.yaml文件中的配置示例:
-
-```yaml
-servicecomb:
-  highway:
-    address: 0.0.0.0:7070
-```
-
-
-
diff --git a/java-chassis-reference/zh_CN/build-provider/protocol/http2.md b/java-chassis-reference/zh_CN/build-provider/protocol/http2.md
deleted file mode 100644
index a2388bf..0000000
--- a/java-chassis-reference/zh_CN/build-provider/protocol/http2.md
+++ /dev/null
@@ -1,50 +0,0 @@
-## 场景描述
-
-用户通过简单的配置即可启用Http2进行通信,提高性能。
-
-## 外部服务通信配置
-
-与外部服务通信相关的配置写在microservice.yaml文件中。
-
-* 启用h2\(Http2 + TLS\)进行通信  
-  服务端在配置服务监听地址时,可以通过在地址后面追加`?sslEnabled=true`开启TLS通信,具体介绍见[使用TLS通信](../../security/tls.md)章节。然后再追加`&protocol=http2`启用h2通信。示例如下:
-
-  ```yaml
-  servicecomb:
-    rest:
-      address: 0.0.0.0:8080?sslEnabled=true&protocol=http2
-    highway:
-      address: 0.0.0.0:7070?sslEnabled=true&protocol=http2
-  ```
-
-* 启用h2c\(Http2 without TLS\)进行通信  
-  服务端在配置服务监听地址时,可以通过在地址后面追加`?protocol=http2`启用h2c通信。示例如下:
-
-  ```yaml
-  servicecomb:
-    rest:
-      address: 0.0.0.0:8080?protocol=http2
-    highway:
-      address: 0.0.0.0:7070?protocol=http2
-  ```
-
-* 客户端会通过从服务中心读取服务端地址中的配置来使用http2进行通信。 

-

-具体实例可以参考 [http2-it-tests](https://github.com/apache/incubator-servicecomb-java-chassis/blob/master/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/ConsumerMain.java)
-
-## http2 provider 端配置项
-
-| 配置项 | 默认值 |   是否必选 | 含义 | 注意| 
-|------|---------|-----------|-----|---------|
-|servicecomb.rest.server.http2.useAlpnEnabled| true| 否| 是否启用 ALPN| 无|
-|servicecomb.rest.server.http2.concurrentStreams| 100 | 否| http2 Server 端同时支持的最大的 stream 并发量| 可以结合实际情况调整, 如果server 端和client 端同时设置了 stream 并发量限制, 实际较小的生效|
-
-## http2 client 端配置项
-
-| 配置项 | 默认值 |   是否必选 | 含义 | 注意| 
-|------|---------|-----------|-----|---------|
-|servicecomb.rest.client.http2.useAlpnEnabled|true| 否| 是否启用 ALPN| 无|
-|servicecomb.rest.client.http2.multiplexingLimit| -1 | 否|http2 client 端同时支持的最大的 stream 并发量| -1 代表不限制. 如果server 端和client 端同时设置了 stream 并发量限制, 实际较小的生效 |
-|servicecomb.rest.client.http2.maxPoolSize| 1 | 否| client 端 http2 连接池的最大数量| 无|
-|servicecomb.rest.client.http2.idleTimeoutInSeconds | 0 |否| htttp2 连接空闲断开的最长时间 | 建议结合实际情况适当配置|
-
diff --git a/java-chassis-reference/zh_CN/build-provider/protocol/rest-over-vertx.md b/java-chassis-reference/zh_CN/build-provider/protocol/rest-over-vertx.md
deleted file mode 100644
index 56dbfe6..0000000
--- a/java-chassis-reference/zh_CN/build-provider/protocol/rest-over-vertx.md
+++ /dev/null
@@ -1,57 +0,0 @@
-## 配置说明
-
-REST over Vertx通信通道对应使用standalone部署运行模式,可直接通过main函数拉起。main函数中需要初始化日志和加载服务配置,代码如下:
-
-```java
-public class MainServer {
-    public static void main(String[] args) throws Exception {
-        Log4jUtils.init();//日志初始化
-        BeanUtils.init(); // Spring bean初始化
-    }
-}
-```
-
-使用REST over Vertx网络通道需要在maven pom文件中添加如下依赖:
-
-```xml
-<dependency>
-    <groupId>org.apache.servicecomb</groupId>
-    <artifactId>transport-rest-vertx</artifactId>
-</dependency>
-```
-
-REST over Vertx通道在microservice.yaml文件中有以下配置项:
-
-表1-1 REST over Vertx配置项说明
-
-| 配置项 | 默认值 | 取值范围 | 是否必选 | 含义 | 注意 |
-| :--- | :--- | :--- | :--- | :--- | :--- |
-| servicecomb.rest.address | 0.0.0.0:8080 | - | 否 | 服务监听地址 | 仅服务提供者需要配置 |
-| servicecomb.rest.server.thread-count | 1 | - | 否 | 服务端线程数 | 仅服务提供者需要配置 |
-| servicecomb.rest.server.connection-limit | Integer.MAX_VALUE | - | 否 | 允许客户端最大连接数 | 仅服务提供者需要配置 |
-| servicecomb.rest.server.connection.idleTimeoutInSeconds | 60 | - | 否 | 服务端连接闲置超时时间 | 闲置连接会被回收 |
-| servicecomb.rest.client.thread-count | 1 | - | 否 | 客户端网络线程数 | 仅服务消费者需要配置 |
-| servicecomb.rest.client.connection.maxPoolSize | 5 | - | 否 | 每个连接池的最大连接数 | 连接数=网络线程数\*连接池个数\*连接池连接数 |
-| servicecomb.rest.client.connection.idleTimeoutInSeconds | 30 | - | 否 | 连接闲置时间 | 闲置连接会被回收 |
-| servicecomb.rest.client.connection.keepAlive | true | - | 否 | 是否使用长连接 |  |
-| servicecomb.request.timeout | 30000 | - | 否 | 请求超时时间 |  |
-| servicecomb.references.\[服务名\].transport | rest |  | 否 | 访问的transport类型 | 仅服务消费者需要配置 |
-| servicecomb.references.\[服务名\].version-rule | latest | - | 否 | 访问实例的版本号 | 仅服务消费者需要配置支持latest,1.0.0+,1.0.0-2.0.2,精确版本。详细参考服务中心的接口描述。 |
-
-## 示例代码
-
-microservice.yaml文件中的配置示例:
-
-```yaml
-servicecomb:
-  rest:
-    address: 0.0.0.0:8080
-    thread-count: 1
-  references:
-    hello:
-      transport: rest
-      version-rule: 0.0.1
-```
-
-
-
diff --git a/java-chassis-reference/zh_CN/transports/highway-rpc.md b/java-chassis-reference/zh_CN/transports/highway-rpc.md
new file mode 100644
index 0000000..f167954
--- /dev/null
+++ b/java-chassis-reference/zh_CN/transports/highway-rpc.md
@@ -0,0 +1,42 @@
+# Highway
+
+## 概念阐述
+
+Highway是ServiceComb的高性能私有协议,用户可根据实际需求选择使用。
+
+## 配置说明
+
+使用Highway网络通道需要在maven pom文件中添加如下依赖:
+
+```xml
+ <dependency>
+     <groupId>org.apache.servicecomb</groupId>
+     <artifactId>transport-highway</artifactId>
+ </dependency>
+```
+
+Highway通道在microservice.yaml文件中的配置项如下表所示:
+
+表1-1Highway配置项说明
+
+| 配置项                                         | 默认值                                          | 含义                                      |
+| :--------------------------------------------- | :---------------------------------------------- | :---------------------------------------- |
+| servicecomb.highway.address                    |                                                 | 服务监听地址,不配置表示不监听            |
+| servicecomb.highway.server.connection-limit    | Integer.MAX_VALUE                               | 允许客户端最大连接数                      |
+| servicecomb.highway.server.thread-count        | [verticle-count](/transports/verticle-count.md) | highway server verticle实例数(Deprecated) |
+| servicecomb.highway.server.verticle-count      | [verticle-count](/transports/verticle-count.md) | highway server verticle实例数             |
+| servicecomb.highway.client.thread-count        | [verticle-count](/transports/verticle-count.md) | highway client verticle实例数(Deprecated) |
+| servicecomb.highway.client.verticle-count      | [verticle-count](/transports/verticle-count.md) | highway client verticle实例数             |
+
+## 示例代码
+
+microservice.yaml文件中的配置示例:
+
+```yaml
+servicecomb:
+  highway:
+    address: 0.0.0.0:7070
+```
+
+
+
diff --git a/java-chassis-reference/zh_CN/transports/http2.md b/java-chassis-reference/zh_CN/transports/http2.md
new file mode 100644
index 0000000..7e1ebd5
--- /dev/null
+++ b/java-chassis-reference/zh_CN/transports/http2.md
@@ -0,0 +1,48 @@
+#Http2
+
+## 场景描述
+
+用户通过简单的配置即可启用Http2进行通信,提高性能。
+
+## 外部服务通信配置
+
+与外部服务通信相关的配置写在microservice.yaml文件中。
+
+* 启用h2\(Http2 + TLS\)进行通信  
+  服务端在配置服务监听地址时,可以通过在地址后面追加`sslEnabled=true`开启TLS通信,具体介绍见[使用TLS通信](../../security/tls.md)章节。然后再追加`protocol=http2`启用h2通信。示例如下:
+
+  ```yaml
+  servicecomb:
+    rest:
+      address: 0.0.0.0:8080?sslEnabled=true&protocol=http2
+  ```
+
+* 启用h2c\(Http2 without TLS\)进行通信  
+  服务端在配置服务监听地址时,可以通过在地址后面追加`protocol=http2`启用h2c通信。示例如下:
+
+  ```yaml
+  servicecomb:
+    rest:
+      address: 0.0.0.0:8080?protocol=http2
+  ```
+
+* 客户端会通过从服务中心读取服务端地址中的配置来使用http2进行通信。 
+
+具体实例可以参考 [http2-it-tests](https://github.com/apache/servicecomb-java-chassis/blob/master/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/ConsumerMain.java)
+
+## http2 server 端配置项
+
+| 配置项                                        | 默认值  | 含义                                    | 注意 | 
+|-----------------------------------------------|---------|---------------------------------------- |------|
+|servicecomb.rest.server.http2.useAlpnEnabled   | true    |是否启用 ALPN                            |      |
+|servicecomb.rest.server.http2.concurrentStreams| 100     |一条连接中,同时支持的最大的stream并发量 |以server端的concurrentStreams和client端的multiplexingLimit较小值为准|
+
+## http2 client 端配置项
+
+| 配置项                                            | 默认值 | 含义                                                  | 注意 | 
+|---------------------------------------------------|--------|------------------------------------------------------ |------|
+|servicecomb.rest.client.http2.useAlpnEnabled       |true    |是否启用 ALPN                                          |      |
+|servicecomb.rest.client.http2.multiplexingLimit    |-1      |一条连接中,同时支持的最大的stream并发量,-1表示不限制 |以server端的concurrentStreams和client端的multiplexingLimit较小值为准 |
+|servicecomb.rest.client.http2.maxPoolSize          |1       |每个连接池中,对每一个IP:Port最多建立的连接数         |      |
+|servicecomb.rest.client.http2.idleTimeoutInSeconds |0       |空闲连接的超时时间,超时后会关闭连接                   |      |
+
diff --git a/java-chassis-reference/zh_CN/build-provider/protocol/rest-over-servlet.md b/java-chassis-reference/zh_CN/transports/rest-over-servlet.md
similarity index 100%
rename from java-chassis-reference/zh_CN/build-provider/protocol/rest-over-servlet.md
rename to java-chassis-reference/zh_CN/transports/rest-over-servlet.md
diff --git a/java-chassis-reference/zh_CN/transports/rest-over-vertx.md b/java-chassis-reference/zh_CN/transports/rest-over-vertx.md
new file mode 100644
index 0000000..b2b4d68
--- /dev/null
+++ b/java-chassis-reference/zh_CN/transports/rest-over-vertx.md
@@ -0,0 +1,77 @@
+# REST over Vertx
+
+## 配置说明
+
+REST over Vertx通信通道对应使用standalone部署运行模式,可直接通过main函数拉起。main函数中需要初始化日志和加载服务配置,代码如下:
+
+```java
+public class MainServer {
+    public static void main(String[] args) throws Exception {
+        Log4jUtils.init();//日志初始化
+        BeanUtils.init(); // Spring bean初始化
+    }
+}
+```
+
+使用REST over Vertx网络通道需要在maven pom文件中添加如下依赖:
+
+```xml
+<dependency>
+    <groupId>org.apache.servicecomb</groupId>
+    <artifactId>transport-rest-vertx</artifactId>
+</dependency>
+```
+
+REST over Vertx通道在microservice.yaml文件中有以下配置项:
+
+表1-1 REST over Vertx配置项说明
+
+| 配置项                                                  | 默认值                                          | 含义                                          |
+| :------------------------------------------------------ | :---------------------------------------------- | :-------------------------------------------- |
+| servicecomb.rest.address                                |                                                 | 服务监听地址,不配置表示不监听                |
+| servicecomb.rest.server.thread-count                    | [verticle-count](/transports/verticle-count.md) | rest server verticle实例数(Deprecated)      | 
+| servicecomb.rest.server.verticle-count                  | [verticle-count](/transports/verticle-count.md) | rest server verticle实例数                    |
+| servicecomb.rest.server.connection-limit                | Integer.MAX_VALUE                               | 允许客户端最大连接数                          |
+| servicecomb.rest.server.connection.idleTimeoutInSeconds | 60                                              | 服务端连接闲置超时时间,超时连接会被释放      |
+| servicecomb.rest.client.thread-count                    | [verticle-count](/transports/verticle-count.md) | rest client verticle实例数(Deprecated)      |
+| servicecomb.rest.client.verticle-count                  | [verticle-count](/transports/verticle-count.md) | rest client verticle实例数                    |
+| servicecomb.rest.client.connection.maxPoolSize          | 5                                               | 对一个IP:port组合,在每个连接池中的最大连接数 |
+| servicecomb.rest.client.connection.idleTimeoutInSeconds | 30                                              | 连接闲置时间,超时连接会被释放                |
+| servicecomb.rest.client.connection.keepAlive            | true                                            | 是否使用长连接                                |
+
+### 补充说明
+* 极限连接数计算  
+  假设:  
+  * servicecomb.rest.client.thread-count配置为8
+  * servicecomb.rest.client.connection.maxPoolSize配置为5
+  * 微服务A有10个实例  
+  
+  站在client的角度,在极限情况下:
+  * 一个client调用微服务A,最多会建立400条连接。(8 * 5 * 10 = 400)  
+  * 假设该client还需要调用微服务B,微服务B,也有10个实例,则最多再建立400条连接,共800条连接
+  
+  站在server的角度,在极限情况下:
+  * 一个client最多向一个server建立40条连接。(8 * 5 = 40)  
+  * n个client最多会向一个server建立40 * n条连接
+  
+  为了提高性能,需要尽量使用更大的连接池,但是更大的连接池又可能会导致连接数暴涨,当微服务实例规模达到百级别时,有的进程可能需要管理几万条连接,业务需要根据实际业务规模进行合理的规划。  
+  http1.1的规划相对复杂,并且有的场景几乎无解,建议切换为[http2](transports/http2.md)
+
+## 示例代码
+
+microservice.yaml文件中的配置示例:
+
+```yaml
+servicecomb:
+  rest:
+    address: 0.0.0.0:8080
+    server:
+      verticle-count: 8
+  references:
+    hello:
+      transport: rest
+      version-rule: 0.0.1
+```
+
+
+
diff --git a/java-chassis-reference/zh_CN/build-provider/protocol.md b/java-chassis-reference/zh_CN/transports/transport.md
similarity index 87%
rename from java-chassis-reference/zh_CN/build-provider/protocol.md
rename to java-chassis-reference/zh_CN/transports/transport.md
index 6e28c80..4476e35 100644
--- a/java-chassis-reference/zh_CN/build-provider/protocol.md
+++ b/java-chassis-reference/zh_CN/transports/transport.md
@@ -1,5 +1,4 @@
-# 通信协议
+# 通信
 
-### 概念阐述
-
+## 概念阐述
 ServiceComb实现了两种网络通道,包括REST和Highway,均支持TLS加密传输。其中,REST网络通道将服务以标准RESTful形式发布,调用端兼容直接使用http client使用标准RESTful形式进行调用。
diff --git a/java-chassis-reference/zh_CN/transports/verticle-count.md b/java-chassis-reference/zh_CN/transports/verticle-count.md
new file mode 100644
index 0000000..711b46f
--- /dev/null
+++ b/java-chassis-reference/zh_CN/transports/verticle-count.md
@@ -0,0 +1,23 @@
+# verticle-count
+
+## 名称及默认值
+* 1.2.0之前的版本  
+  命名为thread-count,且默认值为1,这存在以下问题:  
+  * 名字有歧义  
+    ServiceComb底层基于vertx,通信层逻辑均由verticle承载,运行于eventloop线程中,并不会再创建独立的线程
+    所以thread-count实际表示的是创建的verticle实例的个数,并不是线程数。
+  * 默认值偏小  
+    因为不存在在所有场景下都最优的配置,所以旧版本,选择了最保守的默认值,这导致大部分场景,都需要做这些参数的调整
+* 1.2.0及其之后的版本  
+  重命名为verticle-count  
+  同时允许旧的thread-count,但是会打印warning日志,提醒切换为新配置项  
+  默认值规则:  
+  * 如果CPU数小于8,则取CPU数
+  * 如果CPU数大于等于8,则为8
+  
+## Eventloop与verticle实例的关系:  
+假设CPU为2,则vertx默认创建2 * CPU, 即4个Eventloop线程  
+假设配置server verticle count和client verticle count均为3,则:  
+![](/assets/eventloop-and-verticle.png)  
+因为在Eventloop中不允许执行任何阻塞动作,再结合上图,我们可以知道,当充分利用了CPU之后,再增加verticle实例是没有意义的  
+建议使用者结合自己的实际场景,测试总结出合适的配置值
\ No newline at end of file