You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2020/02/14 06:00:50 UTC

[servicecomb-docs] branch master updated: [SCB-1766] add documents for kie, nacos, appollo integration

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

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git


The following commit(s) were added to refs/heads/master by this push:
     new ca2d089  [SCB-1766] add documents for kie, nacos, appollo integration
ca2d089 is described below

commit ca2d089a1dc6e2d37fd83e4eb4b479a0905f2025
Author: liubao <bi...@qq.com>
AuthorDate: Fri Feb 14 11:54:47 2020 +0800

    [SCB-1766] add documents for kie, nacos, appollo integration
---
 java-chassis-reference/en_US/docs/index.md         |   2 +-
 .../zh_CN/docs/config/general-config.md            | 124 ++++++++++++++++++++-
 .../zh_CN/docs/config/inject-config.md             |  22 ++--
 java-chassis-reference/zh_CN/docs/index.md         |   6 +-
 .../zh_CN/docs/upgrading/1_to_2.md                 |  10 +-
 java-chassis-reference/zh_CN/mkdocs.yml            |   4 +-
 6 files changed, 147 insertions(+), 21 deletions(-)

diff --git a/java-chassis-reference/en_US/docs/index.md b/java-chassis-reference/en_US/docs/index.md
index bae569e..4cdb6e1 100644
--- a/java-chassis-reference/en_US/docs/index.md
+++ b/java-chassis-reference/en_US/docs/index.md
@@ -11,6 +11,6 @@ For other versions, please check the following table.
 | :--- | :--- |
 | latest(2.0.0) | [中文](https://docs.servicecomb.io/java-chassis/zh_CN/), [English](https://docs.servicecomb.io/java-chassis/en_US/)| hosted by github pages | 
 | latest(2.0.0) | [中文](http://liubao68.gitee.io/servicecomb-java-chassis-doc/java-chassis/zh_CN/), [English](http://liubao68.gitee.io/servicecomb-java-chassis-doc/java-chassis/en_US/)| hosted by gitee pages |
-| latest(2.0.0) | [中文](http://1v96us.coding-pages.com/docs/java-chassis/zh_CN/), [English](http://1v96us.coding-pages.com/docs/java-chassis/en_US/)| hosted by coding|
+| latest(2.0.0) | [中文](http://1v96us.coding-pages.com/docs/java-chassis/zh_CN/), [English](http://1v96us.coding-pages.com/docs/java-chassis/en_US/)| hosted by coding pages|
 | 1.3.0 | [中文](https://docs.servicecomb.io/java-chassis/1.x/zh_CN/), [English](https://docs.servicecomb.io/java-chassis/1.x/en_US/)|
 | 1.2.1 | [中文](https://docs.servicecomb.io/java-chassis/1.x/zh_CN/), [English](https://docs.servicecomb.io/java-chassis/1.x/en_US/)|
\ No newline at end of file
diff --git a/java-chassis-reference/zh_CN/docs/config/general-config.md b/java-chassis-reference/zh_CN/docs/config/general-config.md
index 85d85cf..43254ca 100644
--- a/java-chassis-reference/zh_CN/docs/config/general-config.md
+++ b/java-chassis-reference/zh_CN/docs/config/general-config.md
@@ -1,5 +1,8 @@
 # 通用配置说明
 
+应用程序一般通过配置文件、环境变量等管理配置信息。微服务架构对统一配置提出了更高的要求,很多配置信息需要在不启停服务的
+情况下实现动态修改。 java-chassis 对不同的配置源进行了抽象, 开发者可以不关心配置项具体的配置源,采用统一的接口读取配置。
+
 ## 配置源层级
 
 ServiceComb提供了分层次的配置机制。按照优先级从高到低,分为:
@@ -11,7 +14,10 @@ ServiceComb提供了分层次的配置机制。按照优先级从高到低,分
 
 ### 配置文件
 
-配置文件默认是classpath下的microservice.yaml文件。ServiceComb-Java-Chassis启动时会从classpath的各个jar包、磁盘目录中加载microservice.yaml文件,并将这些文件合并为一份microservice.yaml配置。位于磁盘上的microservice.yaml文件优先级高于jar包中的microservice.yaml文件,用户还可以通过在配置文件中指定`servicecomb-config-order`来指定优先级。
+配置文件默认是classpath下的microservice.yaml文件。ServiceComb-Java-Chassis启动时会从classpath的各个jar包、磁盘
+目录中加载microservice.yaml文件,并将这些文件合并为一份microservice.yaml配置。位于磁盘上的microservice.yaml
+文件优先级高于jar包中的microservice.yaml文件。用户还可以通过在配置文件中指定`servicecomb-config-order`来指定优先级,
+如果不同路径下的 microservice.yaml 包含一样的配置项,文件中 `servicecomb-config-order` 值大的配置项会覆盖值小的配置项。
 
 > Tips:由于磁盘上的microservice.yaml文件优先级较高,我们可以在打包时在服务可执行jar包的classpath里加上`.`目录,这样就可以在服务jar包所在的目录里放置一份microservice.yaml来覆盖jar包内的配置文件。
 
@@ -36,16 +42,128 @@ servicecomb:
 
 ### 配置中心(动态配置)
 
-动态配置的默认实现是config-cc客户端,对接配置中心,配置项如下:
+配置中心是微服务架构下一个非常重要的中间件,通过配置中心用户可以增加和删除配置信息,配置信息会通过不同的通知机制(通常包括
+PULL 和 PUSH), 将配置的变化推送到微服务实例。 java-chassis 运行用户使用不同的配置中心, 目前支持用户使用如下几种配置中心:
+
+* 华为云配置中心
+
+华为云配置中心是华为云CSE产品的一个部件,java-chassis 最早使用这个配置配置。 对接这个配置中心的代码在 config-cc 模块实现。
+可以从[轻量化微服务引擎](https://cse-bucket.obs.myhwclouds.com/LocalCSE/Local-CSE-1.0.3.zip)下载本地使用的版本。也可以
+直接访问华为云 [ServiceStage](https://console.huaweicloud.com/servicestage) 产品,使用在线的版本。
+
+使用华为云配置中心,需要在项目中引入如下依赖:
+
+```xml
+<dependency>
+  <groupId>org.apache.servicecomb</groupId>
+  <artifactId>config-cc</artifactId>
+</dependency>
+```
+
+然后在配置文件 microservice.yaml 中增加如下配置项:
+
+```yaml
+servicecomb:
+  config:
+    client:
+      serverUri: http://127.0.0.1:30113
+      refreshMode: 0
+      refresh_interval: 5000
+      refreshPort: 30114
+```
+
+华为云配置中心的其他配置项含义如下:
 
 |配置项名|描述|
 |---|---|
 |servicecomb.config.client.refreshMode|应用配置的刷新方式,`0`为config-center主动push,`1`为client周期pull,默认为`0`|
 |servicecomb.config.client.refreshPort|config-center推送配置的端口|
 |servicecomb.config.client.tenantName|应用的租户名称|
-|servicecomb.config.client.serverUri|config-center访问地址,格式为`http(s)://{ip}:{port}`,以`,`分隔多个地址(可选,当`cse.config.client.regUri`配置为空时该配置项才会生效)|
+|servicecomb.config.client.serverUri|config-center访问地址,格式为`http(s)://{ip}:{port}`,以`,`分隔多个地址|
 |servicecomb.config.client.refresh_interval|pull模式下刷新配置项的时间间隔,单位为毫秒,默认值为30000|
 
+* 使用 servicecomb-kie
+
+[servicecomb-kie](https://github.com/apache/servicecomb-kie) 是全新设计的配置中心。 从 2.0.0 版本开始, java-chassis 支持使用 servicecomb-kie。 
+servicecomb-kie 的安装指导可以参考官网文档。 在 java-chassis 中使用 servicecomb-kie, 需要引入下面的依赖:
+
+```xml
+<dependency>
+  <groupId>org.apache.servicecomb</groupId>
+  <artifactId>config-kie</artifactId>
+</dependency>
+```
+
+然后在配置文件 microservice.yaml 中增加如下配置项:
+
+```yaml
+servicecomb:
+  kie:
+    serverUri: http://127.0.0.1:30110
+    refresh_interval: 5000
+    firstRefreshInterval: 5000
+    domainName: default
+```
+
+servicecomb-kie 的配置项及其含义如下:
+
+|配置项名|描述|
+|---|---|
+|servicecomb.kie.domainName| 区域名称,默认为default |
+|servicecomb.kie.serverUri|servicecomb-kie访问地址,格式为`http(s)://{ip}:{port}`,以`,`分隔多个地址|
+|servicecomb.kie.refresh_interval|pull模式下刷新配置项的时间间隔,单位为毫秒,默认值为3000|
+|servicecomb.kie.firstRefreshInterval|pull模式下启动过程中首次刷新时间间隔,单位为毫秒,默认值为3000|
+
+* 使用 nacos
+
+[nacos](https://github.com/alibaba/nacos) 是 alibaba 提供的配置中心。 java-chassis 从 2.0.0 版本支持 nacos。 
+nacos的下载安装请参考官网介绍。 
+
+使用nacos,需要在项目中引入如下依赖:
+
+```xml
+<dependency>
+  <groupId>org.apache.servicecomb</groupId>
+  <artifactId>config-nacos</artifactId>
+</dependency>
+```
+
+然后在配置文件 microservice.yaml 中增加如下配置项:
+
+```yaml
+servicecomb:
+  nacos:
+    serverUri: http://127.0.0.1:8848
+    group: DEFAULT_GROUP
+    dataId: example
+```
+
+* 使用 Apollo
+
+[Apollo](https://github.com/ctripcorp/apollo) 是携程框架部门研发的分布式配置中心。 Apollo的下载安装请参考官网介绍。 
+
+```xml
+<dependency>
+  <groupId>org.apache.servicecomb</groupId>
+  <artifactId>config-apollo</artifactId>
+</dependency>
+```
+
+然后在配置文件 microservice.yaml 中增加如下配置项:
+
+```yaml
+apollo:
+  config:
+    serverUri: http://127.0.0.1:8070
+    serviceName: apollo-test
+    env: DEV
+    clusters: test-cluster
+    namespace: application
+    token: xxx
+    refreshInterval: 30
+    firstRefreshInterval: 0
+```
+
 ## 在程序中读取配置信息
 
 Java-Chassis支持使用一致的API获取配置,不必关注配置的来源位置:
diff --git a/java-chassis-reference/zh_CN/docs/config/inject-config.md b/java-chassis-reference/zh_CN/docs/config/inject-config.md
index b264230..c2c34ad 100644
--- a/java-chassis-reference/zh_CN/docs/config/inject-config.md
+++ b/java-chassis-reference/zh_CN/docs/config/inject-config.md
@@ -1,6 +1,11 @@
-# 配置注入
-ServiceComb提供将配置属性注入到Java对象字段的特性,并提供通配符支持。
-Java对象可以是一个Java Bean,或是一个拥有public字段的类。
+# 配置注入机制
+
+配置注入提供了一种简单的管理大量复杂配置的机制,开发者不需要使用 DynamicPropertyFactory 逐个读取配置项,增加配置监听,
+而是定义一个简单的 JAVA Bean, 定义这个 Bean 的属性对应的配置项, 当配置信息变化的时候, Bean 的属性会自动刷新,极大
+的简化了用户管理大量复杂配置的复杂度。 
+
+Bean 属性对应的配置项名称支持通配符, 一个属性可以关联若干配置项,可以声明这些配置项的优先级。 Java对象可以是一个
+Java Bean,或是一个拥有public字段的类。
 
 ## 配置注入对象
 我们首先设计两个Java类用于注入配置属性,分别用来演示不使用注解和使用注解的场景。
@@ -65,17 +70,20 @@ ConfigNoAnnotation config = SCBEngine.getInstance().getPriorityPropertyManager()
 将配置属性注入到有`@InjectProperties`和`@InjectProperty`注解的对象上:
 
 * 将名称为root.k.value的配置属性注入到一个ConfigWithAnnotation对象的intValue字段
+
 * ConfigWithAnnotation对象的longValue字段按以下顺序查找已配置的配置属性进行注入:
   1.  root.low-1.a.high-1.b
   2.  root.low-1.a.high-2.b
   3.  root.low-2.a.high-1.b
   4.  root.low-2.a.high-2.b
+
 * ConfigWithAnnotation对象的floatValue字段按以下顺序查找已配置的配置属性进行注入:
   1.  root.l1-1
   2.  root.l1-2
 
 ```Java
-ConfigWithAnnotation config = SCBEngine.getInstance().getPriorityPropertyManager().createConfigObject(ConfigWithAnnotation.class,
+ConfigWithAnnotation config = SCBEngine.getInstance().getPriorityPropertyManager()
+  .createConfigObject(ConfigWithAnnotation.class,
         "key", "k",
         "low-list", Arrays.asList("low-1", "low-2"),
         "high-list", Arrays.asList("high-1", "high-2"),
@@ -83,10 +91,10 @@ ConfigWithAnnotation config = SCBEngine.getInstance().getPriorityPropertyManager
 		);
 ```
 
-最后不管是有无注解的属性注入,都要显式地回收配置注入对象
+如果配置实例是临时的,需要显式地回收配置注入对象。 
+
 ```Java
 priorityPropertyManager.unregisterConfigObject(config)
 ```
 
-## 参考
-示例代码请参考: https://github.com/apache/servicecomb-java-chassis/blob/master/foundations/foundation-config/src/test/java/org/apache/servicecomb/config/inject/TestConfigObjectFactory.java
+更多关于配置注入的用法,建议下载 java-chassis 的源码, 查看 TestConfigObjectFactory 类里面的示例。
\ No newline at end of file
diff --git a/java-chassis-reference/zh_CN/docs/index.md b/java-chassis-reference/zh_CN/docs/index.md
index 101a5e4..11d6ea0 100644
--- a/java-chassis-reference/zh_CN/docs/index.md
+++ b/java-chassis-reference/zh_CN/docs/index.md
@@ -11,8 +11,8 @@ Apache ServiceComb Java Chassis 给开发者提供一个快速构建微服务的
 
 | 版本| 链接 | 说明 |
 | :--- | :--- | :--- |
-| 最新(2.0.0) | [中文](https://docs.servicecomb.io/java-chassis/zh_CN/), [English](https://docs.servicecomb.io/java-chassis/en_US/)| 由github pages托管 |
-| 最新(2.0.0) | [中文](http://liubao68.gitee.io/servicecomb-java-chassis-doc/java-chassis/zh_CN/), [English](http://liubao68.gitee.io/servicecomb-java-chassis-doc/java-chassis/en_US/)| 由gitee pages托管,适合中国用户|
-| 最新(2.0.0) | [中文](http://1v96us.coding-pages.com/docs/java-chassis/zh_CN/), [English](http://1v96us.coding-pages.com/docs/java-chassis/en_US/)| 由coding托管,适合中国用户|
+| 最新(2.0.0) | [中文](https://docs.servicecomb.io/java-chassis/zh_CN/), [English](https://docs.servicecomb.io/java-chassis/en_US/)| 由 github pages 托管 |
+| 最新(2.0.0) | [中文](http://liubao68.gitee.io/servicecomb-java-chassis-doc/java-chassis/zh_CN/), [English](http://liubao68.gitee.io/servicecomb-java-chassis-doc/java-chassis/en_US/)| 由 gitee pages 托管,适合中国用户|
+| 最新(2.0.0) | [中文](http://1v96us.coding-pages.com/docs/java-chassis/zh_CN/), [English](http://1v96us.coding-pages.com/docs/java-chassis/en_US/)| 由 coding pages 托管,适合中国用户|
 | 1.3.0 | [中文](https://docs.servicecomb.io/java-chassis/1.x/zh_CN/), [English](https://docs.servicecomb.io/java-chassis/1.x/en_US/)| |
 | 1.2.1 | [中文](https://docs.servicecomb.io/java-chassis/1.x/zh_CN/), [English](https://docs.servicecomb.io/java-chassis/1.x/en_US/)| |
\ No newline at end of file
diff --git a/java-chassis-reference/zh_CN/docs/upgrading/1_to_2.md b/java-chassis-reference/zh_CN/docs/upgrading/1_to_2.md
index b67fde2..f462065 100644
--- a/java-chassis-reference/zh_CN/docs/upgrading/1_to_2.md
+++ b/java-chassis-reference/zh_CN/docs/upgrading/1_to_2.md
@@ -75,7 +75,7 @@ public enum Media {
   Object result = restTemplate.postForObject(prefix + "/object", new EmptyObject(), EmptyObject.class);
 ```
 
-1.x版本返回的result类型为Map。 2.x版本返回的类型和postForObject指定的类型一致,上面的示例中,结果为EmptyObject类似。
+1.x版本返回的result类型为Map。 2.x版本返回的类型和postForObject指定的类型一致,上面的示例中,result 类型为 EmptyObject。
 
 下面的代码,1.x和2.x版本运行的结果是一样的:
 
@@ -84,7 +84,7 @@ List<GenericObjectParam<List<RecursiveObjectParam>>> response = consumers.getSCB
    postForObject("/testListObjectParam", request, List.class);
 ```
 
-前提条件是GenericObjectParam和RecursiveObjectParam在consumer的classpath中存在对应的类,并且package和服务端定义的类一样。如果不一样response类型为List<Map>,上面的代码会抛出类型转换异常。
+前提条件是GenericObjectParam和RecursiveObjectParam在consumer的classpath中存在对应的类,并且package和服务端定义的类一样。如果不一样, 则 response 类型为List<Map>,上面的代码会抛出类型转换异常。
 
 2.x版本在保持兼容的情况下,支持下面的用法:
 
@@ -107,12 +107,12 @@ List<SpringmvcBasicResponseModel> responseModelList =
 ## Spring Boot 集成的变化
 
 2.x 不再支持 spring 4 和 spring boot 1, 缺省使用 spring 5 和 spring boot 2, 并修改了相关 starters 的名称。 可以
-通过阅读 [在Spring Boot中使用java chassis](../using-java-chassis-in-spring-boot/using-java-chassis-in-spring-boot.md)了解相关变化。
+通过阅读 [在Spring Boot中使用java chassis](../using-java-chassis-in-spring-boot/using-java-chassis-in-spring-boot.md) 了解相关变化。
 
 ## 支持 JDK 11 
 
-2.x 版本可以在 JDK 11下运行,并进行了简单的集成测试。 这个版本最主要的支持 JDK 版本仍然是 8, 并没有采用 JDK 11 编译。
-JDK 11 的一个主要变化是后续可能不在支持通过反射改变类的封装性。 这个特性目前有很多地方使用, 2.x 版本为了适配 JDK 11,
+2.x 版本可以在 JDK 11下运行,并进行了简单的集成测试。 2.x 支持的 核心 JDK 版本仍然是 8, 并没有采用 JDK 11 编译。
+JDK 11 的一个主要变化是后续可能不再支持通过反射改变类的封装性。 这个特性目前有很多地方使用, 2.x 版本为了适配 JDK 11,
 某些特性的使用会发生变化。 具体有如下几个特性 :
 
 * 使用 EventManager 注册事件
diff --git a/java-chassis-reference/zh_CN/mkdocs.yml b/java-chassis-reference/zh_CN/mkdocs.yml
index 74cf229..a6f3c54 100644
--- a/java-chassis-reference/zh_CN/mkdocs.yml
+++ b/java-chassis-reference/zh_CN/mkdocs.yml
@@ -63,9 +63,9 @@ nav:
     - 异常处理: general-development/error-handling.md
     - 微服务实例间多环境隔离: general-development/multienvironment.md
     - 线程模型: general-development/thread-model.md
-- 配置: 
+- 管理服务配置:
     - 通用配置说明: config/general-config.md
-    - 配置注入说明: config/inject-config.md
+    - 配置注入机制: config/inject-config.md
 - 服务能力开放:
     - 介绍: edge/open-service.md
     - 使用Edge Service做边缘服务: edge/by-servicecomb-sdk.md