Jason Song 4 anni fa
parent
commit
ccbfb6e62b

+ 6 - 9
docs/_coverpage.md

@@ -1,14 +1,11 @@
-![logo](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/logo/logo.png)
-
-# Apollo
+<img src="https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/logo/logo-simple.png" alt="apollo-logo" width="30%">
 
 > A reliable configuration management system
 
-- Multiple environment, cluster, namespace
-- Hot change
-- Version control
-- Gray publish
+- Multiple environments and clusters support
+- Configuration changes take effect in real time
+- Versioned and grayscale releases management
+- Great authentication, authorization and audit control
 
 [GitHub](https://github.com/ctripcorp/apollo/)
-[快速开始](zh/deployment/quick-start.md)
-[Quick Start](en/quick-start.md)
+[快速开始](zh/deployment/quick-start.md)

+ 2 - 2
docs/index.html

@@ -34,8 +34,8 @@
       loadSidebar: true,
       loadNavbar: true,
       mergeNavbar: true,
-      maxLevel: 4,
-      subMaxLevel: 3,
+      maxLevel: 6,
+      subMaxLevel: 5,
       name: 'Apollo',
       repo: 'https://github.com/ctripcorp/apollo/',
       search: {

+ 1 - 2
docs/zh/README.md

@@ -71,7 +71,7 @@ Java客户端不依赖任何框架,能够运行于所有Java运行时环境,
   5. [Apollo开放平台接入指南](zh/usage/apollo-open-api-platform)
   6. [Apollo使用场景和示例代码](https://github.com/ctripcorp/apollo-use-cases)
   7. [Apollo实践案例](zh/usage/apollo-user-practices)
-  8. [Apollo安全相关最佳实践](zh/usage/apollo-user-guide?id=_71-安全相关)
+  8. [Apollo安全相关最佳实践](zh/usage/apollo-user-guide?id=_71-%e5%ae%89%e5%85%a8%e7%9b%b8%e5%85%b3)
 
 # Design
   - [Apollo配置中心设计](zh/design/apollo-design.md)
@@ -91,7 +91,6 @@ Java客户端不依赖任何框架,能够运行于所有Java运行时环境,
   - [Quick Start](zh/deployment/quick-start.md)
   - [Docker方式部署Quick Start](zh/deployment/quick-start-docker.md)
   - [分布式部署指南](zh/deployment/distributed-deployment-guide.md)
-  - [Apollo源码解析(全)](http://www.iocoder.cn/categories/Apollo/)
 
 # Release Notes
   * [版本发布历史](https://github.com/ctripcorp/apollo/releases)

+ 22 - 24
docs/zh/_sidebar.md

@@ -1,18 +1,17 @@
-- [HOME](zh/README.md)
-
-- 设计
+- [**首页**](zh/README.md)
 
+- 设计文档
   - [Apollo配置中心设计](zh/design/apollo-design.md)
   - [Apollo配置中心介绍](zh/design/apollo-introduction.md)
   - [Apollo核心概念之“Namespace”](zh/design/apollo-core-concept-namespace.md)
   - [Apollo源码解析(全)](http://www.iocoder.cn/categories/Apollo/)
 
-- 部署
+- 部署文档
   - [Quick Start](zh/deployment/quick-start.md)
   - [Docker方式部署Quick Start](zh/deployment/quick-start-docker.md)
   - [分布式部署指南](zh/deployment/distributed-deployment-guide.md)
 
-- 开发
+- 开发文档
   - [Apollo开发指南](zh/development/apollo-development-guide.md)
   - Code Styles
     - [Eclipse Code Style](https://github.com/ctripcorp/apollo/blob/master/apollo-buildtools/style/eclipse-java-google-style.xml)
@@ -20,22 +19,21 @@
   - [Portal实现用户登录功能](zh/development/portal-how-to-implement-user-login-function.md)
   - [邮件模板样例](zh/development/email-template-samples.md)
 
-* 系统使用
-    * [Apollo使用指南](zh/usage/apollo-user-guide.md)
-    * [Java客户端使用指南](zh/usage/java-sdk-user-guide.md)
-    * [.Net客户端使用指南](zh/usage/dotnet-sdk-user-guide.md)
-    * [Go、Python、NodeJS、PHP等客户端使用指南](zh/usage/third-party-sdks-user-guide.md)
-    * [其它语言客户端接入指南](zh/usage/other-language-client-user-guide.md)
-    * [Apollo开放平台接入指南](zh/usage/apollo-open-api-platform.md)
-    * [Apollo使用场景和示例代码](https://github.com/ctripcorp/apollo-use-cases)
-    * [Apollo实践案例](zh/usage/apollo-user-practices.md)
-    * [Apollo安全相关最佳实践](zh/usage/apollo-user-guide?id=_71-安全相关)
-
-* FAQ
-    * [常见问题回答](zh/faq/faq.md)
-    * [部署&开发遇到的常见问题](zh/faq/common-issues-in-deployment-and-development-phase.md)
-
-* 其它
-   * [Apollo性能测试报告](zh/misc/apollo-benchmark.md)
-
-- [Releases](https://github.com/ctripcorp/apollo/releases)
+- 系统使用文档
+  - [Apollo使用指南](zh/usage/apollo-user-guide.md)
+  - [Java客户端使用指南](zh/usage/java-sdk-user-guide.md)
+  - [.Net客户端使用指南](zh/usage/dotnet-sdk-user-guide.md)
+  - [Go、Python、NodeJS、PHP等客户端使用指南](zh/usage/third-party-sdks-user-guide.md)
+  - [其它语言客户端接入指南](zh/usage/other-language-client-user-guide.md)
+  - [Apollo开放平台接入指南](zh/usage/apollo-open-api-platform.md)
+  - [Apollo使用场景和示例代码](https://github.com/ctripcorp/apollo-use-cases)
+  - [Apollo实践案例](zh/usage/apollo-user-practices.md)
+  - [Apollo安全相关最佳实践](zh/usage/apollo-user-guide?id=_71-%e5%ae%89%e5%85%a8%e7%9b%b8%e5%85%b3)
+
+- FAQ
+  - [常见问题回答](zh/faq/faq.md)
+  - [部署&开发遇到的常见问题](zh/faq/common-issues-in-deployment-and-development-phase.md)
+
+- 其它
+   - [版本历史](https://github.com/ctripcorp/apollo/releases)
+   - [Apollo性能测试报告](zh/misc/apollo-benchmark.md)

+ 10 - 11
docs/zh/deployment/distributed-deployment-guide.md

@@ -2,15 +2,16 @@
 
 > 如果只是需要在本地快速部署试用Apollo的话,可以参考[Quick Start](zh/deployment/quick-start)
 
+# &nbsp;
 # 一、准备工作
 
 ## 1.1 运行时环境
 
-## 1.1.1 OS
+### 1.1.1 OS
 
 服务端基于Spring Boot,启动脚本理论上支持所有Linux发行版,建议[CentOS 7](https://www.centos.org/)。
 
-## 1.1.2 Java
+### 1.1.2 Java
 
 * Apollo服务端:1.8+
 * Apollo客户端:1.7+
@@ -67,7 +68,7 @@ Apollo目前支持以下环境:
 * PRO
     * 生产环境
 
-> 如果希望添加自定义的环境名称,具体步骤可以参考[部署&开发遇到的常见问题#42-添加自定义的环境](zh/faq/common-issues-in-deployment-and-development-phase?id=_4-portal如何增加环境?)
+> 如果希望添加自定义的环境名称,具体步骤可以参考[Portal如何增加环境](zh/faq/common-issues-in-deployment-and-development-phase?id=_4-portal如何增加环境?)
 
 以ctrip为例,我们的部署策略如下:
 ![Deployment](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/apollo-deployment.png)
@@ -208,7 +209,7 @@ select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDB`.`ServerConfig` limi
 
 > 注:ApolloConfigDB需要在每个环境部署一套,如fat、uat和pro分别部署3套ApolloConfigDB
 
-#### 2.1.2.1 从别的环境导入ApolloConfigDB的项目数据
+#### 2.1.2.4 从别的环境导入ApolloConfigDB的项目数据
 如果是全新部署的Apollo配置中心,请忽略此步。
 
 如果不是全新部署的Apollo配置中心,比如已经使用了一段时间,这时在Apollo配置中心已经创建了不少项目以及namespace等,那么在新环境中的ApolloConfigDB中需要从其它正常运行的环境中导入必要的项目数据。
@@ -249,11 +250,11 @@ DEV,FAT,UAT,PRO
 
 修改完需要重启生效。
 
->注1:一套Portal可以管理多个环境,但是每个环境都需要独立部署一套Config Service、Admin Service和ApolloConfigDB,具体请参考:[2.1.2 创建ApolloConfigDB](#_212-创建apolloconfigdb),[2.1.3.2 调整ApolloConfigDB配置](#_2132-调整apolloconfigdb配置),[2.2.1.1.2 配置数据库连接信息](#_22112-配置数据库连接信息),另外如果是为已经运行了一段时间的Apollo配置中心增加环境,别忘了参考[2.1.2.1 从别的环境导入ApolloConfigDB的项目数据](#_2121-从别的环境导入apolloconfigdb的项目数据)对新的环境做初始化。
+>注1:一套Portal可以管理多个环境,但是每个环境都需要独立部署一套Config Service、Admin Service和ApolloConfigDB,具体请参考:[2.1.2 创建ApolloConfigDB](#_212-创建apolloconfigdb),[2.1.3.2 调整ApolloConfigDB配置](#_2132-调整apolloconfigdb配置),[2.2.1.1.2 配置数据库连接信息](#_22112-配置数据库连接信息),另外如果是为已经运行了一段时间的Apollo配置中心增加环境,别忘了参考[2.1.2.4 从别的环境导入ApolloConfigDB的项目数据](#_2124-从别的环境导入apolloconfigdb的项目数据)对新的环境做初始化。
 
->注2:只在数据库添加环境是不起作用的,还需要为apollo-portal添加新增环境对应的meta server地址,具体参考:[2.2.1.1.2.4 配置apollo-portal的meta service信息](#221124-%E9%85%8D%E7%BD%AEapollo-portal%E7%9A%84meta-service%E4%BF%A1%E6%81%AF)。apollo-client在新的环境下使用时也需要做好相应的配置,具体参考:[1.2.2 Apollo Meta Server](zh/usage/java-sdk-user-guide#_122-apollo-meta-server)。
+>注2:只在数据库添加环境是不起作用的,还需要为apollo-portal添加新增环境对应的meta server地址,具体参考:[2.2.1.1.2.4 配置apollo-portal的meta service信息](#_221124-配置apollo-portal的meta-service信息)。apollo-client在新的环境下使用时也需要做好相应的配置,具体参考:[1.2.2 Apollo Meta Server](zh/usage/java-sdk-user-guide#_122-apollo-meta-server)。
 
->注3:如果希望添加自定义的环境名称,具体步骤可以参考[Portal如何增加环境](zh/%E9%83%A8%E7%BD%B2&%E5%BC%80%E5%8F%91%E9%81%87%E5%88%B0%E7%9A%84%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98#4-portal%E5%A6%82%E4%BD%95%E5%A2%9E%E5%8A%A0%E7%8E%AF%E5%A2%83)。
+>注3:如果希望添加自定义的环境名称,具体步骤可以参考[Portal如何增加环境](zh/faq/common-issues-in-deployment-and-development-phase?id=_4-portal如何增加环境?)。
 
 >注4:1.1.0版本增加了系统信息页面(`管理员工具` -> `系统信息`),可以通过该页面检查配置是否正确
 
@@ -730,9 +731,7 @@ docker run -p 8070:8070 \
 * APOLLO_PORTAL_ENVS(可选): 对应ApolloPortalDB中的[apollo.portal.envs](#_1-apolloportalenvs-可支持的环境列表)配置项,如果没有在数据库中配置的话,可以通过此环境参数配置
 * DEV_META/PRO_META(可选): 配置对应环境的Meta Service地址,以${ENV}_META命名,需要注意的是如果配置了ApolloPortalDB中的[apollo.portal.meta.servers](#_2-apolloportalmetaservers-各环境meta-service列表)配置,则以apollo.portal.meta.servers中的配置为准
 
-### 2.3.2 
-
-> 1.7.0之前的版本
+### 2.3.2 1.7.0之前的版本
 
 Apollo项目已经自带了Docker file,可以参照[2.2.1 获取安装包](#_221-获取安装包)配置好安装包后通过下面的文件来打Docker镜像:
 
@@ -792,7 +791,7 @@ Get meta service url for current release by running these commands:
   echo http://apollo-service-dev-apollo-configservice:8080
 ```
 
-> 更多配置项说明可以参考[2.4.1.3.3 配置项说明](#_24143-配置项说明)
+> 更多配置项说明可以参考[2.4.1.3.3 配置项说明](#_24133-配置项说明)
 
 ##### 2.4.1.3.2 卸载apollo-configservice和apollo-adminservice
 

+ 1 - 0
docs/zh/deployment/quick-start.md

@@ -6,6 +6,7 @@
 
 > 注:Quick Start需要有bash环境,Windows用户请安装[Git Bash](https://git-for-windows.github.io/),建议使用最新版本,老版本可能会遇到未知问题。也可以直接通过IDE环境启动,详见[Apollo开发指南](zh/development/apollo-development-guide)。
 
+# &nbsp;
 # 一、准备工作
 ## 1.1 Java
 

+ 1 - 1
docs/zh/design/apollo-core-concept-namespace.md

@@ -151,7 +151,7 @@ k2 = v2
   publicConfig.getProperty("k6", null); // k6 = v6
   publicConfig.getProperty("k7", null); // k7 = v7
 ```
-#### 5.4.4 ChangeListener
+##### 5.4.4 ChangeListener
 
 以上代码例子中可以看到,在客户端Namespace映射成一个Config对象。Namespace配置变更的监听器是注册在Config对象上。
 

+ 2 - 1
docs/zh/design/apollo-design.md

@@ -1,3 +1,4 @@
+# &nbsp;
 # 一、总体设计
 
 ## 1.1 基础模型
@@ -140,7 +141,7 @@
 3. Admin Service发布配置后,发送ReleaseMessage给各个Config Service
 4. Config Service收到ReleaseMessage后,通知对应的客户端
 
-## 2.1.1 发送ReleaseMessage的实现方式
+### 2.1.1 发送ReleaseMessage的实现方式
 
 Admin Service在配置发布后,需要通知所有的Config Service有配置发布,从而Config Service可以通知对应的客户端来拉取最新的配置。
 

+ 2 - 1
docs/zh/design/apollo-introduction.md

@@ -1,3 +1,4 @@
+# &nbsp;
 # 1、What is Apollo
 
 ## 1.1 背景
@@ -230,7 +231,7 @@ public class SomeBean {
 
 ### 4.2.2 在Cluster中添加配置并发布
 
-集群添加成功后,就可以为该集群添加配置了,首先需要按照下图所示切换到SHAJQ集群,之后配置添加流程和[3.2添加/修改配置项](#32-%E6%B7%BB%E5%8A%A0%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E9%A1%B9)一样,这里就不再赘述了。
+集群添加成功后,就可以为该集群添加配置了,首先需要按照下图所示切换到SHAJQ集群,之后配置添加流程和[3.3 添加/修改配置项](#_33-添加修改配置项)一样,这里就不再赘述了。
 
 ![cluster-created](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/cluster-created.png)
 

+ 1 - 0
docs/zh/development/apollo-development-guide.md

@@ -1,5 +1,6 @@
 本文档介绍了如何在本地使用IDE编译、运行Apollo,从而可以帮助大家了解Apollo的内在运行机制,同时也为自定义开发做好准备。
 
+# &nbsp;
 # 一、准备工作
 ## 1.1 本地运行时环境
 Apollo本地开发需要以下组件:

+ 4 - 4
docs/zh/faq/common-issues-in-deployment-and-development-phase.md

@@ -72,7 +72,7 @@ eureka:
 
 >注1:一套Portal可以管理多个环境,但是每个环境都需要独立部署一套Config Service、Admin Service和ApolloConfigDB,具体请参考:[2.1.2 创建ApolloConfigDB](zh/deployment/distributed-deployment-guide?id=_212-创建apolloconfigdb),[2.1.3.2 调整ApolloConfigDB配置](zh/deployment/distributed-deployment-guide?id=_2132-调整apolloconfigdb配置),[2.2.1.1.2 配置数据库连接信息](zh/deployment/distributed-deployment-guide?id=_22112-配置数据库连接信息)
 
-> 注2:如果是为已经运行了一段时间的Apollo配置中心增加环境,别忘了参考[2.1.2.1 从别的环境导入ApolloConfigDB的项目数据](zh/deployment/distributed-deployment-guide?id=_2121-从别的环境导入apolloconfigdb的项目数据)对新的环境做初始化
+> 注2:如果是为已经运行了一段时间的Apollo配置中心增加环境,别忘了参考[2.1.2.4 从别的环境导入ApolloConfigDB的项目数据](zh/deployment/distributed-deployment-guide?id=_2124-从别的环境导入apolloconfigdb的项目数据)对新的环境做初始化
 
 #### 4.2 1.5.1及之前的版本
 ##### 4.2.1 添加Apollo预先定义好的环境
@@ -83,7 +83,7 @@ eureka:
 
 >注1:一套Portal可以管理多个环境,但是每个环境都需要独立部署一套Config Service、Admin Service和ApolloConfigDB,具体请参考:[2.1.2 创建ApolloConfigDB](zh/deployment/distributed-deployment-guide?id=_212-创建apolloconfigdb),[2.1.3.2 调整ApolloConfigDB配置](zh/deployment/distributed-deployment-guide?id=_2132-调整apolloconfigdb配置),[2.2.1.1.2 配置数据库连接信息](zh/deployment/distributed-deployment-guide?id=_22112-配置数据库连接信息)
 
-> 注2:如果是为已经运行了一段时间的Apollo配置中心增加环境,别忘了参考[2.1.2.1 从别的环境导入ApolloConfigDB的项目数据](zh/deployment/distributed-deployment-guide?id=_2121-从别的环境导入apolloconfigdb的项目数据)对新的环境做初始化
+> 注2:如果是为已经运行了一段时间的Apollo配置中心增加环境,别忘了参考[2.1.2.4 从别的环境导入ApolloConfigDB的项目数据](zh/deployment/distributed-deployment-guide?id=_2124-从别的环境导入apolloconfigdb的项目数据)对新的环境做初始化
 
 ##### 4.2.2 添加自定义的环境
 
@@ -139,7 +139,7 @@ public class LegacyMetaServerProvider {
 
 >注1:一套Portal可以管理多个环境,但是每个环境都需要独立部署一套Config Service、Admin Service和ApolloConfigDB,具体请参考:[2.1.2 创建ApolloConfigDB](zh/deployment/distributed-deployment-guide?id=_212-创建apolloconfigdb),[2.1.3.2 调整ApolloConfigDB配置](zh/deployment/distributed-deployment-guide?id=_2132-调整apolloconfigdb配置),[2.2.1.1.2 配置数据库连接信息](zh/deployment/distributed-deployment-guide?id=_22112-配置数据库连接信息)
 
-> 注2:如果是为已经运行了一段时间的Apollo配置中心增加环境,别忘了参考[2.1.2.1 从别的环境导入ApolloConfigDB的项目数据](zh/deployment/distributed-deployment-guide?id=_2121-从别的环境导入apolloconfigdb的项目数据)对新的环境做初始化
+> 注2:如果是为已经运行了一段时间的Apollo配置中心增加环境,别忘了参考[2.1.2.4 从别的环境导入ApolloConfigDB的项目数据](zh/deployment/distributed-deployment-guide?id=_2124-从别的环境导入apolloconfigdb的项目数据)对新的环境做初始化
 
 ### 5. 如何删除应用、集群、Namespace?
 
@@ -225,7 +225,7 @@ http://1.1.1.1:8761/eureka/,http://2.2.2.2:8761/eureka/
 
 ### 9. Spring Boot中使用`ConditionalOnProperty`读取不到配置
 
-`@ConditionalOnProperty`功能从0.10.0版本开始支持,具体可以参考 [3.2.1.3 在Spring Boot初始bootstrap阶段注入配置](zh/usage/java-sdk-user-guide?id=_322-spring-placeholder的使用)
+`@ConditionalOnProperty`功能从0.10.0版本开始支持,具体可以参考 [Spring Boot集成方式](zh/usage/java-sdk-user-guide?id=_3213-spring-boot集成方式(推荐))
 
 ### 10. 多机房如何实现A机房的客户端就近读取A机房的config service,B机房的客户端就近读取B机房的config service?
 

+ 9 - 9
docs/zh/usage/apollo-open-api-platform.md

@@ -35,7 +35,7 @@ Apollo管理员在 http://{portal_address}/open/manage.html 创建第三方应
 <dependency>
     <groupId>com.ctrip.framework.apollo</groupId>
     <artifactId>apollo-openapi</artifactId>
-    <version>1.1.0</version>
+    <version>1.7.0</version>
 </dependency>
 ```
 
@@ -159,7 +159,7 @@ appIds | false | String | appId列表,以逗号分隔,如果为空则返回
 }
 ```
 
-#### 3.2.4 创建集群接口
+##### 3.2.4 创建集群接口
 可以通过此接口创建集群,调用此接口需要授予第三方APP对目标APP的管理权限。
 
 * **URL** :  http://{portal_address}/openapi/v1/envs/{env}/apps/{appId}/clusters
@@ -284,7 +284,7 @@ dataChangeCreatedBy | true | String | namespace的创建人,格式为域账号
     "dataChangeLastModifiedTime": "2016-07-20T14:05:58.000+0800"
   }
 ```
-#### 3.2.7 创建Namespace
+##### 3.2.7 创建Namespace
 可以通过此接口创建Namespace,调用此接口需要授予第三方APP对目标APP的管理权限。
 
 * **URL** :  http://{portal_address}/openapi/v1/apps/{appId}/appnamespaces
@@ -454,7 +454,7 @@ operator | true | String | 删除配置的操作者,域账号
 
 * **返回值** : 无
 
-##### 3.2.11 发布配置接口
+##### 3.2.13 发布配置接口
 
 * **URL** : http://{portal_address}/openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/releases
 * **Method** : POST
@@ -496,7 +496,7 @@ releasedBy | true | String | 发布人,域账号,注意:如果`ApolloConfi
 }
 ```
 
-##### 3.2.12 获取某个Namespace当前生效的已发布配置接口 
+##### 3.2.14 获取某个Namespace当前生效的已发布配置接口 
 
 * **URL** :  http://{portal_address}/openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/releases/latest
 * **Method** : GET
@@ -520,7 +520,7 @@ releasedBy | true | String | 发布人,域账号,注意:如果`ApolloConfi
 }
 ```
 
-##### 3.2.13 回滚已发布配置接口 
+##### 3.2.15 回滚已发布配置接口 
 
 * **URL** :  http://{portal_address}/openapi/v1/envs/{env}/releases/{releaseId}/rollback
 * **Method** : PUT
@@ -542,11 +542,11 @@ operator | true | String | 删除配置的操作者,域账号
 接口传入的token非法或者已过期,客户端需要检查token是否传入正确。
 ####  4.3 403 - Forbidden
 接口要访问的资源未得到授权,比如只授权了对A应用下Namespace的管理权限,但是却尝试管理B应用下的配置。
-####  4.3 404 - Not Found
+####  4.4 404 - Not Found
 接口要访问的资源不存在,一般是URL或URL的参数错误。
-####  4.4 405 - Method Not Allowed
+####  4.5 405 - Method Not Allowed
 接口访问的Method不正确,比如应该使用POST的接口使用了GET访问等,客户端需要检查接口访问方式是否正确。
-####  4.4 500 - Internal Server Error
+####  4.6 500 - Internal Server Error
 其它类型的错误默认都会返回500,对这类错误如果应用无法根据提示信息找到原因的话,可以找Apollo研发团队一起排查问题。
 
 

+ 7 - 6
docs/zh/usage/apollo-user-guide.md

@@ -1,3 +1,4 @@
+# &nbsp;
 # 名词解释
 * 普通应用
     * 普通应用指的是独立运行的程序,如
@@ -137,8 +138,8 @@ Apollo中的回滚也是类似的机制,点击回滚后是将发布到客户
 
 所以,首先执行普通应用接入文档中的以下几个步骤,然后再按照本章节后面的步骤操作。
 
-1. [创建项目](#11-%E5%88%9B%E5%BB%BA%E9%A1%B9%E7%9B%AE)
-2. [项目管理员权限](#121-%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E5%91%98%E6%9D%83%E9%99%90)
+1. [创建项目](#_11-%E5%88%9B%E5%BB%BA%E9%A1%B9%E7%9B%AE)
+2. [项目管理员权限](#_121-%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E5%91%98%E6%9D%83%E9%99%90)
 
 ### 2.2.1 创建Namespace
 
@@ -183,8 +184,8 @@ Apollo中的回滚也是类似的机制,点击回滚后是将发布到客户
 3. 点击提交
 ![public-namespace-item-created](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/public-namespace-item-created.png)
 
-#### 2.2.2.3 通过文本模式编辑
-这部分和普通应用一致,具体步骤请参见[1.3.2 通过文本模式编辑](#132-%E9%80%9A%E8%BF%87%E6%96%87%E6%9C%AC%E6%A8%A1%E5%BC%8F%E7%BC%96%E8%BE%91)。
+#### 2.2.2.2 通过文本模式编辑
+这部分和普通应用一致,具体步骤请参见[1.3.2 通过文本模式编辑](#_132-%E9%80%9A%E8%BF%87%E6%96%87%E6%9C%AC%E6%A8%A1%E5%BC%8F%E7%BC%96%E8%BE%91)。
 
 ### 2.2.3 发布配置
 
@@ -289,7 +290,7 @@ Apollo目前提供Java客户端,具体信息请点击[Java客户端使用文
 
 如果某个AppId需要覆盖公共的配置信息,那么在该AppId下关联公共的namespace并写入需要覆盖的配置即可。
 
-具体步骤可以参考[公共组件接入指南](#%E4%BA%8C%E5%85%AC%E5%85%B1%E7%BB%84%E4%BB%B6%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97)。
+具体步骤可以参考[公共组件接入指南](#%e4%ba%8c%e3%80%81%e5%85%ac%e5%85%b1%e7%bb%84%e4%bb%b6%e6%8e%a5%e5%85%a5%e6%8c%87%e5%8d%97)。
 
 # 五、灰度发布使用指南
 通过灰度发布功能,可以实现:
@@ -460,5 +461,5 @@ Apollo 支持细粒度的权限控制,请务必根据实际情况做好权限
 除了用户权限,在系统访问上也需要加以考虑:
 
 1. `apollo-configservice`和`apollo-adminservice`是基于内网可信网络设计的,所以出于安全考虑,禁止`apollo-configservice`和`apollo-adminservice`直接暴露在公网
-2. 对敏感配置可以考虑开启[访问秘钥](#62-%E9%85%8D%E7%BD%AE%E8%AE%BF%E9%97%AE%E7%A7%98%E9%92%A5),从而只有经过身份验证的客户端才能访问敏感配置
+2. 对敏感配置可以考虑开启[访问秘钥](#_62-%e9%85%8d%e7%bd%ae%e8%ae%bf%e9%97%ae%e5%af%86%e9%92%a5),从而只有经过身份验证的客户端才能访问敏感配置
 3. 1.7.1及以上版本可以考虑为`apollo-adminservice`开启[访问控制](zh/deployment/distributed-deployment-guide?id=_6-admin-serviceaccesscontrolenabled-配置apollo-adminservice是否开启访问控制),从而只有合法的`apollo-portal`才能访问对应接口,增强安全性

+ 1 - 3
docs/zh/usage/apollo-user-practices.md

@@ -1,6 +1,4 @@
 Apollo 配置中心的实践案例,供大家参考:
 
 * [Apollo+ES源码改造,构建民生银行的ELK日志平台配置管理中心](https://mp.weixin.qq.com/s/VHugn0vgNu4m56V49geC4w)
-* [Apollo在有赞的实践](https://mp.weixin.qq.com/s/Ge14UeY9Gm2Hrk--E47eJQ)
-
-> 如您有案例希望分享,欢迎提交 Pull Request 至 [apollo-community](https://github.com/ctripcorp/apollo-community)
+* [Apollo在有赞的实践](https://mp.weixin.qq.com/s/Ge14UeY9Gm2Hrk--E47eJQ)

+ 3 - 2
docs/zh/usage/dotnet-sdk-user-guide.md

@@ -1,5 +1,6 @@
->注意:本文档适用对象是Apollo系统的使用者,如果你是公司内Apollo系统的开发者/维护人员,建议先参考[Apollo开发指南](zh/Apollo%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97)。
+>注意:本文档适用对象是Apollo系统的使用者,如果你是公司内Apollo系统的开发者/维护人员,建议先参考[Apollo开发指南](zh/development/apollo-development-guide)。
 
+# &nbsp;
 # 一、准备工作
 
 ## 1.1 环境要求
@@ -222,5 +223,5 @@ appId就是应用的appId,如100004458。
 }
 ```
 
-### 5.3 修改配置
+## 5.3 修改配置
 在本地开发模式下,Apollo不会实时监测文件内容是否有变化,所以如果修改了配置,需要重启应用生效。

+ 5 - 4
docs/zh/usage/java-sdk-user-guide.md

@@ -1,5 +1,6 @@
 >注意:本文档适用对象是Apollo系统的使用者,如果你是公司内Apollo系统的开发者/维护人员,建议先参考[Apollo开发指南](zh/development/apollo-development-guide)。
 
+# &nbsp;
 # 一、准备工作
 ## 1.1 环境要求
     
@@ -307,7 +308,7 @@ Apollo的客户端jar包已经上传到中央仓库,应用在实际使用时
     <dependency>
         <groupId>com.ctrip.framework.apollo</groupId>
         <artifactId>apollo-client</artifactId>
-        <version>1.1.0</version>
+        <version>1.7.0</version>
     </dependency>
 ```
 
@@ -847,7 +848,7 @@ Apollo客户端还支持本地开发模式,这个主要用于当开发环境
 env=Local
 ```
 
-更多配置环境的方式请参考[1.2.2 Environment](#122-environment)
+更多配置环境的方式请参考[1.2.4.1 Environment](#_1241-environment)
 
 ## 5.2 准备本地配置文件
 在本地开发模式下,Apollo客户端会从本地读取文件,所以我们需要事先准备好配置文件。
@@ -879,7 +880,7 @@ request.timeout=2000
 batch=2000
 ```
 
-### 5.3 修改配置
+## 5.3 修改配置
 在本地开发模式下,Apollo不会实时监测文件内容是否有变化,所以如果修改了配置,需要重启应用生效。
 
 # 六、测试模式
@@ -891,7 +892,7 @@ batch=2000
 <dependency>
     <groupId>com.ctrip.framework.apollo</groupId>
     <artifactId>apollo-mockserver</artifactId>
-    <version>1.1.0</version>
+    <version>1.7.0</version>
 </dependency>
 
 ```

+ 6 - 6
docs/zh/usage/other-language-client-user-guide.md

@@ -11,7 +11,7 @@
 
 该接口会从缓存中获取配置,适合频率较高的配置拉取请求,如简单的每30秒轮询一次配置。
 
-由于缓存最多会有一秒的延时,所以如果需要配合配置推送通知实现实时更新配置的话,请参考[1.3 通过不带缓存的Http接口从Apollo读取配置](#13-%E9%80%9A%E8%BF%87%E4%B8%8D%E5%B8%A6%E7%BC%93%E5%AD%98%E7%9A%84http%E6%8E%A5%E5%8F%A3%E4%BB%8Eapollo%E8%AF%BB%E5%8F%96%E9%85%8D%E7%BD%AE)。
+由于缓存最多会有一秒的延时,所以如果需要配合配置推送通知实现实时更新配置的话,请参考[1.3 通过不带缓存的Http接口从Apollo读取配置](#_13-%E9%80%9A%E8%BF%87%E4%B8%8D%E5%B8%A6%E7%BC%93%E5%AD%98%E7%9A%84http%E6%8E%A5%E5%8F%A3%E4%BB%8Eapollo%E8%AF%BB%E5%8F%96%E9%85%8D%E7%BD%AE)。
 
 ### 1.2.1 Http接口说明
 **URL**: {config_server_url}/configfiles/json/{appId}/{clusterName}/{namespaceName}?ip={clientIp}
@@ -115,7 +115,7 @@ Apollo提供了基于Http long polling的配置更新推送通知,第三方客
 4. 如果传过来的notifications信息中发现有notificationId比服务端老,则直接返回对应namespace的最新notificationId, HttpStatus 200。
 5. 客户端拿到服务端返回后,判断返回的HttpStatus
 6. 如果返回的HttpStatus是304,说明配置没有变化,重新执行第1步
-7. 如果返回的HttpStauts是200,说明配置有变化,针对变化的namespace重新去服务端拉取配置,参见[1.3 通过不带缓存的Http接口从Apollo读取配置](#13-%E9%80%9A%E8%BF%87%E4%B8%8D%E5%B8%A6%E7%BC%93%E5%AD%98%E7%9A%84http%E6%8E%A5%E5%8F%A3%E4%BB%8Eapollo%E8%AF%BB%E5%8F%96%E9%85%8D%E7%BD%AE)。同时更新notifications map中的notificationId。重新执行第1步。
+7. 如果返回的HttpStauts是200,说明配置有变化,针对变化的namespace重新去服务端拉取配置,参见[1.3 通过不带缓存的Http接口从Apollo读取配置](#_13-%E9%80%9A%E8%BF%87%E4%B8%8D%E5%B8%A6%E7%BC%93%E5%AD%98%E7%9A%84http%E6%8E%A5%E5%8F%A3%E4%BB%8Eapollo%E8%AF%BB%E5%8F%96%E9%85%8D%E7%BD%AE)。同时更新notifications map中的notificationId。重新执行第1步。
 
 
 ### 1.4.2 Http接口说明
@@ -161,7 +161,7 @@ Apollo从1.6.0版本开始增加访问密钥机制,从而只有经过身份验
 | Header        | Value                                          | 备注                                                                                                                                                          |
 |---------------|------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
 | Authorization | Apollo ${appId}:${signature}                   | appId: 应用的appId,signature:使用访问密钥对当前时间以及所访问的URL加签后的值,具体实现可以参考[Signature.signature](https://github.com/ctripcorp/apollo/blob/aa184a2e11d6e7e3f519d860d69f3cf30ccfcf9c/apollo-core/src/main/java/com/ctrip/framework/apollo/core/signature/Signature.java#L22)  |
-| Timestamp     | 从1970-1-1 00:00:00 UTC+0 到现在所经过的毫秒数 | 可以参考[System.currentTimeMillis](https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#currentTimeMillis()) |
+| Timestamp     | 从`1970-1-1 00:00:00 UTC+0`到现在所经过的毫秒数 | 可以参考[System.currentTimeMillis](https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#currentTimeMillis()) |
 
 ## 1.6 错误码说明
 正常情况下,接口返回的Http状态码是200,下面列举了Apollo会返回的非200错误码说明。
@@ -172,11 +172,11 @@ Apollo从1.6.0版本开始增加访问密钥机制,从而只有经过身份验
 ### 1.6.2 401 - Unauthorized
 客户端未授权,如服务端配置了访问密钥,客户端未配置或配置错误。
 
-### 1.6.2 404 - Not Found
+### 1.6.3 404 - Not Found
 接口要访问的资源不存在,一般是URL或URL的参数错误,或者是对应的namespace还没有发布过配置。
 
-### 1.6.3 405 - Method Not Allowed
+### 1.6.4 405 - Method Not Allowed
 接口访问的Method不正确,比如应该使用GET的接口使用了POST访问等,客户端需要检查接口访问方式是否正确。
 
-### 1.6.4 500 - Internal Server Error
+### 1.6.5 500 - Internal Server Error
 其它类型的错误默认都会返回500,对这类错误如果应用无法根据提示信息找到原因的话,可以尝试查看服务端日志来排查问题。