You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/04/04 02:57:52 UTC

[incubator-servicecomb-website] branch asf-site updated (f852d39 -> 36d1ab3)

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

ningjiang pushed a change to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-website.git.


    from f852d39  Publish the website
     add 5162bdb  SCB-460 add blog to introduce config-center integration in servicecomb
     add 77ae78e  SCB-460 update refrence blog link address
     add 7ea2cb3  SCB-458 add blog to introduce saga's evolution
     add a143e2e  SCB-458 update saga version
     add 63ff68d  add edge cn doc
     add 091da78  add init method example
     add 93e4e30  add example chapter
     add b57eac3  SCB-461 add blog to introduce how to join the community
     new 625ac5a  Merge branch 'master' into asf-site
     new 36d1ab3  Publish the website

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 _data/navigation.yml                               |    2 +
 _posts/cn/2018-04-04-config-center-integration.md  |  182 ++++
 _posts/cn/2018-04-04-saga-pack-design.md           |  167 ++++
 _users/cn/edge-in-1.0.0-m1.md                      |  100 ++
 assets/images/pack/exception_scenario.png          |  Bin 0 -> 114741 bytes
 assets/images/pack/id_flow.png                     |  Bin 0 -> 47939 bytes
 assets/images/pack/omega_internal.png              |  Bin 0 -> 23090 bytes
 assets/images/pack/pack.png                        |  Bin 0 -> 10227 bytes
 assets/images/pack/successful_scenario.png         |  Bin 0 -> 106122 bytes
 assets/images/pack/timeout_scenario.png            |  Bin 0 -> 102750 bytes
 content/assets/images/pack/exception_scenario.png  |  Bin 0 -> 114741 bytes
 content/assets/images/pack/id_flow.png             |  Bin 0 -> 47939 bytes
 content/assets/images/pack/omega_internal.png      |  Bin 0 -> 23090 bytes
 content/assets/images/pack/pack.png                |  Bin 0 -> 10227 bytes
 content/assets/images/pack/successful_scenario.png |  Bin 0 -> 106122 bytes
 content/assets/images/pack/timeout_scenario.png    |  Bin 0 -> 102750 bytes
 content/cn/docs/autoscale-on-company/index.html    |   24 +-
 content/cn/docs/communication-btw-sc-ms/index.html |   24 +-
 content/cn/docs/company-on-kubernetes/index.html   |   24 +-
 .../cn/docs/config_center_integration/index.html   | 1027 ++++++++++++++++++++
 content/cn/docs/distributed_saga_1/index.html      |   24 +-
 content/cn/docs/distributed_saga_2/index.html      |   24 +-
 content/cn/docs/distributed_saga_3/index.html      |   24 +-
 content/cn/docs/go-to-cloud/index.html             |   24 +-
 .../docs/how-to-reform-a-legacy-system/index.html  |   24 +-
 content/cn/docs/jira_beginner_guide/index.html     |   24 +-
 content/cn/docs/join_the_community/index.html      |   27 +-
 content/cn/docs/linuxcon-workshop-demo/index.html  |   24 +-
 .../cn/docs/maven_dependency_management/index.html |   24 +-
 .../index.html                                     |   24 +-
 .../index.html                                     |  309 +++---
 .../seckill-development-journey-part-I/index.html  |   24 +-
 .../seckill-development-journey-part-II/index.html |   24 +-
 .../index.html                                     |   24 +-
 .../index.html                                     |   24 +-
 .../cn/docs/tracing-with-servicecomb/index.html    |   24 +-
 .../cn/users/application-boot-process/index.html   |    8 +
 content/cn/users/communicate-protocol/index.html   |    8 +
 content/cn/users/customized-tracing/index.html     |    8 +
 content/cn/users/develop-with-jax-rs/index.html    |    8 +
 .../cn/users/develop-with-rest-template/index.html |    8 +
 content/cn/users/develop-with-rpc/index.html       |    8 +
 content/cn/users/develop-with-springmvc/index.html |    8 +
 .../users/develop-with-transparent-rpc/index.html  |    8 +
 content/cn/users/distributed-tracing/index.html    |    8 +
 content/cn/users/dynamic-config/index.html         |    8 +
 .../index.html                                     |  220 ++---
 content/cn/users/edging-service/nginx/index.html   |    8 +
 content/cn/users/edging-service/zuul/index.html    |    8 +
 content/cn/users/index.html                        |    8 +
 content/cn/users/invoke-control/index.html         |    8 +
 content/cn/users/local-develop-test/index.html     |    8 +
 content/cn/users/metrics-in-0.5.0/index.html       |    8 +
 content/cn/users/metrics-in-1.0.0-m1/index.html    |    8 +
 .../index.html                                     |    8 +
 .../index.html                                     |    8 +
 content/cn/users/run-mode/index.html               |    8 +
 content/cn/users/service-configurations/index.html |    8 +
 content/cn/users/service-contract/index.html       |    8 +
 content/cn/users/service-definition/index.html     |    8 +
 content/cn/users/service-heartbeat/index.html      |    8 +
 .../users/service-interface-constraints/index.html |    8 +
 content/cn/users/setup-environment/index.html      |    8 +
 content/cn/users/use-service-contract/index.html   |    8 +
 .../use-servicecomb-in-spring-boot/index.html      |    8 +
 content/cn/users/use-tls/index.html                |    8 +
 content/cn/year-archive/index.html                 |  164 ++++
 content/docs/autoscale-on-company/index.html       |   24 +-
 content/docs/communication-btw-sc-ms/index.html    |   24 +-
 content/docs/company-on-kubernetes/index.html      |   24 +-
 content/docs/distributed_saga_1/index.html         |   24 +-
 content/docs/distributed_saga_2/index.html         |   24 +-
 content/docs/distributed_saga_3/index.html         |   24 +-
 content/docs/go-to-cloud/index.html                |   24 +-
 .../docs/how-to-reform-a-legacy-system/index.html  |   24 +-
 content/docs/howto-upgrade-topzipkin2/index.html   |   24 +-
 content/docs/linuxcon-workshop-demo/index.html     |   24 +-
 .../seckill-development-journey-part-I/index.html  |   24 +-
 .../seckill-development-journey-part-II/index.html |   24 +-
 .../index.html                                     |   24 +-
 content/docs/service-center-ui/index.html          |   24 +-
 .../service-registry-refactor-proposal/index.html  |   24 +-
 .../index.html                                     |   24 +-
 content/docs/tracing-with-servicecomb/index.html   |   24 +-
 content/feed.xml                                   |  694 ++++++++-----
 content/sitemap.xml                                |   86 +-
 content/sitemap/index.html                         |    4 +
 87 files changed, 3045 insertions(+), 985 deletions(-)
 create mode 100644 _posts/cn/2018-04-04-config-center-integration.md
 create mode 100644 _posts/cn/2018-04-04-saga-pack-design.md
 create mode 100644 _users/cn/edge-in-1.0.0-m1.md
 create mode 100644 assets/images/pack/exception_scenario.png
 create mode 100644 assets/images/pack/id_flow.png
 create mode 100644 assets/images/pack/omega_internal.png
 create mode 100644 assets/images/pack/pack.png
 create mode 100644 assets/images/pack/successful_scenario.png
 create mode 100644 assets/images/pack/timeout_scenario.png
 create mode 100644 content/assets/images/pack/exception_scenario.png
 create mode 100644 content/assets/images/pack/id_flow.png
 create mode 100644 content/assets/images/pack/omega_internal.png
 create mode 100644 content/assets/images/pack/pack.png
 create mode 100644 content/assets/images/pack/successful_scenario.png
 create mode 100644 content/assets/images/pack/timeout_scenario.png
 create mode 100644 content/cn/docs/config_center_integration/index.html
 copy content/cn/docs/{stress-test-on-company-with-jmeter-in-k8s => saga_pack_design}/index.html (51%)
 copy content/cn/users/{customized-tracing => edge-in-1.0.0-m1}/index.html (59%)

-- 
To stop receiving notification emails like this one, please contact
ningjiang@apache.org.

[incubator-servicecomb-website] 01/02: Merge branch 'master' into asf-site

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-website.git

commit 625ac5a0e39846f2e51fe3f0a8fefdf231fdd871
Merge: f852d39 b57eac3
Author: Willem Jiang <ji...@huawei.com>
AuthorDate: Wed Apr 4 10:56:08 2018 +0800

    Merge branch 'master' into asf-site

 _data/navigation.yml                              |   2 +
 _posts/cn/2018-04-04-config-center-integration.md | 182 ++++++++++++++++++++++
 _posts/cn/2018-04-04-saga-pack-design.md          | 167 ++++++++++++++++++++
 _users/cn/edge-in-1.0.0-m1.md                     | 100 ++++++++++++
 assets/images/pack/exception_scenario.png         | Bin 0 -> 114741 bytes
 assets/images/pack/id_flow.png                    | Bin 0 -> 47939 bytes
 assets/images/pack/omega_internal.png             | Bin 0 -> 23090 bytes
 assets/images/pack/pack.png                       | Bin 0 -> 10227 bytes
 assets/images/pack/successful_scenario.png        | Bin 0 -> 106122 bytes
 assets/images/pack/timeout_scenario.png           | Bin 0 -> 102750 bytes
 10 files changed, 451 insertions(+)


-- 
To stop receiving notification emails like this one, please contact
ningjiang@apache.org.

[incubator-servicecomb-website] 02/02: Publish the website

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-website.git

commit 36d1ab3c75cf129fb1b48398f964ac50eadd5dfe
Author: Willem Jiang <ji...@huawei.com>
AuthorDate: Wed Apr 4 10:57:35 2018 +0800

    Publish the website
---
 content/assets/images/pack/exception_scenario.png  |  Bin 0 -> 114741 bytes
 content/assets/images/pack/id_flow.png             |  Bin 0 -> 47939 bytes
 content/assets/images/pack/omega_internal.png      |  Bin 0 -> 23090 bytes
 content/assets/images/pack/pack.png                |  Bin 0 -> 10227 bytes
 content/assets/images/pack/successful_scenario.png |  Bin 0 -> 106122 bytes
 content/assets/images/pack/timeout_scenario.png    |  Bin 0 -> 102750 bytes
 content/cn/docs/autoscale-on-company/index.html    |   24 +-
 content/cn/docs/communication-btw-sc-ms/index.html |   24 +-
 content/cn/docs/company-on-kubernetes/index.html   |   24 +-
 .../cn/docs/config_center_integration/index.html   | 1027 ++++++++++++++++++++
 content/cn/docs/distributed_saga_1/index.html      |   24 +-
 content/cn/docs/distributed_saga_2/index.html      |   24 +-
 content/cn/docs/distributed_saga_3/index.html      |   24 +-
 content/cn/docs/go-to-cloud/index.html             |   24 +-
 .../docs/how-to-reform-a-legacy-system/index.html  |   24 +-
 content/cn/docs/jira_beginner_guide/index.html     |   24 +-
 content/cn/docs/join_the_community/index.html      |   27 +-
 content/cn/docs/linuxcon-workshop-demo/index.html  |   24 +-
 .../cn/docs/maven_dependency_management/index.html |   24 +-
 .../index.html                                     |   24 +-
 .../index.html                                     |  309 +++---
 .../seckill-development-journey-part-I/index.html  |   24 +-
 .../seckill-development-journey-part-II/index.html |   24 +-
 .../index.html                                     |   24 +-
 .../index.html                                     |   24 +-
 .../cn/docs/tracing-with-servicecomb/index.html    |   24 +-
 .../cn/users/application-boot-process/index.html   |    8 +
 content/cn/users/communicate-protocol/index.html   |    8 +
 content/cn/users/customized-tracing/index.html     |    8 +
 content/cn/users/develop-with-jax-rs/index.html    |    8 +
 .../cn/users/develop-with-rest-template/index.html |    8 +
 content/cn/users/develop-with-rpc/index.html       |    8 +
 content/cn/users/develop-with-springmvc/index.html |    8 +
 .../users/develop-with-transparent-rpc/index.html  |    8 +
 content/cn/users/distributed-tracing/index.html    |    8 +
 content/cn/users/dynamic-config/index.html         |    8 +
 .../index.html                                     |  220 ++---
 content/cn/users/edging-service/nginx/index.html   |    8 +
 content/cn/users/edging-service/zuul/index.html    |    8 +
 content/cn/users/index.html                        |    8 +
 content/cn/users/invoke-control/index.html         |    8 +
 content/cn/users/local-develop-test/index.html     |    8 +
 content/cn/users/metrics-in-0.5.0/index.html       |    8 +
 content/cn/users/metrics-in-1.0.0-m1/index.html    |    8 +
 .../index.html                                     |    8 +
 .../index.html                                     |    8 +
 content/cn/users/run-mode/index.html               |    8 +
 content/cn/users/service-configurations/index.html |    8 +
 content/cn/users/service-contract/index.html       |    8 +
 content/cn/users/service-definition/index.html     |    8 +
 content/cn/users/service-heartbeat/index.html      |    8 +
 .../users/service-interface-constraints/index.html |    8 +
 content/cn/users/setup-environment/index.html      |    8 +
 content/cn/users/use-service-contract/index.html   |    8 +
 .../use-servicecomb-in-spring-boot/index.html      |    8 +
 content/cn/users/use-tls/index.html                |    8 +
 content/cn/year-archive/index.html                 |  164 ++++
 content/docs/autoscale-on-company/index.html       |   24 +-
 content/docs/communication-btw-sc-ms/index.html    |   24 +-
 content/docs/company-on-kubernetes/index.html      |   24 +-
 content/docs/distributed_saga_1/index.html         |   24 +-
 content/docs/distributed_saga_2/index.html         |   24 +-
 content/docs/distributed_saga_3/index.html         |   24 +-
 content/docs/go-to-cloud/index.html                |   24 +-
 .../docs/how-to-reform-a-legacy-system/index.html  |   24 +-
 content/docs/howto-upgrade-topzipkin2/index.html   |   24 +-
 content/docs/linuxcon-workshop-demo/index.html     |   24 +-
 .../seckill-development-journey-part-I/index.html  |   24 +-
 .../seckill-development-journey-part-II/index.html |   24 +-
 .../index.html                                     |   24 +-
 content/docs/service-center-ui/index.html          |   24 +-
 .../service-registry-refactor-proposal/index.html  |   24 +-
 .../index.html                                     |   24 +-
 content/docs/tracing-with-servicecomb/index.html   |   24 +-
 content/feed.xml                                   |  694 ++++++++-----
 content/sitemap.xml                                |   86 +-
 content/sitemap/index.html                         |    4 +
 77 files changed, 2594 insertions(+), 985 deletions(-)

diff --git a/content/assets/images/pack/exception_scenario.png b/content/assets/images/pack/exception_scenario.png
new file mode 100644
index 0000000..cb6c904
Binary files /dev/null and b/content/assets/images/pack/exception_scenario.png differ
diff --git a/content/assets/images/pack/id_flow.png b/content/assets/images/pack/id_flow.png
new file mode 100644
index 0000000..5c99d3f
Binary files /dev/null and b/content/assets/images/pack/id_flow.png differ
diff --git a/content/assets/images/pack/omega_internal.png b/content/assets/images/pack/omega_internal.png
new file mode 100644
index 0000000..4ba6d9a
Binary files /dev/null and b/content/assets/images/pack/omega_internal.png differ
diff --git a/content/assets/images/pack/pack.png b/content/assets/images/pack/pack.png
new file mode 100644
index 0000000..5ab2888
Binary files /dev/null and b/content/assets/images/pack/pack.png differ
diff --git a/content/assets/images/pack/successful_scenario.png b/content/assets/images/pack/successful_scenario.png
new file mode 100644
index 0000000..4968c99
Binary files /dev/null and b/content/assets/images/pack/successful_scenario.png differ
diff --git a/content/assets/images/pack/timeout_scenario.png b/content/assets/images/pack/timeout_scenario.png
new file mode 100644
index 0000000..801a696
Binary files /dev/null and b/content/assets/images/pack/timeout_scenario.png differ
diff --git a/content/cn/docs/autoscale-on-company/index.html b/content/cn/docs/autoscale-on-company/index.html
index cbd54bd..85674a5 100644
--- a/content/cn/docs/autoscale-on-company/index.html
+++ b/content/cn/docs/autoscale-on-company/index.html
@@ -647,11 +647,11 @@ bash LinuxCon-Beijing-WorkShop/kubernetes/stress-test.sh
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -659,7 +659,7 @@ bash LinuxCon-Beijing-WorkShop/kubernetes/stress-test.sh
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -676,11 +676,11 @@ bash LinuxCon-Beijing-WorkShop/kubernetes/stress-test.sh
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -688,7 +688,7 @@ bash LinuxCon-Beijing-WorkShop/kubernetes/stress-test.sh
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -705,11 +705,11 @@ bash LinuxCon-Beijing-WorkShop/kubernetes/stress-test.sh
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -717,7 +717,7 @@ bash LinuxCon-Beijing-WorkShop/kubernetes/stress-test.sh
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -734,11 +734,11 @@ bash LinuxCon-Beijing-WorkShop/kubernetes/stress-test.sh
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -746,7 +746,7 @@ bash LinuxCon-Beijing-WorkShop/kubernetes/stress-test.sh
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/communication-btw-sc-ms/index.html b/content/cn/docs/communication-btw-sc-ms/index.html
index bd46997..f542e6f 100644
--- a/content/cn/docs/communication-btw-sc-ms/index.html
+++ b/content/cn/docs/communication-btw-sc-ms/index.html
@@ -557,11 +557,11 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -569,7 +569,7 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -586,11 +586,11 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -598,7 +598,7 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -615,11 +615,11 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -627,7 +627,7 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -644,11 +644,11 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -656,7 +656,7 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/company-on-kubernetes/index.html b/content/cn/docs/company-on-kubernetes/index.html
index 25104b5..7e0eb76 100644
--- a/content/cn/docs/company-on-kubernetes/index.html
+++ b/content/cn/docs/company-on-kubernetes/index.html
@@ -657,11 +657,11 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -669,7 +669,7 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -686,11 +686,11 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -698,7 +698,7 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -715,11 +715,11 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -727,7 +727,7 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -744,11 +744,11 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -756,7 +756,7 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/config_center_integration/index.html b/content/cn/docs/config_center_integration/index.html
new file mode 100644
index 0000000..d68830c
--- /dev/null
+++ b/content/cn/docs/config_center_integration/index.html
@@ -0,0 +1,1027 @@
+<!doctype html>
+<!--
+  Minimal Mistakes Jekyll Theme 4.4.1 by Michael Rose
+  Copyright 2017 Michael Rose - mademistakes.com | @mmistakes
+  Free for personal and commercial use under the MIT license
+  https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt
+-->
+<html lang="cn" class="no-js">
+  <head>
+    <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>ServiceComb示例讲解微服务配置中心选型与对接 - Apache ServiceComb (incubating)</title>
+
+
+
+
+<meta name="description" content="ServiceComb对接配置中心">
+
+
+
+
+<meta name="author" content="Li Bo">
+
+<meta property="og:locale" content="cn">
+<meta property="og:site_name" content="Apache ServiceComb (incubating)">
+<meta property="og:title" content="ServiceComb示例讲解微服务配置中心选型与对接">
+
+
+  <link rel="canonical" href="http://github.com/pages/apache/incubator-servicecomb-website/cn/docs/config_center_integration/">
+  <meta property="og:url" content="http://github.com/pages/apache/incubator-servicecomb-website/cn/docs/config_center_integration/">
+
+
+
+  <meta property="og:description" content="ServiceComb对接配置中心">
+
+
+
+  <meta name="twitter:site" content="@ServiceComb">
+  <meta name="twitter:title" content="ServiceComb示例讲解微服务配置中心选型与对接">
+  <meta name="twitter:description" content="ServiceComb对接配置中心">
+  <meta name="twitter:url" content="">
+
+  
+    <meta name="twitter:card" content="summary">
+    
+  
+
+  
+    <meta name="twitter:creator" content="@">
+  
+
+
+
+  
+
+  
+
+
+
+
+
+  <meta property="og:type" content="article">
+  <meta property="article:published_time" content="2018-04-04T00:00:00+08:00">
+
+
+
+
+
+
+
+
+  <script type="application/ld+json">
+    {
+      "@context" : "http://schema.org",
+      "@type" : "Person",
+      "name" : "Apache ServiceComb (incubating)",
+      "url" : "http://github.com/pages/apache/incubator-servicecomb-website",
+      "sameAs" : null
+    }
+  </script>
+
+
+
+  <meta name="google-site-verification" content="HvJjNd7vvJ-yjSTHlBiIWEYxp_Hrz-PYEY5Idz9LRcA" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="/feed.xml" type="application/atom+xml" rel="alternate" title="Apache ServiceComb (incubating) Feed">
+
+<!-- http://t.co/dKP3o1e -->
+<meta name="HandheldFriendly" content="True">
+<meta name="MobileOptimized" content="320">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+<script>
+  document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
+</script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js"></script>
+<script src="/assets/vendor/prism/prism.js"></script>
+
+<script type="text/javascript" async
+  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
+</script>
+
+<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
+
+<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
+<!-- For all browsers -->
+<link rel="stylesheet" href="/assets/css/main.css">
+<link rel="stylesheet" href="/assets/vendor/prism/prism.css">
+
+<!--[if lte IE 9]>
+  <style>
+    /* old IE unsupported flexbox fixes */
+    .greedy-nav .site-title {
+      padding-right: 3em;
+    }
+    .greedy-nav button {
+      position: absolute;
+      top: 0;
+      right: 0;
+      height: 100%;
+    }
+  </style>
+<![endif]-->
+
+<meta http-equiv="cleartype" content="on">
+
+    <!-- start custom head snippets -->
+
+<!-- insert favicons. use http://realfavicongenerator.net/ -->
+<link href="https://fonts.cat.net/css?family=Roboto:400,500,700|Source+Code+Pro" rel="stylesheet">
+<script src="/assets/js/custom.js"></script>
+<!-- end custom head snippets -->
+
+  </head>
+
+  <body class="layout--single">
+
+    <!--[if lt IE 9]>
+<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
+<![endif]-->
+    <div class="masthead">
+  <div class="masthead__inner-wrap">
+    <div class="masthead__menu">
+      <nav id="site-nav" class="greedy-nav">
+	      
+          <a class="site-title active" href="/cn"><img src="/assets/images/ServiceComb-logo-1.png"></a>
+	      
+        <ul class="visible-links">
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/docs/quick-start/">快速入门</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/users/">用户手册</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/developers/">开发者手册</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/year-archive/">博文</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/faqs/">常见问题</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/release/">下载</a>
+              
+            </li>
+          
+        </ul>
+        <button><div class="navicon"></div></button>
+        <ul class="hidden-links hidden"></ul>
+        <div class="nav-lang">
+          
+            
+            
+            <a href=/docs/config_center_integration/>English</a>
+          
+        </div>
+      </nav>
+    </div>
+  </div>
+</div>
+
+
+    
+
+
+
+<div id="main" role="main">
+  
+  <div class="sidebar sticky">
+      
+      <div class="back-to-home">首页 > <a href="/cn/">ServiceComb</a></div>
+      
+  
+
+<div itemscope itemtype="http://schema.org/Person">
+
+  
+
+  <div class="author__content">
+    <h3 class="author__name" itemprop="name">Li Bo</h3>
+    
+      <p class="author__bio" itemprop="description">
+	    
+	      
+	        It works, but it hasn’t been tested.
+	      
+	    
+      </p>
+    
+  </div>
+
+  <div class="author__urls-wrapper">
+    <button class="btn btn--inverse">关注</button>
+    <ul class="author__urls social-icons">
+      
+
+      
+
+      
+        <li>
+          <a href="mailto:libo75@huawei.com">
+            <meta itemprop="email" content="libo75@huawei.com" />
+            <i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> 电子邮箱
+          </a>
+        </li>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      <!--
+  <li>
+    <a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs">
+      <i class="fa fa-fw" aria-hidden="true"></i> Custom Social Profile Link
+    </a>
+  </li>
+-->
+    </ul>
+  </div>
+</div>
+
+  
+  </div>
+
+
+
+  <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
+    <meta itemprop="headline" content="ServiceComb示例讲解微服务配置中心选型与对接">
+    <meta itemprop="description" content="ServiceComb对接配置中心">
+    <meta itemprop="datePublished" content="April 04, 2018">
+    <meta itemprop="dateModified" content="April 04, 2018">
+
+    <div class="page__inner-wrap">
+      
+        
+          <header>
+            <h1 class="page__title" itemprop="headline">ServiceComb示例讲解微服务配置中心选型与对接
+</h1>
+            
+              <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  1 分钟 阅读
+
+</p>
+            
+          </header>
+        
+      
+
+      <section class="page__content" itemprop="text">
+        <h3 id="配置中心">配置中心</h3>
+
+<p>项目代码中经常会用到各种配置项,比如下面的代码中是从系统环境变量中获取<code class="highlighter-rouge">prop</code> :</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">String</span> <span class="n">prop</span> <span class="o">=</span> <span class="n">System</span><span class="o">.</span><span class="na">getProperty</span><span class="o">(</span><span class="n">myProperty</span><span class="o">);</span>
+<span class="kt">int</span> <span class="n">x</span> <span class="o">=</span> <span class="n">DEFAULT_VALUE</span><span class="o">;</span>
+<span class="k">try</span> <span class="o">{</span>
+    <span class="n">x</span> <span class="o">=</span> <span class="n">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">prop</span><span class="o">);</span>
+<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">NumberFormatException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
+    <span class="c1">// handle format issues</span>
+<span class="o">}</span>
+<span class="n">myMethod</span><span class="o">(</span><span class="n">x</span><span class="o">);</span>
+</code></pre>
+</div>
+
+<p>类似使用环境变量或者<code class="highlighter-rouge">properties</code>和<code class="highlighter-rouge">xml</code>等文件方式传入配置进而控制应用表现的方法广泛应用于开发过程中,这样做可以将外部配置与业务代码解耦,若有变动只需修改配置参数而不需要重新编译构建项目。但是这种将配置和代码放在一起的方式可能会泄露隐私信息(比如密码),因为代码可能会公开,出于安全的考虑,配置和代码分离管理的方式开始广泛使用,常见的方法比如将配置放在CI服务器上通过打包脚本打入应用包中,或者直接放到运行应用的服务器的特定目录下,或者存储到数据库中。这种方式在传统的单体应用中简单有效,但也带来一些新的挑战:</p>
+
+<ul>
+  <li>配置变化频繁时,需要频繁的打包部署应用</li>
+  <li>不同的环境下配置项不同需要分开管理(比如测试环境和生产环境)</li>
+  <li>配置项中的隐私信息虽然避免了随代码公开而泄露,但是还是会打包到应用包中</li>
+</ul>
+
+<p>此外,面对微服务爆发式增长的应用数量和服务器数量带来新的困难</p>
+
+<ul>
+  <li>
+    <p>复杂的业务对应大量的配置项</p>
+  </li>
+  <li>配置项在不同服务中可能出现冲突</li>
+  <li>对集群部署的应用配置进行修改时需要一次修改每个机器上的应用配置</li>
+</ul>
+
+<p>这种背景下,中心化的配置服务即配置中心应运而生,简单来说,配置中心就是一种统一管理各种应用配置的基础服务组件,一个合格的配置中心需要满足:</p>
+
+<ul>
+  <li>配置项容易读取和修改</li>
+  <li>添加新配置要简单直接</li>
+  <li>支持对配置的修改的检视以把控风险</li>
+  <li>可以查看配置修改的历史记录</li>
+  <li>不同部署环境支持隔离</li>
+</ul>
+
+<p>开源社区目前主流的配置中心有spring-cloud-config, ctrip apollo, disconf 等,下表是对其功能特性、技术路线、可用性和易用性等发面的比较[1]供参考。</p>
+
+<table>
+  <thead>
+    <tr>
+      <th> </th>
+      <th style="text-align: left">spring-cloud-config</th>
+      <th style="text-align: left">ctrip apollo</th>
+      <th style="text-align: left">disconf</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>静态配置管理</td>
+      <td style="text-align: left">基于file</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">支持</td>
+    </tr>
+    <tr>
+      <td>动态配置管理</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">支持</td>
+    </tr>
+    <tr>
+      <td>统一管理</td>
+      <td style="text-align: left">无,需要github</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">支持</td>
+    </tr>
+    <tr>
+      <td>多维度管理</td>
+      <td style="text-align: left">无,需要github</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">支持</td>
+    </tr>
+    <tr>
+      <td>本地配置缓存</td>
+      <td style="text-align: left">无</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">支持</td>
+    </tr>
+    <tr>
+      <td>配置生效时间</td>
+      <td style="text-align: left">重启或手动refresh生效</td>
+      <td style="text-align: left">实时</td>
+      <td style="text-align: left">实时</td>
+    </tr>
+    <tr>
+      <td>配置更新推送</td>
+      <td style="text-align: left">手动触发</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">支持</td>
+    </tr>
+    <tr>
+      <td>配置定时拉取</td>
+      <td style="text-align: left">无</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">依赖时事件驱动</td>
+    </tr>
+    <tr>
+      <td>授权、审核、审计</td>
+      <td style="text-align: left">无,需要github</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">无</td>
+    </tr>
+    <tr>
+      <td>配置版本管理</td>
+      <td style="text-align: left">git做版本管理</td>
+      <td style="text-align: left">界面上提供发布历史和回滚按钮</td>
+      <td style="text-align: left">操作记录存数据库,无查询接口</td>
+    </tr>
+    <tr>
+      <td>实例配置监控</td>
+      <td style="text-align: left">需要结合springadmin</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">支持</td>
+    </tr>
+    <tr>
+      <td>灰度发布</td>
+      <td style="text-align: left">不支持</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">不支持部分更新</td>
+    </tr>
+    <tr>
+      <td>告警通知</td>
+      <td style="text-align: left">不支持</td>
+      <td style="text-align: left">支持,邮件方式告警</td>
+      <td style="text-align: left">支持,邮件方式告警</td>
+    </tr>
+    <tr>
+      <td>多数据中心部署</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">支持</td>
+      <td style="text-align: left">支持</td>
+    </tr>
+    <tr>
+      <td>配置界面</td>
+      <td style="text-align: left">无,通过git操作</td>
+      <td style="text-align: left">统一界面</td>
+      <td style="text-align: left">统一界面</td>
+    </tr>
+  </tbody>
+</table>
+
+<p>综合比较后,ServiceComb选择了Apollo[2]作为配置中心进行对接。Apollo是携程框架部门研发并贡献到开源社区的分布式配置中心,活跃贡献者近百人。最新版本的ServiceComb Java Chassis已实现支持Apollo[1],用户可以使用该配置中心结合Chassis中集成的Archaius实现在不需要重新启动或重新部署应用的前提下进行配置项的集中管理和动态修改。基于ServiceComb优秀的插件化设计,用户可以非常简单的对接到其他开源或自研的配置中心。</p>
+
+<h3 id="使用简介">使用简介</h3>
+
+<h5 id="启动apollo服务">启动Apollo服务</h5>
+
+<ul>
+  <li>启动Apollo服务</li>
+</ul>
+
+<p>Apollo服务可以通过docker或二进制启动,方法参考官网文档[3],推荐使用docker启动。</p>
+
+<div class="language-bash highlighter-rouge"><pre class="highlight"><code>git clone https://github.com/lijasonvip/apollo-image-for-servicecomb.git
+<span class="nb">cd </span>apollo-image-for-servicecomb <span class="o">&amp;&amp;</span> docker-compose up
+</code></pre>
+</div>
+
+<p>出现<code class="highlighter-rouge">apollo-quick-start | Portal started. You can visit http://localhost:8070 now!</code>后表示Apollo已经启动成功,浏览器访问<code class="highlighter-rouge">http://localhost:8070</code>即可访问<code class="highlighter-rouge">portal</code>服务,默认登录账号为<code class="highlighter-rouge">apollo/admin</code>。</p>
+
+<ul>
+  <li>创建应用</li>
+</ul>
+
+<p>登录后点击创建项目,填入应用名称,其他选默认即可,创建应用后需要进入应用点击发布才能生效。</p>
+
+<p><img src="/assets/images/config/create-project.png" alt="" /></p>
+
+<ul>
+  <li>生成TOKEN</li>
+</ul>
+
+<p>应用发布后我们需要获取一个TOKEN,在<code class="highlighter-rouge">http://localhost:8070/open/manage.html</code>页面填入刚才创建的应用ID和应用名称并选择项目和部门信息后点击创建即可生成一个TOKEN,保存此TOKEN并配置到Chassis应用的配置文件中。</p>
+
+<p><img src="/assets/images/config/token.png" alt="" /></p>
+
+<h5 id="引入依赖">引入依赖</h5>
+
+<p>在Chassis应用的pom文件中引入依赖<code class="highlighter-rouge">config-apollo</code>:</p>
+
+<div class="language-xml highlighter-rouge"><pre class="highlight"><code> <span class="nt">&lt;dependency&gt;</span>
+       <span class="nt">&lt;groupId&gt;</span>org.apache.servicecomb<span class="nt">&lt;/groupId&gt;</span>
+       <span class="nt">&lt;artifactId&gt;</span>config-apollo<span class="nt">&lt;/artifactId&gt;</span>
+ <span class="nt">&lt;/dependency&gt;</span>
+</code></pre>
+</div>
+
+<h5 id="添加配置">添加配置</h5>
+
+<p>在Chassis应用的配置文件<code class="highlighter-rouge">microservice.yaml</code>中增加以下配置:</p>
+
+<div class="language-yaml highlighter-rouge"><pre class="highlight"><code>   <span class="s">apollo</span><span class="pi">:</span>
+     <span class="s">config</span><span class="pi">:</span>
+       <span class="s">serverUri</span><span class="pi">:</span> <span class="s">http://127.0.0.1:8070</span><span class="err">		</span><span class="s">#Apollo portal服务地址</span>
+       <span class="s">serviceName</span><span class="pi">:</span> <span class="s">SampleApp</span><span class="err">				</span><span class="s">#创建应用时的AppID</span>
+       <span class="s">env</span><span class="pi">:</span> <span class="s">DEV</span><span class="err">								</span><span class="s">#env默认是DEV</span>
+       <span class="s">clusters</span><span class="pi">:</span> <span class="s">default</span><span class="err">					</span><span class="s">#cluster默认default</span>
+       <span class="s">namespace</span><span class="pi">:</span> <span class="s">application</span><span class="err">				</span><span class="s">#namespace默认application</span>
+       <span class="s">token</span><span class="pi">:</span> <span class="s">de3c5b2e6d8535b96</span><span class="err">				</span><span class="s">#第一步中生成的TOKEN</span>
+       <span class="s">refreshInterval</span><span class="pi">:</span> <span class="s">10</span><span class="err">					</span><span class="s">#自动拉取配置的时间间隔</span>
+</code></pre>
+</div>
+
+<p>至此,通过简单的4步应用已经成功的对接到了Apollo配置中心,启动应用后可以在Apollo页面通过对配置项的新增、更新、回滚等操作进行服务治理啦!Demo参考[4]。</p>
+
+<p><img src="/assets/images/config/configuration.png" alt="" /></p>
+
+<h3 id="对接配置中心">对接配置中心</h3>
+
+<p>Chassis动态配置基于Netflix的Archaius实现[5],Archaius扩展数据源方法参考文档[6]和demo[7],Chassis按照[6]扩展了<code class="highlighter-rouge">PolledConfigurationSource</code> 和 <code class="highlighter-rouge">AbstractPollingScheduler</code>,启动的时候用SPI机制找到Source接口的实现类。</p>
+
+<p>对接到一个新的配置中心只要扩展实现<code class="highlighter-rouge">ConfigCenterConfigurationSource</code>接口,实现<code class="highlighter-rouge">init</code>方法,在<code class="highlighter-rouge">init</code>方法中实现连接配置中心,刷新配置项的逻辑即可。具体代码请参考[8]。</p>
+
+<ul>
+  <li>
+    <p>设计配置项</p>
+
+    <p>对接到新的配置中心可以设计新的配置参数,定义新的工具类获取这些参数,并指定默认值,参考<code class="highlighter-rouge">ApolloConfig</code>类对新增<code class="highlighter-rouge">apollo.config.serverUri</code>等参数的处理。</p>
+  </li>
+  <li>
+    <p>扩展Source接口</p>
+
+    <p>init函数实现固定时间间隔或实时获取配置中心的配置项逻辑。<code class="highlighter-rouge">ApolloClient</code>中<code class="highlighter-rouge">refreshApolloConfig</code>函数启动了一个定时执行的线程刷新配置项:</p>
+
+    <div class="language-java highlighter-rouge"><pre class="highlight"><code>  <span class="kd">public</span> <span class="kt">void</span> <span class="nf">refreshApolloConfig</span><span class="o">()</span> <span class="o">{</span>
+    <span class="n">EXECUTOR</span>
+        <span class="o">.</span><span class="na">scheduleWithFixedDelay</span><span class="o">(</span><span class="k">new</span> <span class="n">ConfigRefresh</span><span class="o">(</span><span class="n">serviceUri</span><span class="o">),</span> 
+                                <span class="n">firstRefreshInterval</span><span class="o">,</span> 
+                                <span class="n">refreshInterval</span><span class="o">,</span> 
+                                <span class="n">TimeUnit</span><span class="o">.</span><span class="na">SECONDS</span><span class="o">);</span>
+  <span class="o">}</span>
+</code></pre>
+    </div>
+
+    <p><code class="highlighter-rouge">ConfigRefresh</code>线程的<code class="highlighter-rouge">run</code>中会从Apollo配置中心获取最新配置项并和之前的配置项对比分析出新增、修改和删除的配置参数,然后去执行对应的更新操作。对配置项的修改更新都是基于Archaius的<code class="highlighter-rouge">WatchedUpdateListener</code> 进而实现应用内参数的动态更新。</p>
+  </li>
+</ul>
+
+<h3 id="加入servicecomb社区">加入ServiceComb社区</h3>
+
+<p>ServiceComb目前在Apache基金会孵化,诚挚的欢迎开发者和用户一起参与社区讨论和贡献,加入社区的方法有订阅邮件列表,关注微信公众号,加入社区微信群等,详细方法请参考[9]。</p>
+
+<h3 id="参考资料">参考资料</h3>
+
+<p>[0] ServiceComb 项目地址 <a href="https://github.com/apache/incubator-servicecomb-java-chassis">https://github.com/apache/incubator-servicecomb-java-chassis</a></p>
+
+<p>[1] 开源配置中心比较 <a href="https://github.com/ctripcorp/apollo/wiki/FAQ">https://github.com/ctripcorp/apollo/wiki/FAQ</a></p>
+
+<p>[2] ctrip apollo <a href="https://github.com/ctripcorp/apollo/">https://github.com/ctripcorp/apollo/</a></p>
+
+<p>[3] Apollo启动 <a href="https://github.com/ctripcorp/apollo/wiki/Quick-Start">https://github.com/ctripcorp/apollo/wiki/Quick-Start</a></p>
+
+<p>[4] Chassis应用使用Apollo配置中心Demo <a href="https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/samples/config-apollo-sample">https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/samples/config-apollo-sample</a></p>
+
+<p>[5] Netflix Archaius <a href="https://github.com/Netflix/archaius/">https://github.com/Netflix/archaius/</a></p>
+
+<p>[6] Archaius 扩展数据源 <a href="https://github.com/Netflix/archaius/wiki/Users-Guide">https://github.com/Netflix/archaius/wiki/Users-Guide</a></p>
+
+<p>[7] Archaius 对接Redis Demo <a href="https://github.com/cnwrinc/archaius-redis">https://github.com/cnwrinc/archaius-redis</a></p>
+
+<p>[8] Chassis对接配置中心代码 <a href="https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/dynamic-config/config-apollo">https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/dynamic-config/config-apollo</a></p>
+
+<p>[9] 加入ServiceComb社区 <a href="https://servicecomb.incubator.apache.org/cn/docs/join_the_community">https://servicecomb.incubator.apache.org/cn/docs/join_the_community</a></p>
+
+        
+      </section>
+
+      <footer class="page__meta">
+        
+        
+  
+
+
+  
+  
+  
+
+  <p class="page__taxonomy">
+    <strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> 标签: </strong>
+    <span itemprop="keywords">
+    
+      
+      
+      <a href="/tags/#%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83" class="page__taxonomy-item" rel="tag">配置中心</a>
+    
+    </span>
+  </p>
+
+
+
+
+
+        
+          
+            
+              <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> 最新的:</strong> <time datetime="2018-04-04">2018年4月4日</time></p>
+            
+          
+        
+      </footer>
+
+      <section class="page__share">
+  
+    <h4 class="page__share-title">分享</h4>
+  
+
+  <a href="https://twitter.com/intent/tweet?via=ServiceComb&text=ServiceComb示例讲解微服务配置中心选型与对接 /cn/docs/config_center_integration/" class="btn btn--twitter" title="分享 Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
+
+  <a href="https://www.facebook.com/sharer/sharer.php?u=/cn/docs/config_center_integration/" class="btn btn--facebook" title="分享 Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
+
+  <a href="https://plus.google.com/share?url=/cn/docs/config_center_integration/" class="btn btn--google-plus" title="分享 Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
+
+  <a href="https://www.linkedin.com/shareArticle?mini=true&url=/cn/docs/config_center_integration/" class="btn btn--linkedin" title="分享 LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
+</section>
+
+
+      
+  <nav class="pagination">
+    
+      <a href="/docs/howto-upgrade-topzipkin2/" class="pagination--pager" title="Howto Upgrade to Zipkin2
+">向前</a>
+    
+    
+      <a href="/cn/docs/join_the_community/" class="pagination--pager" title="如何加入ServiceComb社区
+">向后</a>
+    
+  </nav>
+
+
+    </div>
+
+    
+      <div class="page__comments">
+  
+  
+    <section id="static-comments">
+      
+        <!-- Start static comments -->
+        <div class="js-comments">
+          
+        </div>
+        <!-- End static comments -->
+
+        <!-- Start new comment form -->
+        <h4 class="page__comments-title">留下评论</h4>
+        <p class="small">您的电子邮箱地址并不会被展示。请填写标记为必须的字段。 <span class="required">*</span></p>
+        <form id="new_comment" class="page__comments-form js-form form" method="post" action="https://api.staticman.net/v1/entry/apache/incubator-servicecomb-website/master">
+          <div class="form__spinner">
+            <i class="fa fa-spinner fa-spin fa-3x fa-fw"></i>
+            <span class="sr-only">正在加载...</span>
+          </div>
+
+          <fieldset>
+            <label for="comment-form-message">评论 <small class="required">*</small></label>
+            <textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea>
+            <div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">Markdown语法已支持。</a></div>
+          </fieldset>
+          <fieldset>
+            <label for="comment-form-name">姓名 <small class="required">*</small></label>
+            <input type="text" id="comment-form-name" name="fields[name]" tabindex="2" />
+          </fieldset>
+          <fieldset>
+            <label for="comment-form-email">电子邮箱 <small class="required">*</small></label>
+            <input type="email" id="comment-form-email" name="fields[email]" tabindex="3" />
+          </fieldset>
+          <fieldset>
+            <label for="comment-form-url">网站(可选)</label>
+            <input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/>
+          </fieldset>
+          <fieldset class="hidden" style="display: none;">
+            <input type="hidden" name="options[slug]" value="config-center-integration">
+            <label for="comment-form-location">Not used. Leave blank if you are a human.</label>
+            <input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/>
+          </fieldset>
+          <!-- Start comment form alert messaging -->
+          <p class="hidden js-notice">
+            <strong class="js-notice-text"></strong>
+          </p>
+          <!-- End comment form alert messaging -->
+          <fieldset>
+            <button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--large">提交评论</button>
+          </fieldset>
+        </form>
+        <!-- End new comment form -->
+      
+    </section>
+  
+</div>
+
+    
+  </article>
+
+  
+  
+    <div class="page__related">
+      <h4 class="page__related-title">猜您还喜欢</h4>
+      <div class="grid__wrapper">
+        
+          
+
+
+
+<div class="grid__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  1 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+          
+
+
+
+<div class="grid__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  少于 1 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+          
+
+
+
+<div class="grid__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  3 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+          
+
+
+
+<div class="grid__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  2 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+      </div>
+    </div>
+  
+</div>
+
+
+    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
+    <div align="center" style="margin: 0 0;">
+    <ins class="adsbygoogle"
+         style="display:block; border-bottom: initial;"
+         data-ad-client="ca-pub-7328585512091257"
+         data-ad-slot="3049671934"
+         data-ad-format="auto"></ins>
+    </div>
+
+    <div class="page__footer">
+      <footer>
+        <!-- start custom footer snippets -->
+
+<!-- end custom footer snippets -->
+        <div class="container">
+  <div class="row justify-content-md-center">
+    
+    <div class="col">
+      <ul>
+        <p class="header">资源</p>
+        <li><a href="/cn/docs/quick-start/">快速入门</a></li>
+        <li><a href="/cn/users/user-guide/">用户指南</a></li>
+        <li><a href="/cn/slides/">资料</a></li>
+        <li><a href="/cn/users/faq/">常见问题</a></li>
+      </ul>
+    </div>
+    <div class="col">
+      <ul>
+        <p class="header">贡献</p>
+        <li><a href="https://github.com/apache/incubator-servicecomb-website/issues/new?title=Issue with _posts/cn/2018-04-04-config-center-integration.md">报告本网页问题</a></li>
+        <li><a href="https://github.com/apache/incubator-servicecomb-website/edit/master/_posts/cn/2018-04-04-config-center-integration.md">在Github上编辑此页</a></li>
+        <li><a href="/cn/developers/submit-codes/">代码提交指南</a></li>
+      </ul>
+    </div>
+    <div class="col">
+      <ul class="social-icons">
+        <p class="header">社区</p>
+        <li>
+            <a href="mailto:dev-subscribe@servicecomb.incubator.apache.org" rel="nofollow"><span class="mail">邮件列表</span></a>
+        </li>
+        <li>
+            <a href="https://github.com/apache?q=ServiceComb" target="_blank"><span class="github">Github</span></a>
+        </li>
+        <li>
+            <a href="https://twitter.com/ServiceComb" target="_blank"><span class="twitter">Twitter</span></a>
+        </li>
+        <li>
+            <a href="/feed.xml" target="_blank"><span class="rss">Feed</span></a>
+        </li>
+      </ul>
+    </div>
+  </div>
+</div>
+<div class="page__footer-bottom">
+  <div>&copy; 2018 Apache ServiceComb (incubating). 技术来自于 <a href="http://jekyllrb.com" rel="nofollow">Jekyll</a> &amp; <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
+</div>
+
+      </footer>
+    </div>
+
+    <script src="/assets/js/main.min.js"></script>
+
+
+
+
+  <script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-101622733-1', 'auto');
+  ga('send', 'pageview');
+</script>
+
+
+
+
+
+
+
+  
+  <script>
+    (function ($) {
+    var $comments = $('.js-comments');
+
+    $('#new_comment').submit(function () {
+      var form = this;
+
+      $(form).addClass('disabled');
+      $('#comment-form-submit').html('<i class="fa fa-spinner fa-spin fa-fw"></i> 正在加载...');
+
+      $.ajax({
+        type: $(this).attr('method'),
+        url: $(this).attr('action'),
+        data: $(this).serialize(),
+        contentType: 'application/x-www-form-urlencoded',
+        success: function (data) {
+          $('#comment-form-submit').html('已提交');
+          $('.page__comments-form .js-notice').removeClass('notice--danger');
+          $('.page__comments-form .js-notice').addClass('notice--success');
+          showAlert('感谢您的评论!被批准后它会立即在此站点展示。');
+        },
+        error: function (err) {
+          console.log(err);
+          $('#comment-form-submit').html('提交评论');
+          $('.page__comments-form .js-notice').removeClass('notice--success');
+          $('.page__comments-form .js-notice').addClass('notice--danger');
+          showAlert('很抱歉,您的提交存在错误。请确保所有必填字段都已填写正确,然后再试一次。');
+          $(form).removeClass('disabled');
+        }
+      });
+
+      return false;
+    });
+
+    function showAlert(message) {
+      $('.page__comments-form .js-notice').removeClass('hidden');
+      $('.page__comments-form .js-notice-text').html(message);
+    }
+  })(jQuery);
+  </script>
+
+
+
+
+
+
+
+  </body>
+</html>
diff --git a/content/cn/docs/distributed_saga_1/index.html b/content/cn/docs/distributed_saga_1/index.html
index ae10e40..3497559 100644
--- a/content/cn/docs/distributed_saga_1/index.html
+++ b/content/cn/docs/distributed_saga_1/index.html
@@ -642,11 +642,11 @@ Caitie McCaffrey也在她的<a href="https://www.youtube.com/watch?v=xDuwrtwYHu8
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -654,7 +654,7 @@ Caitie McCaffrey也在她的<a href="https://www.youtube.com/watch?v=xDuwrtwYHu8
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -671,11 +671,11 @@ Caitie McCaffrey也在她的<a href="https://www.youtube.com/watch?v=xDuwrtwYHu8
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -683,7 +683,7 @@ Caitie McCaffrey也在她的<a href="https://www.youtube.com/watch?v=xDuwrtwYHu8
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -700,11 +700,11 @@ Caitie McCaffrey也在她的<a href="https://www.youtube.com/watch?v=xDuwrtwYHu8
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -712,7 +712,7 @@ Caitie McCaffrey也在她的<a href="https://www.youtube.com/watch?v=xDuwrtwYHu8
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -729,11 +729,11 @@ Caitie McCaffrey也在她的<a href="https://www.youtube.com/watch?v=xDuwrtwYHu8
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -741,7 +741,7 @@ Caitie McCaffrey也在她的<a href="https://www.youtube.com/watch?v=xDuwrtwYHu8
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/distributed_saga_2/index.html b/content/cn/docs/distributed_saga_2/index.html
index 1ed0d89..3d9bd6c 100644
--- a/content/cn/docs/distributed_saga_2/index.html
+++ b/content/cn/docs/distributed_saga_2/index.html
@@ -618,11 +618,11 @@ Caitie McCaffrey在她的演讲<a href="https://www.youtube.com/watch?v=1H6tounp
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -630,7 +630,7 @@ Caitie McCaffrey在她的演讲<a href="https://www.youtube.com/watch?v=1H6tounp
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -647,11 +647,11 @@ Caitie McCaffrey在她的演讲<a href="https://www.youtube.com/watch?v=1H6tounp
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -659,7 +659,7 @@ Caitie McCaffrey在她的演讲<a href="https://www.youtube.com/watch?v=1H6tounp
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -676,11 +676,11 @@ Caitie McCaffrey在她的演讲<a href="https://www.youtube.com/watch?v=1H6tounp
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -688,7 +688,7 @@ Caitie McCaffrey在她的演讲<a href="https://www.youtube.com/watch?v=1H6tounp
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -705,11 +705,11 @@ Caitie McCaffrey在她的演讲<a href="https://www.youtube.com/watch?v=1H6tounp
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -717,7 +717,7 @@ Caitie McCaffrey在她的演讲<a href="https://www.youtube.com/watch?v=1H6tounp
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/distributed_saga_3/index.html b/content/cn/docs/distributed_saga_3/index.html
index d022cfc..99818f1 100644
--- a/content/cn/docs/distributed_saga_3/index.html
+++ b/content/cn/docs/distributed_saga_3/index.html
@@ -640,11 +640,11 @@ n个处于不确定状态的服务向其他n-1个服务咨询将产生<strong>O(
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -652,7 +652,7 @@ n个处于不确定状态的服务向其他n-1个服务咨询将产生<strong>O(
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -669,11 +669,11 @@ n个处于不确定状态的服务向其他n-1个服务咨询将产生<strong>O(
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -681,7 +681,7 @@ n个处于不确定状态的服务向其他n-1个服务咨询将产生<strong>O(
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -698,11 +698,11 @@ n个处于不确定状态的服务向其他n-1个服务咨询将产生<strong>O(
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -710,7 +710,7 @@ n个处于不确定状态的服务向其他n-1个服务咨询将产生<strong>O(
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -727,11 +727,11 @@ n个处于不确定状态的服务向其他n-1个服务咨询将产生<strong>O(
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -739,7 +739,7 @@ n个处于不确定状态的服务向其他n-1个服务咨询将产生<strong>O(
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/go-to-cloud/index.html b/content/cn/docs/go-to-cloud/index.html
index 9f389d1..0a3c7b3 100644
--- a/content/cn/docs/go-to-cloud/index.html
+++ b/content/cn/docs/go-to-cloud/index.html
@@ -699,11 +699,11 @@ watching microservice 4 successfully,服务注册成功<br />
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -711,7 +711,7 @@ watching microservice 4 successfully,服务注册成功<br />
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -728,11 +728,11 @@ watching microservice 4 successfully,服务注册成功<br />
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -740,7 +740,7 @@ watching microservice 4 successfully,服务注册成功<br />
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -757,11 +757,11 @@ watching microservice 4 successfully,服务注册成功<br />
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -769,7 +769,7 @@ watching microservice 4 successfully,服务注册成功<br />
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -786,11 +786,11 @@ watching microservice 4 successfully,服务注册成功<br />
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -798,7 +798,7 @@ watching microservice 4 successfully,服务注册成功<br />
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/how-to-reform-a-legacy-system/index.html b/content/cn/docs/how-to-reform-a-legacy-system/index.html
index e75e319..10764f2 100644
--- a/content/cn/docs/how-to-reform-a-legacy-system/index.html
+++ b/content/cn/docs/how-to-reform-a-legacy-system/index.html
@@ -895,11 +895,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -907,7 +907,7 @@
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -924,11 +924,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -936,7 +936,7 @@
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -953,11 +953,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -965,7 +965,7 @@
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -982,11 +982,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -994,7 +994,7 @@
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/jira_beginner_guide/index.html b/content/cn/docs/jira_beginner_guide/index.html
index f672112..331c8f9 100644
--- a/content/cn/docs/jira_beginner_guide/index.html
+++ b/content/cn/docs/jira_beginner_guide/index.html
@@ -552,11 +552,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -564,7 +564,7 @@
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -581,11 +581,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -593,7 +593,7 @@
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -610,11 +610,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -622,7 +622,7 @@
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -639,11 +639,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-center-ui/" rel="permalink">Service-Center Management UI Console
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">An introduction Service-Center Management Console
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -651,7 +651,7 @@
 
 
 
-  2 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/join_the_community/index.html b/content/cn/docs/join_the_community/index.html
index 9934499..3041091 100644
--- a/content/cn/docs/join_the_community/index.html
+++ b/content/cn/docs/join_the_community/index.html
@@ -530,11 +530,12 @@
       
   <nav class="pagination">
     
-      <a href="/docs/howto-upgrade-topzipkin2/" class="pagination--pager" title="Howto Upgrade to Zipkin2
+      <a href="/cn/docs/config_center_integration/" class="pagination--pager" title="ServiceComb示例讲解微服务配置中心选型与对接
 ">向前</a>
     
     
-      <a href="#" class="pagination--pager disabled">向后</a>
+      <a href="/cn/docs/saga_pack_design/" class="pagination--pager" title="ServiceComb数据一致性解决方案Saga演进介绍
+">向后</a>
     
   </nav>
 
@@ -617,11 +618,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -629,7 +630,7 @@
 
 
 
-  3 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -646,11 +647,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -658,7 +659,7 @@
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -675,11 +676,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -687,7 +688,7 @@
 
 
 
-  少于 1 分钟 阅读
+  3 分钟 阅读
 
 </p>
     
@@ -704,11 +705,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-center-ui/" rel="permalink">Service-Center Management UI Console
+        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">An introduction Service-Center Management Console
+    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
diff --git a/content/cn/docs/linuxcon-workshop-demo/index.html b/content/cn/docs/linuxcon-workshop-demo/index.html
index c6f4048..efc5173 100644
--- a/content/cn/docs/linuxcon-workshop-demo/index.html
+++ b/content/cn/docs/linuxcon-workshop-demo/index.html
@@ -1290,11 +1290,11 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -1302,7 +1302,7 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -1319,11 +1319,11 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -1331,7 +1331,7 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -1348,11 +1348,11 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -1360,7 +1360,7 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -1377,11 +1377,11 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -1389,7 +1389,7 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/maven_dependency_management/index.html b/content/cn/docs/maven_dependency_management/index.html
index 068db1a..c021e43 100644
--- a/content/cn/docs/maven_dependency_management/index.html
+++ b/content/cn/docs/maven_dependency_management/index.html
@@ -650,11 +650,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -662,7 +662,7 @@
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -679,11 +679,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -691,7 +691,7 @@
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -708,11 +708,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -720,7 +720,7 @@
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -737,11 +737,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -749,7 +749,7 @@
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/performance-test-on-seckill-with-jmeter/index.html b/content/cn/docs/performance-test-on-seckill-with-jmeter/index.html
index f0b2802..8e2f1eb 100644
--- a/content/cn/docs/performance-test-on-seckill-with-jmeter/index.html
+++ b/content/cn/docs/performance-test-on-seckill-with-jmeter/index.html
@@ -648,11 +648,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -660,7 +660,7 @@
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -677,11 +677,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -689,7 +689,7 @@
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -706,11 +706,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -718,7 +718,7 @@
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -735,11 +735,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -747,7 +747,7 @@
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/stress-test-on-company-with-jmeter-in-k8s/index.html b/content/cn/docs/saga_pack_design/index.html
similarity index 51%
copy from content/cn/docs/stress-test-on-company-with-jmeter-in-k8s/index.html
copy to content/cn/docs/saga_pack_design/index.html
index f550a8e..d9a978a 100644
--- a/content/cn/docs/stress-test-on-company-with-jmeter-in-k8s/index.html
+++ b/content/cn/docs/saga_pack_design/index.html
@@ -19,12 +19,12 @@
 
 
 
-<title>在Kubernetes集群中使用JMeter对Company示例进行压力测试 - Apache ServiceComb (incubating)</title>
+<title>ServiceComb数据一致性解决方案Saga演进介绍 - Apache ServiceComb (incubating)</title>
 
 
 
 
-<meta name="description" content="介绍如何在Kubernetes集群上使用JMeter进行压力测试">
+<meta name="description" content="Saga演进介绍">
 
 
 
@@ -33,21 +33,21 @@
 
 <meta property="og:locale" content="cn">
 <meta property="og:site_name" content="Apache ServiceComb (incubating)">
-<meta property="og:title" content="在Kubernetes集群中使用JMeter对Company示例进行压力测试">
+<meta property="og:title" content="ServiceComb数据一致性解决方案Saga演进介绍">
 
 
-  <link rel="canonical" href="http://github.com/pages/apache/incubator-servicecomb-website/cn/docs/stress-test-on-company-with-jmeter-in-k8s/">
-  <meta property="og:url" content="http://github.com/pages/apache/incubator-servicecomb-website/cn/docs/stress-test-on-company-with-jmeter-in-k8s/">
+  <link rel="canonical" href="http://github.com/pages/apache/incubator-servicecomb-website/cn/docs/saga_pack_design/">
+  <meta property="og:url" content="http://github.com/pages/apache/incubator-servicecomb-website/cn/docs/saga_pack_design/">
 
 
 
-  <meta property="og:description" content="介绍如何在Kubernetes集群上使用JMeter进行压力测试">
+  <meta property="og:description" content="Saga演进介绍">
 
 
 
   <meta name="twitter:site" content="@ServiceComb">
-  <meta name="twitter:title" content="在Kubernetes集群中使用JMeter对Company示例进行压力测试">
-  <meta name="twitter:description" content="介绍如何在Kubernetes集群上使用JMeter进行压力测试">
+  <meta name="twitter:title" content="ServiceComb数据一致性解决方案Saga演进介绍">
+  <meta name="twitter:description" content="Saga演进介绍">
   <meta name="twitter:url" content="">
 
   
@@ -70,7 +70,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-08-25T00:00:00+08:00">
+  <meta property="article:published_time" content="2018-04-04T00:00:00+08:00">
 
 
 
@@ -226,7 +226,7 @@
           
             
             
-            <a href=/docs/stress-test-on-company-with-jmeter-in-k8s/>English</a>
+            <a href=/docs/saga_pack_design/>English</a>
           
         </div>
       </nav>
@@ -347,16 +347,16 @@
 
 
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
-    <meta itemprop="headline" content="在Kubernetes集群中使用JMeter对Company示例进行压力测试">
-    <meta itemprop="description" content="介绍如何在Kubernetes集群上使用JMeter进行压力测试">
-    <meta itemprop="datePublished" content="August 25, 2017">
-    <meta itemprop="dateModified" content="August 26, 2017">
+    <meta itemprop="headline" content="ServiceComb数据一致性解决方案Saga演进介绍">
+    <meta itemprop="description" content="Saga演进介绍">
+    <meta itemprop="datePublished" content="April 04, 2018">
+    <meta itemprop="dateModified" content="April 04, 2018">
 
     <div class="page__inner-wrap">
       
         
           <header>
-            <h1 class="page__title" itemprop="headline">在Kubernetes集群中使用JMeter对Company示例进行压力测试
+            <h1 class="page__title" itemprop="headline">ServiceComb数据一致性解决方案Saga演进介绍
 </h1>
             
               <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -373,168 +373,170 @@
       
 
       <section class="page__content" itemprop="text">
-        <h2 id="背景">背景</h2>
+        <p>传统的单体应用的微服务化改造过程中大多会面临数据库拆分,故而原来由数据库保证的数据一致性也一定面临重新设计和实现,此时需要引入分布式数据一致性方案来解决。常见的解决方案主要有2PC,TCC,事件驱动等,而在微服务开源项目 ServiceComb中提出并实现了使用Saga<a href="https://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf">[1]</a>来解决微服务的数据一致性难题,不同方案的对比可参考《ServiceComb中的数据最终一致性方案》<a href="http://blog.csdn.net/fl63zv9zou86950w/article/details/78393439">[2]</a>一文。Saga是一个数据最终一致性的解决方案,它允许我们成功地执行所有事务,或在任何事务失败的情况下,补偿已成功的事务,并提供了ACID<a href="https://en.wikipedia.org/wiki/ACID">[3]</a>中ACD的保证(由于事务是交错执 [...]
 
-<p>  压力测试是评估应用性能的一种有效手段。此外,越来越多的应用被拆分为多个微服务而每个微服务的性能不一,有的微服务是计算密集型,有的是IO密集型。</p>
+<ul>
+  <li><strong>嵌套调用</strong>。如网上购物时,会依次经过下单、支付服务和第三方支付这几个子事务,其中,下单依赖于支付服务的返回状态,而支付服务也包含了多种可选的支付方式,并依赖于具体支付方式返回的结果。通过Saga,可以清晰地看到一个完整事务中各个服务之间的关系,在异常时也能快速定位出现问题的子事务。</li>
+  <li><strong>高并发</strong>。如秒杀场景下,在成功扣除库存和完成支付后方可认为秒杀成功,若成功扣除库存但支付失败则自动进行补偿(即恢复库存)。鉴于Saga只有提交和补偿两种状态,成功场景下只需对每个子事务进行一次调用即可,因此可以在高并发下保持高性能。</li>
+  <li><strong>调用时间长</strong>。如线上购买电影票,选好座位后一般会有15分钟的支付时间。Saga仅在子事务的提交阶段对资源进行短暂的锁定,且通过超时机制确保事务超时后能自动补偿,即在规定时间内没有支付成功的话就自动释放锁定的座位,极大地简化了业务出现异常时的处理逻辑。</li>
+</ul>
+
+<h2 id="saga新版本演进">Saga新版本演进</h2>
 
-<p>  因此,压力测试在基于微服务架构的网络应用中扮演着越来越重要的角色。本文将在<a href="https://kubernetes.io/">Kubernetes</a>集群中使用<a href="https://www.google.com.hk/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;ved=0ahUKEwiv9rjg7u_VAhUkxoMKHfoYDaYQFggvMAA&amp;url=http%3A%2F%2Fjmeter.apache.org%2F&amp;usg=AFQjCNHIHCOA-F9LnhaAn_STCWyPPgOpdw">JMeter 3.2</a>来对<a href="https://github.com/ServiceComb/ServiceComb-Company-WorkShop">Company应用</a>进行性能评估。</p>
+<p>新年新气象,Apache ServiceComb(incubating) Saga<a href="https://github.com/apache/incubator-servicecomb-saga">[4]</a>(以下简称Saga)进行了演进。相对于上一版<a href="http://blog.csdn.net/fl63zv9zou86950w/article/details/78393439">[2]</a>,新演进的设计主要有以下优势:</p>
 
-<p>  在上文<a href="http://servicecomb.io/cn/docs/autoscale-on-company/">《微服务化后的按需精细化资源控制》</a>中已了解到Manager服务的资源需求最大,本次使用JMeter对Company应用进行精细的性能测试。</p>
+<ul>
+  <li><strong>极大提升易用性</strong>。开发者只需使用2-3个注解(即启用事务服务:EnableOmega、全局事务标记:SagaStart和子事务标记:Compensable)。</li>
+  <li><strong>更方便扩展</strong>。对微服务框架的支持更友好。</li>
+  <li><strong>数据一致性与业务逻辑解耦</strong>。在演进后的设计中,通过服务侧omega的引入,saga协调器的职责更为单一(只需负责协调事务的完整性),与具体业务无关,因此,开发人员可以聚焦在具体业务的开发。</li>
+</ul>
 
-<h2 id="制定jmeter测试方案">制定JMeter测试方案</h2>
-<p>  制定的测试方案为:</p>
+<p>Saga演进后的架构,如下图所示,主要包含两个组件,即alpha和omega,其中:</p>
 
 <ul>
-  <li>
-    <p>由于登录认证会造成较大时延,故在压力测试主体运行前完成用户认证事宜;</p>
-  </li>
-  <li>
-    <p>对Company应用多个接口持续并发访问,QueryWorker, QueryBeekeeperDrone, QueryBeekeeperQueen分别对Company中的服务发起请求压力。</p>
-  </li>
+  <li>alpha充当协调者的角色,主要负责对事务的事件进行持久化存储以及协调子事务的状态,使其最终得以与全局事务的状态保持一致,即保证事务中的子事务要么全执行,要么全不执行。</li>
+  <li>omega是微服务中内嵌的一个agent,负责对网络请求进行拦截并向alpha上报事务事件,并在异常情况下根据alpha下发的指令执行相应的补偿或重试操作。</li>
 </ul>
 
-<p>  测试方案文件笔者已托管于github上,可直接获取:</p>
+<p><img src="/assets/images/pack/pack.png" alt="" /></p>
 
-<div class="language-bash highlighter-rouge"><pre class="highlight"><code>git clone https://github.com/ServiceComb/ServiceComb-Company-WorkShop
-<span class="nb">cd </span>ServiceComb-Company-WorkShop/stress-tests
-</code></pre>
-</div>
+<h2 id="omega内部运行机制">omega内部运行机制</h2>
 
-<p class="figure-caption"><img src="/assets/images/company_test_plan.png" alt="图1 测试计划" /><br />
-图1 测试计划</p>
+<p>omega是微服务中内嵌的一个agent,负责向alpha上报事务状态并与其它omega直接传递事务上下文信息。其中,每个服务的事务上下文包括:</p>
 
-<p>  在我们测试计划的开始,我们设置了一些在所有线程组都能共享的全局配置。其中,<em>CSV Data Set Config</em>组件从本地csv文件中加载测试服务器的信息。<em>HTTP Request Defaults</em>组件则为每个请求预设了默认的请求服务器信息,如IP和端口。<em>User Defined Variables</em>组件定义了全局共享的变量。<em>HTTP Header Manager</em>组件自动为每个请求添加HTTP的请求头部。</p>
+<ul>
+  <li>全局事务id(Global Tx Id):用于唯一标识全局事务,一般在全局事务入口生成,并在整个事务过程中传递。</li>
+  <li>本地事务id(Local Tx Id):用于唯一标识本地事务,一般由本地事务生成。</li>
+  <li>父事务id(Parent Tx Id):用于构建子事务间的关系,可由请求上下文中构建。</li>
+</ul>
 
-<p>  接着就是<em>setUp</em>线程组了。其作用主要是处理用户认证。由于Cookie在网络应用中得到较广泛的应用,因此JMeter中内置的认证方式是通过<em>HTTP Cookie Manager</em>组件来完成的。然而,我们的Company示例采用的是基于Token的认证方式而不是基于Cookie的认证方式。因此,这给我们在JMeter中处理认证添加了一点难度。<em>Remove header pre processor</em>组件使用了以下的脚本来去掉登录时请求中带有默认的请求头部,即登录请求时并不需要带有鉴权的请求头部。</p>
-<div class="language-shell highlighter-rouge"><pre class="highlight"><code>import org.apache.jmeter.protocol.http.control.Header;
-sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="o">(</span><span class="s2">"Authorization"</span><span class="o">)</span>;
-</code></pre>
-</div>
-<p>  然后我们通过<em>Set up Login</em>组件发起一次登录请求来获取用户登录鉴权信息。之后再通过正则表达式提取组件<em>authorization_extractor</em>来提取响应头部中的<em>Authorization</em>对应的值。由于变量无法在不同的线程组中共享和传递,这时候<em>BeanShell PostProcessor</em>组件就派上用场了,它主要工作就是将当前线程组中的目标变量转换为全局属性。</p>
-<div class="language-shell highlighter-rouge"><pre class="highlight"><code><span class="k">${</span><span class="nv">__setProperty</span><span class="p">(Authorization,</span><span class="k">${</span><span class="nv">Authorization</span><span class="k">}</span><span class="p">,)</span><span class="k">}</span>
-</code></pre>
-</div>
-<p>  在测试计划的最后部分就是我们要在Company示例上进行的压力测试。测试所选取的三个接口都是通过经理服务路由至其他两个服务的,即技工服务和养蜂人服务。在我们测试开始之前,我们通过打开<em>StressTest</em>的开关来禁用经理服务提供的缓存能力,从而使得技工服务和养蜂人服务能够处理到用户请求的计算任务。此外,我们通过将请求参数设置为1来简化技工服务和养蜂人服务的计算任务。</p>
+<p>如下图所示,分布式事务与用于分布式调用链追踪的zipkin<a href="https://github.com/openzipkin/zipkin">[5]</a>的处理流程很类似,在服务提供方,omega会将请求拦截并从中提取请求信息中的全局事务id作为其自身的全局事务id(即Saga事件id),并将请求中的本地事务id作为其父事务id,且使用新生成的id作为本地事务id;在服务消费方,omega会将请求拦截并往其中添加当前的全局事务id和本地事务id。通过服务提供方和服务消费方的这种协作处理,子事务能连接起来形成一个完整的全局事务。</p>
 
-<h2 id="启动测试">启动测试</h2>
+<p><img src="/assets/images/pack/id_flow.png" alt="" /></p>
 
-<ul>
-  <li>
-    <p>在Kubernetes集群中以无资源限制的方式来运行<em>Company应用</em>。</p>
-  </li>
-  <li>
-    <p>修改hosts.csv文件,使其匹配正在Kubernetes集群中运行的Company应用的服务地址。其中,默认的hosts.csv文件内容为:</p>
+<p>omega在预处理阶段会先向alpha发送事务开始的事件,在后处理阶段会再向alpha发送事务结束的事件。alpha在收到事件后会进行持久化的存储。因此,每个成功的子事务都有一一对应的开始及结束事件。</p>
 
-    <pre><code class="language-csv"> 127.0.0.1,8083
-</code></pre>
-  </li>
-  <li>
-    <p>运行测试,启动200个并发线程发起请求压力,并设置测试时常为600秒。</p>
+<p><img src="/assets/images/pack/omega_internal.png" alt="" /></p>
 
-    <div class="language-bash highlighter-rouge"><pre class="highlight"><code> jmeter -n -t workshop.jmx -j workshop.log -l workshop.jtl -Jthreads<span class="o">=</span>200 -Jduration<span class="o">=</span>600
-</code></pre>
-    </div>
-  </li>
-</ul>
+<p>在omega启动时会向alpha注册,使得异常或者超时场景下,alpha能通过回调向omega发送重试或补偿的命令和相应的调用参数,从而确保全局事务的一致性。</p>
+
+<h2 id="具体处理流程">具体处理流程</h2>
+
+<h3 id="成功场景">成功场景</h3>
 
-<h2 id="测试结果">测试结果</h2>
-<p>  在不同并发度下的测试结果如下图所示:</p>
+<p>全局事务开始前omega会先向alpha发送全局事务开始的事件,并在所有子事务完成时向alpha发送全局事务结束的事件。而每个子事务在执行前也会向alpha发送事务开始的事件,在成功执行后,会向alpha发送事务结束的事件。子事务间通过全局事务id连接在一起,但也因本地事务id而有所区分。因此,在成功场景下,每个开始的事件都会有对应的结束事件。</p>
 
-<p class="figure-caption"><img src="/assets/images/company_concurrency_performance.png" alt="图2 并发不同时的性能比较" class="align-center" />
-图2 并发不同时的性能比较</p>
+<p><img src="/assets/images/pack/successful_scenario.png" alt="" /></p>
 
-<p>  可以看出,经理服务的性能在到达瓶颈(15并发度)前非常稳定,保持平均响应时间极低的情况下吞吐量快速上升到<strong>最大约1000请求每秒</strong>的水平。 但随着并发度的进一步提升,平均响应时间开始快速增加。因此,<strong>将响应时间统计数据作为评估熔断超时的设置非常合适</strong>。</p>
+<h3 id="异常场景">异常场景</h3>
 
-<p class="figure-caption"><img src="/assets/images/company_response_time.png" alt="图3 不同服务的平均响应时间" class="align-center" />
-图3 不同服务的平均响应时间</p>
+<p>在子事务执行期间抛出异常时,omega会向alpha上报aborted事件,然后alpha会向该全局事务的其它已完成的子事务发送补偿指令,确保最终同一全局事务下的所有子事务要么都成功,要么都回滚。由于事务中没有明确指定全局事务中的参与者,因此,alpha的扫描器会定期查询事件表并找出已完成所有补偿子事务的全局事务,然后对这些全局事务添加全局事务结束事件以保证事务的完整性。</p>
 
-<p>  上图显示了不同服务的平均响应时间。由于养蜂人服务需要调用技工服务,因此其响应时间相对于技工服务的响应时间要稍微久一点。</p>
+<p><img src="/assets/images/pack/exception_scenario.png" alt="" /></p>
 
-<p class="figure-caption"><img src="/assets/images/company_cpu_load.png" alt="图4 不同并发度下CPU的负载" class="align-center" />
-图4 不同并发度下CPU的负载</p>
+<h3 id="超时场景">超时场景</h3>
 
-<p>  为了找出性能卡在了15并发度时的原因,我们回看了<a href="https://github.com/kubernetes/heapster">Heapster</a>上的监控数据。如下图所示,显然,<strong>经理服务是当前系统的瓶颈所在</strong>。它在吞吐量为1000 req/s时达到了最大的CPU负载。 相对而言,其它服务对资源的需求的增长速度要慢得多。</p>
+<p>alpha的扫描器会定期扫描正在处理的事件状态,若发现事件超时,则会记录相应的aborted事件,然后alpha会向该全局事务的其它已完成的子事务发送补偿指令来恢复至事务开始前的状态。</p>
 
-<p>  由于经理服务的日志是直接输出到stdout上的,且JMeter的测试端以单机模式运行时可能并不能同时模拟出足够的并发量。依此对在同一并发度(200)下不同log的设置(log4j1 stdout, log4j2 stdout,log4j2 异步,无日志输出)进行测试。其中,异步log在<em>log4j2.xml</em>文件中的设置如下所示:</p>
+<p><img src="/assets/images/pack/timeout_scenario.png" alt="" /></p>
 
-<div class="language-xml highlighter-rouge"><pre class="highlight"><code><span class="cp">&lt;?xml version="1.0" encoding="UTF-8" ?&gt;</span>
-<span class="nt">&lt;Configuration</span> <span class="na">status=</span><span class="s">"INFO"</span><span class="nt">&gt;</span>
-  <span class="nt">&lt;Appenders&gt;</span>
-    <span class="nt">&lt;RandomAccessFile</span> <span class="na">name=</span><span class="s">"RandomAccessFile"</span> <span class="na">fileName=</span><span class="s">"manager.log"</span> <span class="na">immediateFlush=</span><span class="s">"false"</span> <span class="na">append=</span><span class="s">"false"</span><span class="nt">&gt;</span>
-      <span class="nt">&lt;PatternLayout</span> <span class="na">pattern=</span><span class="s">"%d [%p] %m %l%n"</span><span class="nt">/&gt;</span>
-    <span class="nt">&lt;/RandomAccessFile&gt;</span>
-  <span class="nt">&lt;/Appenders&gt;</span>
-  <span class="nt">&lt;Loggers&gt;</span>
-    <span class="nt">&lt;asyncRoot</span> <span class="na">level=</span><span class="s">"info"</span><span class="nt">&gt;</span>
-      <span class="nt">&lt;AppenderRef</span> <span class="na">ref=</span><span class="s">"RandomAccessFile"</span><span class="nt">/&gt;</span>
-    <span class="nt">&lt;/asyncRoot&gt;</span>
-  <span class="nt">&lt;/Loggers&gt;</span>
-<span class="nt">&lt;/Configuration&gt;</span>
+<h2 id="如何使用">如何使用?</h2>
+
+<p>Saga的使用主要涵盖两方面,alpha的启动及omega的使用。</p>
+
+<h3 id="alpha的启动">alpha的启动</h3>
+
+<p>alpha启动前需要先运行数据库PostgreSQL:</p>
+
+<div class="language-bash highlighter-rouge"><pre class="highlight"><code>docker run -d -e <span class="s2">"POSTGRES_DB=saga"</span> -e <span class="s2">"POSTGRES_USER=saga"</span> -e <span class="s2">"POSTGRES_PASSWORD=password"</span> -p 5432:5432 postgres
 </code></pre>
 </div>
-<p>此外,还需要添加如下<em>disruptor</em>的依赖项使异步的设置生效:</p>
 
-<div class="language-xml highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;dependency&gt;</span>
-  <span class="nt">&lt;groupId&gt;</span>com.lmax<span class="nt">&lt;/groupId&gt;</span>
-  <span class="nt">&lt;artifactId&gt;</span>disruptor<span class="nt">&lt;/artifactId&gt;</span>
-  <span class="nt">&lt;version&gt;</span>3.3.6<span class="nt">&lt;/version&gt;</span>
-<span class="nt">&lt;/dependency&gt;</span>
+<p>在确保数据库正常启动后,即可运行alpha:</p>
+
+<div class="language-bash highlighter-rouge"><pre class="highlight"><code>docker run -d -p 8090:8090 <span class="se">\</span>
+  -e <span class="s2">"JAVA_OPTS=-Dspring.profiles.active=prd"</span> <span class="se">\</span>
+  -e <span class="s2">"spring.datasource.url=jdbc:postgresql://{docker.host.address}:5432/saga?useSSL=false"</span> <span class="se">\</span>
+  alpha-server:0.1.0
 </code></pre>
 </div>
-<p>没有日志输出的设置仅仅是将上述<em>log4j2.xml</em>文件中的日志输出级别从<em>info</em>改为<em>off</em>即可。此外,我们还使用JMeter分布式的模式进行了相关的测试。JMeter中使用分布式的模式来运行主要分两步:</p>
 
-<ol>
-  <li>
-    <p>在每个测试从节点上运行<em>jmeter-server</em>,其运行指令如下:</p>
+<h3 id="omega的使用">omega的使用</h3>
+
+<p>omega的使用很简单,以一个简化的转账业务为例,同一笔转账要么转入和转出都成功,要么都失败。在这样一个业务中引入Saga,只需简单几步即可:</p>
 
-    <div class="language-bash highlighter-rouge"><pre class="highlight"><code>jmeter-server -Djava.rmi.server.hostname<span class="o">=</span><span class="k">$(</span>ifconfig eth0 | grep <span class="s2">"inet addr"</span> | awk <span class="s1">'{print $2}'</span> | cut -d <span class="s2">":"</span> -f2<span class="k">)</span>
+<ol>
+  <li>引入依赖
+    <div class="language-xml highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;dependency&gt;</span>
+  <span class="nt">&lt;groupId&gt;</span>org.apache.servicecomb.saga<span class="nt">&lt;/groupId&gt;</span>
+  <span class="nt">&lt;artifactId&gt;</span>omega-spring-starter<span class="nt">&lt;/artifactId&gt;</span>
+  <span class="nt">&lt;version&gt;</span>0.1.0<span class="nt">&lt;/version&gt;</span>
+<span class="nt">&lt;/dependency&gt;</span>
+<span class="nt">&lt;dependency&gt;</span>
+  <span class="nt">&lt;groupId&gt;</span>org.apache.servicecomb.saga<span class="nt">&lt;/groupId&gt;</span>
+  <span class="nt">&lt;artifactId&gt;</span>omega-transport-resttemplate<span class="nt">&lt;/artifactId&gt;</span>
+  <span class="nt">&lt;version&gt;</span>0.1.0<span class="nt">&lt;/version&gt;</span>
+<span class="nt">&lt;/dependency&gt;</span>
 </code></pre>
     </div>
   </li>
-  <li>
-    <p>在测试主节点上运行<em>jmeter</em>,指令如下:</p>
-
-    <div class="language-bash highlighter-rouge"><pre class="highlight"><code>jmeter -n -R host1,host2 -t workshop.jmx -j workshop.log -l workshop.jtl -Gmin<span class="o">=</span>1 -Gmax<span class="o">=</span>2 -Gthreads<span class="o">=</span>200 -Gduration<span class="o">=</span>600
+  <li>添加Saga的注解及相应的补偿方法
+2.1 在应用入口添加 <code class="highlighter-rouge">@EnableOmega</code> 的注解来初始化omega的配置并与alpha建立连接。
+    <div class="language-java highlighter-rouge"><pre class="highlight"><code> <span class="nd">@SpringBootApplication</span>
+ <span class="nd">@EnableOmega</span>
+ <span class="kd">public</span> <span class="kd">class</span> <span class="nc">Application</span> <span class="o">{</span>
+   <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
+     <span class="n">SpringApplication</span><span class="o">.</span><span class="na">run</span><span class="o">(</span><span class="n">Application</span><span class="o">.</span><span class="na">class</span><span class="o">,</span> <span class="n">args</span><span class="o">);</span>
+   <span class="o">}</span>
+ <span class="o">}</span>
+</code></pre>
+    </div>
+    <p>2.2 在全局事务的起点添加 <code class="highlighter-rouge">@SagaStart</code> 的注解。</p>
+    <div class="language-java highlighter-rouge"><pre class="highlight"><code> <span class="nd">@SagaStart</span><span class="o">(</span><span class="n">timeout</span><span class="o">=</span><span class="mi">10</span><span class="o">)</span>
+ <span class="kd">public</span> <span class="kt">boolean</span> <span class="nf">transferMoney</span><span class="o">(</span><span class="n">String</span> <span class="n">from</span><span class="o">,</span> <span class="n">String</span> <span class="n">to</span><span class="o">,</span> <span class="kt">int</span> <span class="n">amount</span><span class="o">)</span> <span class="o">{</span>
+   <span class="n">transferOut</span><span class="o">(</span><span class="n">from</span><span class="o">,</span> <span class="n">amount</span><span class="o">);</span>
+   <span class="n">transferIn</span><span class="o">(</span><span class="n">to</span><span class="o">,</span> <span class="n">amount</span><span class="o">);</span>
+ <span class="o">}</span>
+</code></pre>
+    </div>
+    <p>2.3 在子事务处添加 <code class="highlighter-rouge">@Compensable</code> 的注解并指明其对应的补偿方法。其中,补偿方法的形参列表需与子事务方法的形参列表保持一致。</p>
+    <div class="language-java highlighter-rouge"><pre class="highlight"><code> <span class="nd">@Compensable</span><span class="o">(</span><span class="n">timeout</span><span class="o">=</span><span class="mi">5</span><span class="o">,</span> <span class="n">compensationMethod</span><span class="o">=</span><span class="s">"cancel"</span><span class="o">)</span>
+ <span class="kd">public</span> <span class="kt">boolean</span> <span class="nf">transferOut</span><span class="o">(</span><span class="n">String</span> <span class="n">from</span><span class="o">,</span> <span class="kt">int</span> <span class="n">amount</span><span class="o">)</span> <span class="o">{</span>
+   <span class="n">repo</span><span class="o">.</span><span class="na">reduceBalanceByUsername</span><span class="o">(</span><span class="n">from</span><span class="o">,</span> <span class="n">amount</span><span class="o">);</span>
+ <span class="o">}</span>
+    
+ <span class="kd">public</span> <span class="kt">boolean</span> <span class="nf">cancel</span><span class="o">(</span><span class="n">String</span> <span class="n">from</span><span class="o">,</span> <span class="kt">int</span> <span class="n">amount</span><span class="o">)</span> <span class="o">{</span>
+   <span class="n">repo</span><span class="o">.</span><span class="na">addBalanceByUsername</span><span class="o">(</span><span class="n">from</span><span class="o">,</span> <span class="n">amount</span><span class="o">);</span>
+ <span class="o">}</span>
+</code></pre>
+    </div>
+    <p>2.4 对转入服务重复第2.3步即可。</p>
+
+    <p>2.5 在每个服务的application.yaml中添加配置项,指明服务信息和alpha的地址信息:</p>
+    <div class="language-yaml highlighter-rouge"><pre class="highlight"><code> <span class="s">spring</span><span class="pi">:</span>
+   <span class="s">application</span><span class="pi">:</span>
+     <span class="s">name</span><span class="pi">:</span> <span class="pi">{</span><span class="nv">application.name</span><span class="pi">}</span>
+ <span class="s">alpha</span><span class="pi">:</span>
+   <span class="s">cluster</span><span class="pi">:</span>
+     <span class="s">address</span><span class="pi">:</span> <span class="pi">{</span><span class="nv">alpha.cluster.addresses</span><span class="pi">}</span>
 </code></pre>
     </div>
-
-    <p class="notice--warning"><em>注意事项</em>:JMeter属性在分布式模式下并不能生效,需要将其声明为全局的属性。因此,此处我们用的是<em>-G</em>的选项而不是之前的<em>-J</em>的选项。</p>
   </li>
 </ol>
 
-<p>运行结果如下所示:</p>
+<p>目前Saga的实现还存在着很多有意思且有挑战性的课题,如alpha的协调调度实现、幂等的实现及自动补偿的实现等,欢迎有志之士与我们携手一起解决数据一致性的难题,共同为完善微服务生态贡献自己的力量。</p>
 
-<p><img src="/assets/images/company_log_and_jmeter.png" alt="不同日志设置不同模式下的性能" class="align-center" /></p>
+<h2 id="参考文献">参考文献</h2>
 
-<p>  从上图可以看出:</p>
+<p>[1] Sagas, Hector Garcia-Molina &amp; Kenneth Salem, <a href="https://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf">https://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf</a></p>
 
-<ul>
-  <li>
-    <p>JMeter单机测试和分布式测试的性能都非常接近,说明单机模式的JMeter测试暂时来说是足以模拟出足够的并发数来处理当前的测试场景的。</p>
-  </li>
-  <li>
-    <p>日志的输出的确对系统的性能造成了较大的影响,可以看到,异步输出日志的方式能比同步输出的方式提升接近100%的吞吐量。因此,<strong>在生产环境下使用完全同步输出日志的方式可能并不会有较理想的性能。</strong></p>
-  </li>
-  <li>
-    <p>log4j2的吞吐量相对于log4j1而言大幅提高了约40%,内存使用量也更少了。因此,<strong>推荐使用性能更佳的log4j2替换掉陈旧的log4j1</strong>。</p>
-  </li>
-</ul>
-
-<p class="figure-caption"><img src="/assets/images/company_different_log_memory_usage.png" alt="图5 不同日志设置下的内存使用量" class="align-center" />
-图5 不同日志设置下的内存使用量</p>
-
-<p>  尽管异步日志的方式能极大地提高系统的吞吐量,但它同时也占用了较多的内存,如图5所示。</p>
-
-<p class="figure-caption"><img src="/assets/images/company_memory_used.png" alt="图6 测试过程的内存使用量" class="align-center" />
-图6 测试过程的内存使用量</p>
-
-<p>  图6显示了在测试过程中不同服务的内存使用量。由于Company示例只是一个简单的用例,在测试过程中各个服务的内存使用率都相对稳定。然而,相对<em>告示栏</em>服务(使用go语言编写)的内存使用量而言,其它以Java来编写的服务则占用了较多的内存。</p>
+<p>[2] ServiceComb中的数据最终一致性方案,殷湘,<a href="http://blog.csdn.net/fl63zv9zou86950w/article/details/78393439">http://blog.csdn.net/fl63zv9zou86950w/article/details/78393439</a></p>
 
-<h2 id="总结">总结</h2>
+<p>[3] ACID, Wikipedia, <a href="https://en.wikipedia.org/wiki/ACID">https://en.wikipedia.org/wiki/ACID</a></p>
 
-<p>  对应用进行压力测试往往能在应用投入生产环境前帮助我们找出服务中潜在的问题。压力测试也能模拟生产环境,从而来验证服务是否已达到规定的性能指标。而根据压力测试的结果,我们可以权衡Pod部署时的设置来保证SLA的同时获得最大的系统吞吐能力。</p>
+<p>[4] Apache ServiceComb(incubating) Saga, Apache, <a href="https://github.com/apache/incubator-servicecomb-saga">https://github.com/apache/incubator-servicecomb-saga</a></p>
 
-<p>  基于微服务架构的应用不仅在设计、编码及测试方面变得更加灵活,同时也使得部署更加方便。基于微服务架构能够保证资源的弹性伸缩极其迅捷,我们可以根据服务的真实可承受压力设置不同的副本数和资源配置来节约资源。此外,在云上也能借助其弹性伸缩能力使得服务能够应对访问风暴。</p>
+<p>[5] zipkin, zipkin, <a href="https://github.com/openzipkin/zipkin">https://github.com/openzipkin/zipkin</a></p>
 
         
       </section>
@@ -555,11 +557,7 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
     
       
       
-      <a href="/tags/#jmeter" class="page__taxonomy-item" rel="tag">jmeter</a><span class="sep">, </span>
-    
-      
-      
-      <a href="/tags/#%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95" class="page__taxonomy-item" rel="tag">压力测试</a>
+      <a href="/tags/#saga" class="page__taxonomy-item" rel="tag">saga</a>
     
     </span>
   </p>
@@ -571,7 +569,7 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
         
           
             
-              <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> 最新的:</strong> <time datetime="2017-08-26">2017年8月26日</time></p>
+              <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> 最新的:</strong> <time datetime="2018-04-04">2018年4月4日</time></p>
             
           
         
@@ -582,25 +580,24 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
     <h4 class="page__share-title">分享</h4>
   
 
-  <a href="https://twitter.com/intent/tweet?via=ServiceComb&text=在Kubernetes集群中使用JMeter对Company示例进行压力测试 /cn/docs/stress-test-on-company-with-jmeter-in-k8s/" class="btn btn--twitter" title="分享 Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
+  <a href="https://twitter.com/intent/tweet?via=ServiceComb&text=ServiceComb数据一致性解决方案Saga演进介绍 /cn/docs/saga_pack_design/" class="btn btn--twitter" title="分享 Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
 
-  <a href="https://www.facebook.com/sharer/sharer.php?u=/cn/docs/stress-test-on-company-with-jmeter-in-k8s/" class="btn btn--facebook" title="分享 Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
+  <a href="https://www.facebook.com/sharer/sharer.php?u=/cn/docs/saga_pack_design/" class="btn btn--facebook" title="分享 Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
 
-  <a href="https://plus.google.com/share?url=/cn/docs/stress-test-on-company-with-jmeter-in-k8s/" class="btn btn--google-plus" title="分享 Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
+  <a href="https://plus.google.com/share?url=/cn/docs/saga_pack_design/" class="btn btn--google-plus" title="分享 Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
 
-  <a href="https://www.linkedin.com/shareArticle?mini=true&url=/cn/docs/stress-test-on-company-with-jmeter-in-k8s/" class="btn btn--linkedin" title="分享 LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
+  <a href="https://www.linkedin.com/shareArticle?mini=true&url=/cn/docs/saga_pack_design/" class="btn btn--linkedin" title="分享 LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
 </section>
 
 
       
   <nav class="pagination">
     
-      <a href="/docs/stress-test-on-company-with-jmeter-in-k8s/" class="pagination--pager" title="Stress test on Company Demo with Jmeter in Kubernetes Cluster
+      <a href="/cn/docs/join_the_community/" class="pagination--pager" title="如何加入ServiceComb社区
 ">向前</a>
     
     
-      <a href="/docs/seckill-development-journey-part-I/" class="pagination--pager" title="SecKill Development Journey (I)
-">向后</a>
+      <a href="#" class="pagination--pager disabled">向后</a>
     
   </nav>
 
@@ -646,7 +643,7 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
             <input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/>
           </fieldset>
           <fieldset class="hidden" style="display: none;">
-            <input type="hidden" name="options[slug]" value="stress-test-on-company-with-jmeter-in-k8s">
+            <input type="hidden" name="options[slug]" value="saga-pack-design">
             <label for="comment-form-location">Not used. Leave blank if you are a human.</label>
             <input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/>
           </fieldset>
@@ -712,11 +709,11 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -724,7 +721,7 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
 
 
 
-  4 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -741,11 +738,11 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -753,7 +750,7 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
 
 
 
-  2 分钟 阅读
+  3 分钟 阅读
 
 </p>
     
@@ -770,11 +767,11 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -782,7 +779,7 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
 
 
 
-  少于 1 分钟 阅读
+  2 分钟 阅读
 
 </p>
     
@@ -825,8 +822,8 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
     <div class="col">
       <ul>
         <p class="header">贡献</p>
-        <li><a href="https://github.com/apache/incubator-servicecomb-website/issues/new?title=Issue with _posts/cn/2017-08-25-stress-test-on-company-with-jmeter-in-k8s.md">报告本网页问题</a></li>
-        <li><a href="https://github.com/apache/incubator-servicecomb-website/edit/master/_posts/cn/2017-08-25-stress-test-on-company-with-jmeter-in-k8s.md">在Github上编辑此页</a></li>
+        <li><a href="https://github.com/apache/incubator-servicecomb-website/issues/new?title=Issue with _posts/cn/2018-04-04-saga-pack-design.md">报告本网页问题</a></li>
+        <li><a href="https://github.com/apache/incubator-servicecomb-website/edit/master/_posts/cn/2018-04-04-saga-pack-design.md">在Github上编辑此页</a></li>
         <li><a href="/cn/developers/submit-codes/">代码提交指南</a></li>
       </ul>
     </div>
diff --git a/content/cn/docs/seckill-development-journey-part-I/index.html b/content/cn/docs/seckill-development-journey-part-I/index.html
index d1e619c..30bca17 100644
--- a/content/cn/docs/seckill-development-journey-part-I/index.html
+++ b/content/cn/docs/seckill-development-journey-part-I/index.html
@@ -582,11 +582,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -594,7 +594,7 @@
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -611,11 +611,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -623,7 +623,7 @@
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -640,11 +640,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -652,7 +652,7 @@
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -669,11 +669,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -681,7 +681,7 @@
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/seckill-development-journey-part-II/index.html b/content/cn/docs/seckill-development-journey-part-II/index.html
index d099d35..ddaa05a 100644
--- a/content/cn/docs/seckill-development-journey-part-II/index.html
+++ b/content/cn/docs/seckill-development-journey-part-II/index.html
@@ -571,11 +571,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -583,7 +583,7 @@
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -600,11 +600,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -612,7 +612,7 @@
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -629,11 +629,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -641,7 +641,7 @@
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -658,11 +658,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -670,7 +670,7 @@
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/seckill-development-journey-part-III/index.html b/content/cn/docs/seckill-development-journey-part-III/index.html
index 2995c4a..cd30dfe 100644
--- a/content/cn/docs/seckill-development-journey-part-III/index.html
+++ b/content/cn/docs/seckill-development-journey-part-III/index.html
@@ -585,11 +585,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -597,7 +597,7 @@
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -614,11 +614,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -626,7 +626,7 @@
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -643,11 +643,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -655,7 +655,7 @@
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -672,11 +672,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -684,7 +684,7 @@
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/stress-test-on-company-with-jmeter-in-k8s/index.html b/content/cn/docs/stress-test-on-company-with-jmeter-in-k8s/index.html
index f550a8e..2aa4a89 100644
--- a/content/cn/docs/stress-test-on-company-with-jmeter-in-k8s/index.html
+++ b/content/cn/docs/stress-test-on-company-with-jmeter-in-k8s/index.html
@@ -683,11 +683,11 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -695,7 +695,7 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -712,11 +712,11 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -724,7 +724,7 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -741,11 +741,11 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -753,7 +753,7 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -770,11 +770,11 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -782,7 +782,7 @@ sampler.getHeaderManager<span class="o">()</span>.removeHeaderNamed<span class="
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/docs/tracing-with-servicecomb/index.html b/content/cn/docs/tracing-with-servicecomb/index.html
index 473e78d..d786050 100644
--- a/content/cn/docs/tracing-with-servicecomb/index.html
+++ b/content/cn/docs/tracing-with-servicecomb/index.html
@@ -634,11 +634,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -646,7 +646,7 @@
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -663,11 +663,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -675,7 +675,7 @@
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -692,11 +692,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -704,7 +704,7 @@
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -721,11 +721,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -733,7 +733,7 @@
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/cn/users/application-boot-process/index.html b/content/cn/users/application-boot-process/index.html
index 9452fcf..88dc6c7 100644
--- a/content/cn/users/application-boot-process/index.html
+++ b/content/cn/users/application-boot-process/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/communicate-protocol/index.html b/content/cn/users/communicate-protocol/index.html
index a8f2bcf..b1e462b 100644
--- a/content/cn/users/communicate-protocol/index.html
+++ b/content/cn/users/communicate-protocol/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/customized-tracing/index.html b/content/cn/users/customized-tracing/index.html
index 803b09c..dfe1e82 100644
--- a/content/cn/users/customized-tracing/index.html
+++ b/content/cn/users/customized-tracing/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/develop-with-jax-rs/index.html b/content/cn/users/develop-with-jax-rs/index.html
index f93c001..387b976 100644
--- a/content/cn/users/develop-with-jax-rs/index.html
+++ b/content/cn/users/develop-with-jax-rs/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/develop-with-rest-template/index.html b/content/cn/users/develop-with-rest-template/index.html
index 55f55e1..a019146 100644
--- a/content/cn/users/develop-with-rest-template/index.html
+++ b/content/cn/users/develop-with-rest-template/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/develop-with-rpc/index.html b/content/cn/users/develop-with-rpc/index.html
index 9f1122b..52e602c 100644
--- a/content/cn/users/develop-with-rpc/index.html
+++ b/content/cn/users/develop-with-rpc/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/develop-with-springmvc/index.html b/content/cn/users/develop-with-springmvc/index.html
index 1eb158a..8de4a7a 100644
--- a/content/cn/users/develop-with-springmvc/index.html
+++ b/content/cn/users/develop-with-springmvc/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/develop-with-transparent-rpc/index.html b/content/cn/users/develop-with-transparent-rpc/index.html
index 9a349b0..c9fbb12 100644
--- a/content/cn/users/develop-with-transparent-rpc/index.html
+++ b/content/cn/users/develop-with-transparent-rpc/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/distributed-tracing/index.html b/content/cn/users/distributed-tracing/index.html
index c3ddd45..4c56096 100644
--- a/content/cn/users/distributed-tracing/index.html
+++ b/content/cn/users/distributed-tracing/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/dynamic-config/index.html b/content/cn/users/dynamic-config/index.html
index 2289fe3..d4681d3 100644
--- a/content/cn/users/dynamic-config/index.html
+++ b/content/cn/users/dynamic-config/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/customized-tracing/index.html b/content/cn/users/edge-in-1.0.0-m1/index.html
similarity index 59%
copy from content/cn/users/customized-tracing/index.html
copy to content/cn/users/edge-in-1.0.0-m1/index.html
index 803b09c..d6efdfa 100644
--- a/content/cn/users/customized-tracing/index.html
+++ b/content/cn/users/edge-in-1.0.0-m1/index.html
@@ -19,12 +19,12 @@
 
 
 
-<title>自定义调用链打点 - Apache ServiceComb (incubating)</title>
+<title>使用内置Edge模块实现边缘服务 - Apache ServiceComb (incubating)</title>
 
 
 
 
-<meta name="description" content="自定义调用链打点">
+<meta name="description" content="使用内置Edge模块实现边缘服务">
 
 
 
@@ -33,21 +33,21 @@
 
 <meta property="og:locale" content="cn">
 <meta property="og:site_name" content="Apache ServiceComb (incubating)">
-<meta property="og:title" content="自定义调用链打点">
+<meta property="og:title" content="使用内置Edge模块实现边缘服务">
 
 
-  <link rel="canonical" href="http://github.com/pages/apache/incubator-servicecomb-website/cn/users/customized-tracing/">
-  <meta property="og:url" content="http://github.com/pages/apache/incubator-servicecomb-website/cn/users/customized-tracing/">
+  <link rel="canonical" href="http://github.com/pages/apache/incubator-servicecomb-website/cn/users/edge-in-1.0.0-m1/">
+  <meta property="og:url" content="http://github.com/pages/apache/incubator-servicecomb-website/cn/users/edge-in-1.0.0-m1/">
 
 
 
-  <meta property="og:description" content="自定义调用链打点">
+  <meta property="og:description" content="使用内置Edge模块实现边缘服务">
 
 
 
   <meta name="twitter:site" content="@ServiceComb">
-  <meta name="twitter:title" content="自定义调用链打点">
-  <meta name="twitter:description" content="自定义调用链打点">
+  <meta name="twitter:title" content="使用内置Edge模块实现边缘服务">
+  <meta name="twitter:description" content="使用内置Edge模块实现边缘服务">
   <meta name="twitter:url" content="">
 
   
@@ -221,7 +221,7 @@
           
             
             
-            <a href=/users/customized-tracing/>English</a>
+            <a href=/users/edge-in-1.0.0-m1/>English</a>
           
         </div>
       </nav>
@@ -458,7 +458,7 @@
             
             
 
-            <li><a href="/cn/users/customized-tracing/" class="active">自定义调用链打点</a></li>
+            <li><a href="/cn/users/customized-tracing/" class="">自定义调用链打点</a></li>
           
         </ul>
         
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="active">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
@@ -597,16 +605,16 @@
 
 
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
-    <meta itemprop="headline" content="自定义调用链打点">
-    <meta itemprop="description" content="自定义调用链打点">
+    <meta itemprop="headline" content="使用内置Edge模块实现边缘服务">
+    <meta itemprop="description" content="使用内置Edge模块实现边缘服务">
     
-    <meta itemprop="dateModified" content="August 15, 2017">
+    <meta itemprop="dateModified" content="April 03, 2018">
 
     <div class="page__inner-wrap">
       
         
           <header>
-            <h1 class="page__title" itemprop="headline">自定义调用链打点
+            <h1 class="page__title" itemprop="headline">使用内置Edge模块实现边缘服务
 </h1>
             
           </header>
@@ -618,133 +626,121 @@
 <nav class="toc">
     <!-- <header><h4 class="nav__title"><i class="fa fa-file-text"></i> 在本页上</h4></header> -->
 <ul class="toc__menu" id="markdown-toc">
-  <li><a href="#概念阐述" id="markdown-toc-概念阐述">概念阐述</a></li>
-  <li><a href="#前提条件" id="markdown-toc-前提条件">前提条件</a></li>
-  <li><a href="#注意事项" id="markdown-toc-注意事项">注意事项</a></li>
-  <li><a href="#自定义调用链打点" id="markdown-toc-自定义调用链打点">自定义调用链打点</a></li>
-  <li><a href="#使用步骤" id="markdown-toc-使用步骤">使用步骤:</a>    <ul>
-      <li><a href="#添加依赖" id="markdown-toc-添加依赖">添加依赖</a></li>
-      <li><a href="#启用自定义打点功能" id="markdown-toc-启用自定义打点功能">启用自定义打点功能</a></li>
-      <li><a href="#定制打点" id="markdown-toc-定制打点">定制打点</a></li>
+  <li><a href="#edge特性" id="markdown-toc-edge特性">Edge特性</a>    <ul>
+      <li><a href="#与微服务松耦合" id="markdown-toc-与微服务松耦合">与微服务松耦合</a></li>
+      <li><a href="#自动匹配版本" id="markdown-toc-自动匹配版本">自动匹配版本</a></li>
+      <li><a href="#支持consumer治理" id="markdown-toc-支持consumer治理">支持Consumer治理</a></li>
+      <li><a href="#默认使用reactive工作模式" id="markdown-toc-默认使用reactive工作模式">默认使用Reactive工作模式</a></li>
     </ul>
   </li>
-  <li><a href="#定制上报的数据" id="markdown-toc-定制上报的数据">定制上报的数据</a></li>
+  <li><a href="#开发edge-service" id="markdown-toc-开发edge-service">开发Edge Service</a>    <ul>
+      <li><a href="#引入依赖" id="markdown-toc-引入依赖">引入依赖</a></li>
+      <li><a href="#开发dispatcher" id="markdown-toc-开发dispatcher">开发Dispatcher</a></li>
+      <li><a href="#加载dispatcher" id="markdown-toc-加载dispatcher">加载Dispatcher</a></li>
+      <li><a href="#扩展handler可选" id="markdown-toc-扩展handler可选">扩展Handler(可选)</a></li>
+    </ul>
+  </li>
+  <li><a href="#参考示例" id="markdown-toc-参考示例">参考示例</a></li>
 </ul>
 
   </nav>
 </aside>
 
-<h2 id="概念阐述">概念阐述</h2>
-
-<p>分布式调用链追踪提供了服务间调用的时序信息,但服务内部的链路调用信息对开发者同样重要,如果能将两者合二为一,就能提供更完整的调用链,更容易定位错误和潜在性能问题。</p>
+<p>微服务框架从1.0.0-m1版本开始提供内置Edge模块,请通过查看用户手册和Release Note获取更多信息,我们也会继续追加新特性新功能,欢迎订阅ServiceComb邮件列表(dev-subscribe@servicecomb.incubator.apache.org)参与讨论。</p>
 
-<h2 id="前提条件">前提条件</h2>
+<h2 id="edge特性">Edge特性</h2>
+<h3 id="与微服务松耦合">与微服务松耦合</h3>
+<p>Edge Service仅仅转发微服务请求,与目标微服务之间没有任何依赖关系。</p>
 
+<h3 id="自动匹配版本">自动匹配版本</h3>
+<p>默认情况下,Edge Service会自动匹配版本操作,例如微服务:</p>
 <ul>
-  <li>使用自定义打点功能需要首先配置并启用Java Chassis微服务调用链。</li>
+  <li>在1.0.0版本中提供了Operation1</li>
+  <li>在1.1.0版本中提供了Operation1和Operation2</li>
 </ul>
 
-<h2 id="注意事项">注意事项</h2>
+<p>Edge Service转发Operation1的请求将允许1.0.0版本和1.1.0版本的微服务实例,转发Operation2时,只会选择1.1.0版本的微服务实例。</p>
 
+<h3 id="支持consumer治理">支持Consumer治理</h3>
+<p>支持所有Java Chassis Consumer治理Handler,也支持用户扩展Handler。</p>
+
+<h3 id="默认使用reactive工作模式">默认使用Reactive工作模式</h3>
+<p>由于Edge Service转发所有API调用,对性能有较高要求,所以默认使用Reactive模式工作,请不要在转发流程代码中增加阻塞操作,例如:</p>
 <ul>
-  <li>使用<code class="highlighter-rouge">@Span</code>注释的自定义打点功能只支持和Java Chassis调用请求同一线程的方法调用。</li>
-  <li>添加<code class="highlighter-rouge">@Span</code>注释的方法必须是Spring管理的Bean,否则需要按这里<a href="https://stackoverflow.com/questions/41383941/load-time-weaving-for-non-spring-beans-in-a-spring-application">提到的方法</a>配置。</li>
+  <li>数据库查询、远程调用等;</li>
+  <li>sleep、wait等;</li>
+  <li>大循环或耗时操作等。</li>
 </ul>
 
-<h2 id="自定义调用链打点">自定义调用链打点</h2>
-
-<p>该功能集成了Zipkin,提供<code class="highlighter-rouge">@Span</code>注释为需要追踪的方法自定义打点。Java Chassis将自动追踪所有添加<code class="highlighter-rouge">@Span</code>注释的方法,把每个方法的本地调用信息与服务间调用信息连接起来。</p>
-
-<h2 id="使用步骤">使用步骤:</h2>
-
-<h3 id="添加依赖">添加依赖</h3>
-
-<p>基于 ServiceComb Java Chassis 的微服务只需要添加如下依赖到 pom.xml:</p>
-
-<div class="language-xml highlighter-rouge"><pre class="highlight"><code>    <span class="nt">&lt;dependency&gt;</span>
-      <span class="nt">&lt;groupId&gt;</span>io.servicecomb<span class="nt">&lt;/groupId&gt;</span>
-      <span class="nt">&lt;artifactId&gt;</span>tracing-zipkin<span class="nt">&lt;/artifactId&gt;</span>
-    <span class="nt">&lt;/dependency&gt;</span>
+<h2 id="开发edge-service">开发Edge Service</h2>
+<h3 id="引入依赖">引入依赖</h3>
+<p>只需要引入edge-core依赖即可:</p>
+<div class="language-xml highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;dependency&gt;</span>
+  <span class="nt">&lt;groupId&gt;</span>org.apache.servicecomb<span class="nt">&lt;/groupId&gt;</span>
+  <span class="nt">&lt;artifactId&gt;</span>edge-core<span class="nt">&lt;/artifactId&gt;</span>
+  <span class="nt">&lt;version&gt;</span>1.0.0-m1<span class="nt">&lt;/version&gt;</span>
+<span class="nt">&lt;/dependency&gt;</span>
 </code></pre>
 </div>
 
-<h3 id="启用自定义打点功能">启用自定义打点功能</h3>
-
-<p>在应用入口或Spring配置类上添加<code class="highlighter-rouge">@EnableZipkinTracing</code>注释:</p>
-
-<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="nd">@SpringBootApplication</span>
-<span class="nd">@EnableZipkinTracing</span>
-<span class="kd">public</span> <span class="kd">class</span> <span class="nc">ZipkinSpanTestApplication</span> <span class="o">{</span>
-  <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
-    <span class="n">SpringApplication</span><span class="o">.</span><span class="na">run</span><span class="o">(</span><span class="n">ZipkinSpanTestApplication</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
-  <span class="o">}</span>
+<h3 id="开发dispatcher">开发Dispatcher</h3>
+<p>要实现Edge Service转发功能,需要开发Dispatcher并继承接口org.apache.servicecomb.transport.rest.vertx.VertxHttpDispatcher或org.apache.servicecomb.transport.rest.vertx.AbstractVertxHttpDispatcher,重写其中的三个方法:</p>
+<h4 id="getorder方法">getOrder方法</h4>
+<p>Dispatcher向Vertx注入路由规则时的优先顺序,值越小优先级越高。</p>
+
+<h4 id="init方法">init方法</h4>
+<p>初始化Dispatcher的路由规则,使用的是<a href="https://vertx.io/docs/vertx-web/java/#_routing_by_exact_path">Vertx路由规则</a>,例如我们添加两条匹配策略:</p>
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kt">void</span> <span class="nf">init</span><span class="o">(</span><span class="n">Router</span> <span class="n">router</span><span class="o">)</span> <span class="o">{</span>
+  <span class="n">String</span> <span class="n">regex</span> <span class="o">=</span> <span class="s">"/([^\\\\/]+)/([^\\\\/]+)/(.*)"</span><span class="o">;</span>
+  <span class="n">router</span><span class="o">.</span><span class="na">routeWithRegex</span><span class="o">(</span><span class="n">regex</span><span class="o">).</span><span class="na">handler</span><span class="o">(</span><span class="n">CookieHandler</span><span class="o">.</span><span class="na">create</span><span class="o">());</span>
+  <span class="n">router</span><span class="o">.</span><span class="na">routeWithRegex</span><span class="o">(</span><span class="n">regex</span><span class="o">).</span><span class="na">handler</span><span class="o">(</span><span class="n">createBodyHandler</span><span class="o">());</span>
+  <span class="n">router</span><span class="o">.</span><span class="na">routeWithRegex</span><span class="o">(</span><span class="n">regex</span><span class="o">).</span><span class="na">failureHandler</span><span class="o">(</span><span class="k">this</span><span class="o">::</span><span class="n">onFailure</span><span class="o">).</span><span class="na">handler</span><span class="o">(</span><span class="k">this</span><span class="o">::</span><span class="n">onRequest</span><span class= [...]
+
+  <span class="n">regex</span> <span class="o">=</span> <span class="s">"/([^\\\\/]+)/(.*)"</span><span class="o">;</span>
+  <span class="n">router</span><span class="o">.</span><span class="na">routeWithRegex</span><span class="o">(</span><span class="n">regex</span><span class="o">).</span><span class="na">handler</span><span class="o">(</span><span class="n">CookieHandler</span><span class="o">.</span><span class="na">create</span><span class="o">());</span>
+  <span class="n">router</span><span class="o">.</span><span class="na">routeWithRegex</span><span class="o">(</span><span class="n">regex</span><span class="o">).</span><span class="na">handler</span><span class="o">(</span><span class="n">createBodyHandler</span><span class="o">());</span>
+  <span class="n">router</span><span class="o">.</span><span class="na">routeWithRegex</span><span class="o">(</span><span class="n">regex</span><span class="o">).</span><span class="na">failureHandler</span><span class="o">(</span><span class="k">this</span><span class="o">::</span><span class="n">onFailure</span><span class="o">).</span><span class="na">handler</span><span class="o">(</span><span class="k">this</span><span class="o">::</span><span class="n">onRequest</span><span class= [...]
 <span class="o">}</span>
 </code></pre>
 </div>
 
-<h3 id="定制打点">定制打点</h3>
-
-<p>在需要定制打点的方法上添加<code class="highlighter-rouge">@Span</code>注释:</p>
+<ol>
+  <li>/([^\/]+)/([^\/]+)/(.*) : 这条策略我们希望匹配带版本的微服务请求,例如/user-service/v0/validate;</li>
+  <li>/([^\/]+)/(.*) : 这条策略用于匹配不带版本的微服务请求,例如/user-service/validate。</li>
+</ol>
 
-<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="nd">@Component</span>
-<span class="kd">public</span> <span class="kd">class</span> <span class="nc">SlowRepoImpl</span> <span class="kd">implements</span> <span class="n">SlowRepo</span> <span class="o">{</span>
-  <span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">Logger</span> <span class="n">logger</span> <span class="o">=</span> <span class="n">LoggerFactory</span><span class="o">.</span><span class="na">getLogger</span><span class="o">(</span><span class="n">SlowRepoImpl</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
-
-  <span class="kd">private</span> <span class="kd">final</span> <span class="n">Random</span> <span class="n">random</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Random</span><span class="o">();</span>
-
-  <span class="nd">@Span</span>
-  <span class="nd">@Override</span>
-  <span class="kd">public</span> <span class="n">String</span> <span class="nf">crawl</span><span class="o">()</span> <span class="kd">throws</span> <span class="n">InterruptedException</span> <span class="o">{</span>
-    <span class="n">logger</span><span class="o">.</span><span class="na">info</span><span class="o">(</span><span class="s">"in /crawl"</span><span class="o">);</span>
-    <span class="n">Thread</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="n">random</span><span class="o">.</span><span class="na">nextInt</span><span class="o">(</span><span class="mi">200</span><span class="o">));</span>
-    <span class="k">return</span> <span class="s">"crawled"</span><span class="o">;</span>
-  <span class="o">}</span>
-<span class="o">}</span>
+<h4 id="onrequest方法">onRequest方法</h4>
+<p>转发策略,方法原型为:</p>
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">onRequest</span><span class="o">(</span><span class="n">RoutingContext</span> <span class="n">context</span><span class="o">)</span>
 </code></pre>
 </div>
 
-<p>就这样,通过使用<code class="highlighter-rouge">@Span</code>注释,我们启动了基于 Zipkin 的自定义打点功能。</p>
+<p>从context中可以获取到请求目标微服务名,path等信息,之后创建EdgeInvocation并初始化,完成调用:</p>
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">EdgeInvocation</span> <span class="n">edgeInvocation</span> <span class="o">=</span> <span class="k">new</span> <span class="n">EdgeInvocation</span><span class="o">();</span>
+<span class="n">edgeInvocation</span><span class="o">.</span><span class="na">setVersionRule</span><span class="o">(</span><span class="n">versionRule</span><span class="o">);</span>
+<span class="n">edgeInvocation</span><span class="o">.</span><span class="na">init</span><span class="o">(</span><span class="n">serviceName</span><span class="o">,</span> <span class="n">context</span><span class="o">,</span> <span class="n">path</span><span class="o">,</span> <span class="n">httpServerFilters</span><span class="o">);</span>
+<span class="n">edgeInvocation</span><span class="o">.</span><span class="na">edgeInvoke</span><span class="o">();</span>
+</code></pre>
+</div>
 
-<h2 id="定制上报的数据">定制上报的数据</h2>
+<h3 id="加载dispatcher">加载Dispatcher</h3>
+<p>Edge Service使用SPI机制加载用户自定义的VertxHttpDispatcher,我们在resources文件夹下创建META-INF/services文件夹,之后添加org.apache.servicecomb.transport.rest.vertx.VertxHttpDispatcher文件,在文件中,添加写好的Dispatcher即可:</p>
+<div class="language-text highlighter-rouge"><pre class="highlight"><code>{your-package-path}.XXXDispatcher
+</code></pre>
+</div>
 
-<p>通过自定义打点上报的调用链包含两条数据:</p>
+<h3 id="扩展handler可选">扩展Handler(可选)</h3>
+<p>由于Edge Service需要承载统一认证、集中监控等功能,我们推荐扩展Handler的方式实现,在demo-edge中的edge-service中有AuthHandler的示例。</p>
 
-<ul>
-  <li><strong>span name</strong> 默认为当前注释的方法全名。</li>
-  <li><strong>call.path</strong> 默认为当前注释的方法签名。</li>
-</ul>
+<h2 id="参考示例">参考示例</h2>
+<p>我们在Java Chassis源代码的demo/demo-edge中完整展示了如何实现Edge Service并验证它的能力:</p>
+<ol>
+  <li>edge-service微服务:Edge Service,包含AuthHandler;</li>
+  <li>authentication微服务:模拟认证微服务,处理AuthHandler的请求;</li>
+  <li>business-x.x.x微服务:模拟不同版本的业务微服务,Edge Service会将请求转发给它们;</li>
+  <li>consumer:模拟前端(用户)调用Edge Service,包含了指定版本的验证。</li>
+</ol>
 
-<p>例如,上述例子<code class="highlighter-rouge">SlowRepoImp</code>里上报的数据如下:</p>
-
-<table>
-  <thead>
-    <tr>
-      <th style="text-align: left">key</th>
-      <th style="text-align: left">value</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td style="text-align: left">span name</td>
-      <td style="text-align: left">crawl</td>
-    </tr>
-    <tr>
-      <td style="text-align: left">call.path</td>
-      <td style="text-align: left">public abstract java.lang.String io.servicecomb.tests.tracing.SlowRepo.crawl() throws java.lang.InterruptedException</td>
-    </tr>
-  </tbody>
-</table>
-
-<p>如果需要定制上报的数据内容,可以传入自定义的参数:</p>
-
-<div class="language-java highlighter-rouge"><pre class="highlight"><code>  <span class="kd">public</span> <span class="kd">static</span> <span class="kd">class</span> <span class="nc">CustomSpanTask</span> <span class="o">{</span>
-    <span class="nd">@Span</span><span class="o">(</span><span class="n">spanName</span> <span class="o">=</span> <span class="s">"transaction1"</span><span class="o">,</span> <span class="n">callPath</span> <span class="o">=</span> <span class="s">"startA"</span><span class="o">)</span>
-    <span class="kd">public</span> <span class="n">String</span> <span class="nf">invoke</span><span class="o">()</span> <span class="o">{</span>
-      <span class="k">return</span> <span class="s">"invoke the method"</span><span class="o">;</span>
-    <span class="o">}</span>
-  <span class="o">}</span>
-</code></pre>
-</div>
 
         
       </section>
@@ -800,8 +796,8 @@
     <div class="col">
       <ul>
         <p class="header">贡献</p>
-        <li><a href="https://github.com/apache/incubator-servicecomb-website/issues/new?title=Issue with _users/cn/customized-tracing.md">报告本网页问题</a></li>
-        <li><a href="https://github.com/apache/incubator-servicecomb-website/edit/master/_users/cn/customized-tracing.md">在Github上编辑此页</a></li>
+        <li><a href="https://github.com/apache/incubator-servicecomb-website/issues/new?title=Issue with _users/cn/edge-in-1.0.0-m1.md">报告本网页问题</a></li>
+        <li><a href="https://github.com/apache/incubator-servicecomb-website/edit/master/_users/cn/edge-in-1.0.0-m1.md">在Github上编辑此页</a></li>
         <li><a href="/cn/developers/submit-codes/">代码提交指南</a></li>
       </ul>
     </div>
diff --git a/content/cn/users/edging-service/nginx/index.html b/content/cn/users/edging-service/nginx/index.html
index dcc9726..d407093 100644
--- a/content/cn/users/edging-service/nginx/index.html
+++ b/content/cn/users/edging-service/nginx/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/edging-service/zuul/index.html b/content/cn/users/edging-service/zuul/index.html
index 248796f..5858299 100644
--- a/content/cn/users/edging-service/zuul/index.html
+++ b/content/cn/users/edging-service/zuul/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="active">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/index.html b/content/cn/users/index.html
index c5049db..5811677 100644
--- a/content/cn/users/index.html
+++ b/content/cn/users/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/invoke-control/index.html b/content/cn/users/invoke-control/index.html
index 51e5d9f..93ab51b 100644
--- a/content/cn/users/invoke-control/index.html
+++ b/content/cn/users/invoke-control/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/local-develop-test/index.html b/content/cn/users/local-develop-test/index.html
index abb2452..336cd83 100644
--- a/content/cn/users/local-develop-test/index.html
+++ b/content/cn/users/local-develop-test/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/metrics-in-0.5.0/index.html b/content/cn/users/metrics-in-0.5.0/index.html
index 83e95de..39c898c 100644
--- a/content/cn/users/metrics-in-0.5.0/index.html
+++ b/content/cn/users/metrics-in-0.5.0/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/metrics-in-1.0.0-m1/index.html b/content/cn/users/metrics-in-1.0.0-m1/index.html
index c10ab03..930b063 100644
--- a/content/cn/users/metrics-in-1.0.0-m1/index.html
+++ b/content/cn/users/metrics-in-1.0.0-m1/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/metrics-integration-with-prometheus-in-1.0.0-m1/index.html b/content/cn/users/metrics-integration-with-prometheus-in-1.0.0-m1/index.html
index d854609..169833c 100644
--- a/content/cn/users/metrics-integration-with-prometheus-in-1.0.0-m1/index.html
+++ b/content/cn/users/metrics-integration-with-prometheus-in-1.0.0-m1/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/metrics-write-file-extension-and-sample-in-1.0.0-m1/index.html b/content/cn/users/metrics-write-file-extension-and-sample-in-1.0.0-m1/index.html
index 78f8f9c..b31b912 100644
--- a/content/cn/users/metrics-write-file-extension-and-sample-in-1.0.0-m1/index.html
+++ b/content/cn/users/metrics-write-file-extension-and-sample-in-1.0.0-m1/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/run-mode/index.html b/content/cn/users/run-mode/index.html
index e207e93..8fdd519 100644
--- a/content/cn/users/run-mode/index.html
+++ b/content/cn/users/run-mode/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/service-configurations/index.html b/content/cn/users/service-configurations/index.html
index ef4d873..c448207 100644
--- a/content/cn/users/service-configurations/index.html
+++ b/content/cn/users/service-configurations/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/service-contract/index.html b/content/cn/users/service-contract/index.html
index 70e6a1b..5120fef 100644
--- a/content/cn/users/service-contract/index.html
+++ b/content/cn/users/service-contract/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/service-definition/index.html b/content/cn/users/service-definition/index.html
index 62702f5..b6b71e6 100644
--- a/content/cn/users/service-definition/index.html
+++ b/content/cn/users/service-definition/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/service-heartbeat/index.html b/content/cn/users/service-heartbeat/index.html
index 8e0eeab..6989848 100644
--- a/content/cn/users/service-heartbeat/index.html
+++ b/content/cn/users/service-heartbeat/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/service-interface-constraints/index.html b/content/cn/users/service-interface-constraints/index.html
index c1c47a7..e04b262 100644
--- a/content/cn/users/service-interface-constraints/index.html
+++ b/content/cn/users/service-interface-constraints/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/setup-environment/index.html b/content/cn/users/setup-environment/index.html
index 72d1503..6f43e49 100644
--- a/content/cn/users/setup-environment/index.html
+++ b/content/cn/users/setup-environment/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/use-service-contract/index.html b/content/cn/users/use-service-contract/index.html
index e48539c..cfed6fc 100644
--- a/content/cn/users/use-service-contract/index.html
+++ b/content/cn/users/use-service-contract/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/use-servicecomb-in-spring-boot/index.html b/content/cn/users/use-servicecomb-in-spring-boot/index.html
index ceb04b4..4ffa75f 100644
--- a/content/cn/users/use-servicecomb-in-spring-boot/index.html
+++ b/content/cn/users/use-servicecomb-in-spring-boot/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/users/use-tls/index.html b/content/cn/users/use-tls/index.html
index c5cfaf2..6a57a7a 100644
--- a/content/cn/users/use-tls/index.html
+++ b/content/cn/users/use-tls/index.html
@@ -499,6 +499,14 @@
 
             <li><a href="/cn/users/edging-service/zuul/" class="">使用Zuul做边缘服务</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/cn/users/edge-in-1.0.0-m1/" class="">使用内置Edge模块实现边缘服务</a></li>
+          
         </ul>
         
       </li>
diff --git a/content/cn/year-archive/index.html b/content/cn/year-archive/index.html
index bff5f2d..5d272e6 100644
--- a/content/cn/year-archive/index.html
+++ b/content/cn/year-archive/index.html
@@ -400,6 +400,37 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  少于 1 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+          
+          
+          
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
@@ -422,6 +453,37 @@
         
           
           
+          
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  1 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+          
+          
             <h2 id="2017" class="archive__subtitle">2017</h2>
             
           
@@ -1085,6 +1147,16 @@
 <!-- If not equal to previous then it must be unique as sorted -->
 
 
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
 
 
 
@@ -1206,6 +1278,16 @@
 
 
 
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
 
 <!-- group_items -->
 
@@ -1346,6 +1428,22 @@
 
 
 
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
         
           
           <h2 id="jmeter" class="archive__subtitle">jmeter</h2>
@@ -1476,6 +1574,39 @@
           
         
           
+          <h2 id="saga" class="archive__subtitle">saga</h2>
+          
+            
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  少于 1 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+          
+        
+          
           <h2 id="seckill" class="archive__subtitle">seckill</h2>
           
             
@@ -2053,6 +2184,39 @@
 
           
         
+          
+          <h2 id="配置中心" class="archive__subtitle">配置中心</h2>
+          
+            
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  1 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+          
+        
     </div>
 </div>
 
diff --git a/content/docs/autoscale-on-company/index.html b/content/docs/autoscale-on-company/index.html
index f42e3e8..0ef84a7 100644
--- a/content/docs/autoscale-on-company/index.html
+++ b/content/docs/autoscale-on-company/index.html
@@ -652,11 +652,11 @@ Fig 5    HPA Data of The End</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -664,7 +664,7 @@ Fig 5    HPA Data of The End</p>
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -681,11 +681,11 @@ Fig 5    HPA Data of The End</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -693,7 +693,7 @@ Fig 5    HPA Data of The End</p>
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -710,11 +710,11 @@ Fig 5    HPA Data of The End</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -722,7 +722,7 @@ Fig 5    HPA Data of The End</p>
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -739,11 +739,11 @@ Fig 5    HPA Data of The End</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -751,7 +751,7 @@ Fig 5    HPA Data of The End</p>
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/communication-btw-sc-ms/index.html b/content/docs/communication-btw-sc-ms/index.html
index 180d712..33d65dc 100644
--- a/content/docs/communication-btw-sc-ms/index.html
+++ b/content/docs/communication-btw-sc-ms/index.html
@@ -554,11 +554,11 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -566,7 +566,7 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -583,11 +583,11 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -595,7 +595,7 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -612,11 +612,11 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -624,7 +624,7 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -641,11 +641,11 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -653,7 +653,7 @@ When Consumer needs to communicate to Provider then consumer reads endpoints of
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/company-on-kubernetes/index.html b/content/docs/company-on-kubernetes/index.html
index 22c2e45..c9e29ff 100644
--- a/content/docs/company-on-kubernetes/index.html
+++ b/content/docs/company-on-kubernetes/index.html
@@ -649,11 +649,11 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -661,7 +661,7 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -678,11 +678,11 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -690,7 +690,7 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -707,11 +707,11 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -719,7 +719,7 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -736,11 +736,11 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -748,7 +748,7 @@ kubectl get svc company-manager -o yaml | grep nodePort -C 1
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/distributed_saga_1/index.html b/content/docs/distributed_saga_1/index.html
index e8455c3..3765638 100644
--- a/content/docs/distributed_saga_1/index.html
+++ b/content/docs/distributed_saga_1/index.html
@@ -684,11 +684,11 @@ next blog post.</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -696,7 +696,7 @@ next blog post.</p>
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -713,11 +713,11 @@ next blog post.</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -725,7 +725,7 @@ next blog post.</p>
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -742,11 +742,11 @@ next blog post.</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -754,7 +754,7 @@ next blog post.</p>
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -771,11 +771,11 @@ next blog post.</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -783,7 +783,7 @@ next blog post.</p>
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/distributed_saga_2/index.html b/content/docs/distributed_saga_2/index.html
index 926a63a..ab71edc 100644
--- a/content/docs/distributed_saga_2/index.html
+++ b/content/docs/distributed_saga_2/index.html
@@ -630,11 +630,11 @@ there are a few requirements on design of microservices to ensure saga consisten
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -642,7 +642,7 @@ there are a few requirements on design of microservices to ensure saga consisten
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -659,11 +659,11 @@ there are a few requirements on design of microservices to ensure saga consisten
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -671,7 +671,7 @@ there are a few requirements on design of microservices to ensure saga consisten
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -688,11 +688,11 @@ there are a few requirements on design of microservices to ensure saga consisten
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -700,7 +700,7 @@ there are a few requirements on design of microservices to ensure saga consisten
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -717,11 +717,11 @@ there are a few requirements on design of microservices to ensure saga consisten
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -729,7 +729,7 @@ there are a few requirements on design of microservices to ensure saga consisten
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/distributed_saga_3/index.html b/content/docs/distributed_saga_3/index.html
index 6fb16ad..74d6e31 100644
--- a/content/docs/distributed_saga_3/index.html
+++ b/content/docs/distributed_saga_3/index.html
@@ -663,11 +663,11 @@ and allows easier troubleshooting of any problem occurred in transactions.</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -675,7 +675,7 @@ and allows easier troubleshooting of any problem occurred in transactions.</p>
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -692,11 +692,11 @@ and allows easier troubleshooting of any problem occurred in transactions.</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -704,7 +704,7 @@ and allows easier troubleshooting of any problem occurred in transactions.</p>
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -721,11 +721,11 @@ and allows easier troubleshooting of any problem occurred in transactions.</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -733,7 +733,7 @@ and allows easier troubleshooting of any problem occurred in transactions.</p>
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -750,11 +750,11 @@ and allows easier troubleshooting of any problem occurred in transactions.</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -762,7 +762,7 @@ and allows easier troubleshooting of any problem occurred in transactions.</p>
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/go-to-cloud/index.html b/content/docs/go-to-cloud/index.html
index d780dc8..dedbfe3 100644
--- a/content/docs/go-to-cloud/index.html
+++ b/content/docs/go-to-cloud/index.html
@@ -698,11 +698,11 @@ watching microservice 4 successfully,服务注册成功<br />
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -710,7 +710,7 @@ watching microservice 4 successfully,服务注册成功<br />
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -727,11 +727,11 @@ watching microservice 4 successfully,服务注册成功<br />
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -739,7 +739,7 @@ watching microservice 4 successfully,服务注册成功<br />
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -756,11 +756,11 @@ watching microservice 4 successfully,服务注册成功<br />
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -768,7 +768,7 @@ watching microservice 4 successfully,服务注册成功<br />
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -785,11 +785,11 @@ watching microservice 4 successfully,服务注册成功<br />
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -797,7 +797,7 @@ watching microservice 4 successfully,服务注册成功<br />
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/how-to-reform-a-legacy-system/index.html b/content/docs/how-to-reform-a-legacy-system/index.html
index 68ea091..2d66169 100644
--- a/content/docs/how-to-reform-a-legacy-system/index.html
+++ b/content/docs/how-to-reform-a-legacy-system/index.html
@@ -892,11 +892,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -904,7 +904,7 @@
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -921,11 +921,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -933,7 +933,7 @@
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -950,11 +950,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -962,7 +962,7 @@
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -979,11 +979,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -991,7 +991,7 @@
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/howto-upgrade-topzipkin2/index.html b/content/docs/howto-upgrade-topzipkin2/index.html
index 0d16477..42884d1 100644
--- a/content/docs/howto-upgrade-topzipkin2/index.html
+++ b/content/docs/howto-upgrade-topzipkin2/index.html
@@ -671,7 +671,7 @@ handlers/handler-tracing-zipkin/pom.xml
 ">Previous</a>
     
     
-      <a href="/cn/docs/join_the_community/" class="pagination--pager" title="如何加入ServiceComb社区
+      <a href="/cn/docs/config_center_integration/" class="pagination--pager" title="ServiceComb示例讲解微服务配置中心选型与对接
 ">Next</a>
     
   </nav>
@@ -755,11 +755,11 @@ handlers/handler-tracing-zipkin/pom.xml
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -767,7 +767,7 @@ handlers/handler-tracing-zipkin/pom.xml
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -784,11 +784,11 @@ handlers/handler-tracing-zipkin/pom.xml
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -796,7 +796,7 @@ handlers/handler-tracing-zipkin/pom.xml
 
 
 
-  2 minute read
+  less than 1 minute read
 
 </p>
     
@@ -813,11 +813,11 @@ handlers/handler-tracing-zipkin/pom.xml
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -825,7 +825,7 @@ handlers/handler-tracing-zipkin/pom.xml
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -842,11 +842,11 @@ handlers/handler-tracing-zipkin/pom.xml
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-center-ui/" rel="permalink">Service-Center Management UI Console
+        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">An introduction Service-Center Management Console
+    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
diff --git a/content/docs/linuxcon-workshop-demo/index.html b/content/docs/linuxcon-workshop-demo/index.html
index 39b6b7b..f562fe8 100644
--- a/content/docs/linuxcon-workshop-demo/index.html
+++ b/content/docs/linuxcon-workshop-demo/index.html
@@ -1287,11 +1287,11 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -1299,7 +1299,7 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -1316,11 +1316,11 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -1328,7 +1328,7 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -1345,11 +1345,11 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -1357,7 +1357,7 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -1374,11 +1374,11 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -1386,7 +1386,7 @@ DevOps在微服务开发中的实践。希望能对大家有所帮助。</p>
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/seckill-development-journey-part-I/index.html b/content/docs/seckill-development-journey-part-I/index.html
index 9a4951e..fc79726 100644
--- a/content/docs/seckill-development-journey-part-I/index.html
+++ b/content/docs/seckill-development-journey-part-I/index.html
@@ -581,11 +581,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -593,7 +593,7 @@
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -610,11 +610,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -622,7 +622,7 @@
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -639,11 +639,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -651,7 +651,7 @@
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -668,11 +668,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -680,7 +680,7 @@
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/seckill-development-journey-part-II/index.html b/content/docs/seckill-development-journey-part-II/index.html
index 1116c02..71b744b 100644
--- a/content/docs/seckill-development-journey-part-II/index.html
+++ b/content/docs/seckill-development-journey-part-II/index.html
@@ -570,11 +570,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -582,7 +582,7 @@
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -599,11 +599,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -611,7 +611,7 @@
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -628,11 +628,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -640,7 +640,7 @@
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -657,11 +657,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -669,7 +669,7 @@
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/seckill-development-journey-part-III/index.html b/content/docs/seckill-development-journey-part-III/index.html
index 91fa2dc..dfc3148 100644
--- a/content/docs/seckill-development-journey-part-III/index.html
+++ b/content/docs/seckill-development-journey-part-III/index.html
@@ -585,11 +585,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -597,7 +597,7 @@
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -614,11 +614,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -626,7 +626,7 @@
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -643,11 +643,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -655,7 +655,7 @@
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -672,11 +672,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -684,7 +684,7 @@
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/service-center-ui/index.html b/content/docs/service-center-ui/index.html
index 093cb89..616a09e 100644
--- a/content/docs/service-center-ui/index.html
+++ b/content/docs/service-center-ui/index.html
@@ -569,11 +569,11 @@ can also download the html client for their Schemas.</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -581,7 +581,7 @@ can also download the html client for their Schemas.</p>
 
 
 
-  少于 1 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -598,11 +598,11 @@ can also download the html client for their Schemas.</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -610,7 +610,7 @@ can also download the html client for their Schemas.</p>
 
 
 
-  4 分钟 阅读
+  少于 1 分钟 阅读
 
 </p>
     
@@ -627,11 +627,11 @@ can also download the html client for their Schemas.</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -639,7 +639,7 @@ can also download the html client for their Schemas.</p>
 
 
 
-  2 分钟 阅读
+  1 分钟 阅读
 
 </p>
     
@@ -656,11 +656,11 @@ can also download the html client for their Schemas.</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -668,7 +668,7 @@ can also download the html client for their Schemas.</p>
 
 
 
-  少于 1 分钟 阅读
+  4 分钟 阅读
 
 </p>
     
diff --git a/content/docs/service-registry-refactor-proposal/index.html b/content/docs/service-registry-refactor-proposal/index.html
index 7da9faf..e641723 100644
--- a/content/docs/service-registry-refactor-proposal/index.html
+++ b/content/docs/service-registry-refactor-proposal/index.html
@@ -569,11 +569,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -581,7 +581,7 @@
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -598,11 +598,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -610,7 +610,7 @@
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -627,11 +627,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -639,7 +639,7 @@
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -656,11 +656,11 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-center-ui/" rel="permalink">Service-Center Management UI Console
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">An introduction Service-Center Management Console
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -668,7 +668,7 @@
 
 
 
-  2 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/stress-test-on-company-with-jmeter-in-k8s/index.html b/content/docs/stress-test-on-company-with-jmeter-in-k8s/index.html
index 2253e20..4ce7a6f 100644
--- a/content/docs/stress-test-on-company-with-jmeter-in-k8s/index.html
+++ b/content/docs/stress-test-on-company-with-jmeter-in-k8s/index.html
@@ -679,11 +679,11 @@ fig-6 Memory Usage of different services</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -691,7 +691,7 @@ fig-6 Memory Usage of different services</p>
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -708,11 +708,11 @@ fig-6 Memory Usage of different services</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -720,7 +720,7 @@ fig-6 Memory Usage of different services</p>
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -737,11 +737,11 @@ fig-6 Memory Usage of different services</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -749,7 +749,7 @@ fig-6 Memory Usage of different services</p>
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -766,11 +766,11 @@ fig-6 Memory Usage of different services</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -778,7 +778,7 @@ fig-6 Memory Usage of different services</p>
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/docs/tracing-with-servicecomb/index.html b/content/docs/tracing-with-servicecomb/index.html
index e1697ce..ad547fa 100644
--- a/content/docs/tracing-with-servicecomb/index.html
+++ b/content/docs/tracing-with-servicecomb/index.html
@@ -640,11 +640,11 @@ analyzing timing data to troubleshoot network latencies among our microservices
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
+        <a href="/cn/docs/saga_pack_design/" rel="permalink">ServiceComb数据一致性解决方案Saga演进介绍
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
+    <p class="archive__item-excerpt" itemprop="description">Saga演进介绍
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -652,7 +652,7 @@ analyzing timing data to troubleshoot network latencies among our microservices
 
 
 
-  less than 1 minute read
+  1 minute read
 
 </p>
     
@@ -669,11 +669,11 @@ analyzing timing data to troubleshoot network latencies among our microservices
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
+        <a href="/cn/docs/join_the_community/" rel="permalink">如何加入ServiceComb社区
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
+    <p class="archive__item-excerpt" itemprop="description">如何加入ServiceComb社区
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -681,7 +681,7 @@ analyzing timing data to troubleshoot network latencies among our microservices
 
 
 
-  4 minute read
+  less than 1 minute read
 
 </p>
     
@@ -698,11 +698,11 @@ analyzing timing data to troubleshoot network latencies among our microservices
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/service-registry-refactor-proposal/" rel="permalink">Proposal for refactoring service registry module in Java Chassis
+        <a href="/cn/docs/config_center_integration/" rel="permalink">ServiceComb示例讲解微服务配置中心选型与对接
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">Analysis of service registry and propose a new architecture for it
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb对接配置中心
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -710,7 +710,7 @@ analyzing timing data to troubleshoot network latencies among our microservices
 
 
 
-  2 minute read
+  1 minute read
 
 </p>
     
@@ -727,11 +727,11 @@ analyzing timing data to troubleshoot network latencies among our microservices
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你刷任务 - ServiceComb JIRA入门指南
+        <a href="/docs/howto-upgrade-topzipkin2/" rel="permalink">Howto Upgrade to Zipkin2
 </a>
       
     </h2>
-    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRA入门指南
+    <p class="archive__item-excerpt" itemprop="description">Changes between v1 and v2 of zipkin and how Java Chassis upgraded to zipkin2
 </p>
     
       <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
@@ -739,7 +739,7 @@ analyzing timing data to troubleshoot network latencies among our microservices
 
 
 
-  less than 1 minute read
+  4 minute read
 
 </p>
     
diff --git a/content/feed.xml b/content/feed.xml
index 9902756..d9d80a3 100644
--- a/content/feed.xml
+++ b/content/feed.xml
@@ -1,4 +1,167 @@
-<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.4.3">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2018-04-04T10:50:46+08:00</updated><id>/</id><title type="html">Apache ServiceComb (incubating)</title><subtitle>The homepage of ServiceComb</subtitle><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt; [...]
+<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.4.3">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2018-04-04T10:56:33+08:00</updated><id>/</id><title type="html">Apache ServiceComb (incubating)</title><subtitle>The homepage of ServiceComb</subtitle><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt; [...]
+
+&lt;ul&gt;
+  &lt;li&gt;&lt;strong&gt;嵌套调用&lt;/strong&gt;。如网上购物时,会依次经过下单、支付服务和第三方支付这几个子事务,其中,下单依赖于支付服务的返回状态,而支付服务也包含了多种可选的支付方式,并依赖于具体支付方式返回的结果。通过Saga,可以清晰地看到一个完整事务中各个服务之间的关系,在异常时也能快速定位出现问题的子事务。&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;高并发&lt;/strong&gt;。如秒杀场景下,在成功扣除库存和完成支付后方可认为秒杀成功,若成功扣除库存但支付失败则自动进行补偿(即恢复库存)。鉴于Saga只有提交和补偿两种状态,成功场景下只需对每个子事务进行一次调用即可,因此可以在高并发下保持高性能。&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;调用时间长&lt;/strong&gt;。如线上购买电影票,选好座位后一般会有15分钟的支付时间。Saga仅在子事务的提交阶段对资源进行短暂的锁定,且通过超时机制确保事务超时后能自动补偿,即在规定时间内没有支付成功的话就自动释放锁定的座位,极大地简化了业务出现异常时的处理逻辑。&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2 id=&quot;saga新版本演进&quot;&gt;Saga新版本演进&lt;/h2&gt;
+
+&lt;p&gt;新年新气象,Apache ServiceComb(incubating) Saga&lt;a href=&quot;https://github.com/apache/incubator-servicecomb-saga&quot;&gt;[4]&lt;/a&gt;(以下简称Saga)进行了演进。相对于上一版&lt;a href=&quot;http://blog.csdn.net/fl63zv9zou86950w/article/details/78393439&quot;&gt;[2]&lt;/a&gt;,新演进的设计主要有以下优势:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;&lt;strong&gt;极大提升易用性&lt;/strong&gt;。开发者只需使用2-3个注解(即启用事务服务:EnableOmega、全局事务标记:SagaStart和子事务标记:Compensable)。&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;更方便扩展&lt;/strong&gt;。对微服务框架的支持更友好。&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;数据一致性与业务逻辑解耦&lt;/strong&gt;。在演进后的设计中,通过服务侧omega的引入,saga协调器的职责更为单一(只需负责协调事务的完整性),与具体业务无关,因此,开发人员可以聚焦在具体业务的开发。&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;Saga演进后的架构,如下图所示,主要包含两个组件,即alpha和omega,其中:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;alpha充当协调者的角色,主要负责对事务的事件进行持久化存储以及协调子事务的状态,使其最终得以与全局事务的状态保持一致,即保证事务中的子事务要么全执行,要么全不执行。&lt;/li&gt;
+  &lt;li&gt;omega是微服务中内嵌的一个agent,负责对网络请求进行拦截并向alpha上报事务事件,并在异常情况下根据alpha下发的指令执行相应的补偿或重试操作。&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/pack/pack.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h2 id=&quot;omega内部运行机制&quot;&gt;omega内部运行机制&lt;/h2&gt;
+
+&lt;p&gt;omega是微服务中内嵌的一个agent,负责向alpha上报事务状态并与其它omega直接传递事务上下文信息。其中,每个服务的事务上下文包括:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;全局事务id(Global Tx Id):用于唯一标识全局事务,一般在全局事务入口生成,并在整个事务过程中传递。&lt;/li&gt;
+  &lt;li&gt;本地事务id(Local Tx Id):用于唯一标识本地事务,一般由本地事务生成。&lt;/li&gt;
+  &lt;li&gt;父事务id(Parent Tx Id):用于构建子事务间的关系,可由请求上下文中构建。&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;如下图所示,分布式事务与用于分布式调用链追踪的zipkin&lt;a href=&quot;https://github.com/openzipkin/zipkin&quot;&gt;[5]&lt;/a&gt;的处理流程很类似,在服务提供方,omega会将请求拦截并从中提取请求信息中的全局事务id作为其自身的全局事务id(即Saga事件id),并将请求中的本地事务id作为其父事务id,且使用新生成的id作为本地事务id;在服务消费方,omega会将请求拦截并往其中添加当前的全局事务id和本地事务id。通过服务提供方和服务消费方的这种协作处理,子事务能连接起来形成一个完整的全局事务。&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/pack/id_flow.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;omega在预处理阶段会先向alpha发送事务开始的事件,在后处理阶段会再向alpha发送事务结束的事件。alpha在收到事件后会进行持久化的存储。因此,每个成功的子事务都有一一对应的开始及结束事件。&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/pack/omega_internal.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;在omega启动时会向alpha注册,使得异常或者超时场景下,alpha能通过回调向omega发送重试或补偿的命令和相应的调用参数,从而确保全局事务的一致性。&lt;/p&gt;
+
+&lt;h2 id=&quot;具体处理流程&quot;&gt;具体处理流程&lt;/h2&gt;
+
+&lt;h3 id=&quot;成功场景&quot;&gt;成功场景&lt;/h3&gt;
+
+&lt;p&gt;全局事务开始前omega会先向alpha发送全局事务开始的事件,并在所有子事务完成时向alpha发送全局事务结束的事件。而每个子事务在执行前也会向alpha发送事务开始的事件,在成功执行后,会向alpha发送事务结束的事件。子事务间通过全局事务id连接在一起,但也因本地事务id而有所区分。因此,在成功场景下,每个开始的事件都会有对应的结束事件。&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/pack/successful_scenario.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h3 id=&quot;异常场景&quot;&gt;异常场景&lt;/h3&gt;
+
+&lt;p&gt;在子事务执行期间抛出异常时,omega会向alpha上报aborted事件,然后alpha会向该全局事务的其它已完成的子事务发送补偿指令,确保最终同一全局事务下的所有子事务要么都成功,要么都回滚。由于事务中没有明确指定全局事务中的参与者,因此,alpha的扫描器会定期查询事件表并找出已完成所有补偿子事务的全局事务,然后对这些全局事务添加全局事务结束事件以保证事务的完整性。&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/pack/exception_scenario.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h3 id=&quot;超时场景&quot;&gt;超时场景&lt;/h3&gt;
+
+&lt;p&gt;alpha的扫描器会定期扫描正在处理的事件状态,若发现事件超时,则会记录相应的aborted事件,然后alpha会向该全局事务的其它已完成的子事务发送补偿指令来恢复至事务开始前的状态。&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/pack/timeout_scenario.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h2 id=&quot;如何使用&quot;&gt;如何使用?&lt;/h2&gt;
+
+&lt;p&gt;Saga的使用主要涵盖两方面,alpha的启动及omega的使用。&lt;/p&gt;
+
+&lt;h3 id=&quot;alpha的启动&quot;&gt;alpha的启动&lt;/h3&gt;
+
+&lt;p&gt;alpha启动前需要先运行数据库PostgreSQL:&lt;/p&gt;
+
+&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker run -d -e &lt;span class=&quot;s2&quot;&gt;&quot;POSTGRES_DB=saga&quot;&lt;/span&gt; -e &lt;span class=&quot;s2&quot;&gt;&quot;POSTGRES_USER=saga&quot;&lt;/span&gt; -e &lt;span class=&quot;s2&quot;&gt;&quot;POSTGRES_PASSWORD=password&quot;&lt;/span&gt; -p 5432:5432 postgres
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;在确保数据库正常启动后,即可运行alpha:&lt;/p&gt;
+
+&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker run -d -p 8090:8090 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
+  -e &lt;span class=&quot;s2&quot;&gt;&quot;JAVA_OPTS=-Dspring.profiles.active=prd&quot;&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
+  -e &lt;span class=&quot;s2&quot;&gt;&quot;spring.datasource.url=jdbc:postgresql://{docker.host.address}:5432/saga?useSSL=false&quot;&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
+  alpha-server:0.1.0
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;h3 id=&quot;omega的使用&quot;&gt;omega的使用&lt;/h3&gt;
+
+&lt;p&gt;omega的使用很简单,以一个简化的转账业务为例,同一笔转账要么转入和转出都成功,要么都失败。在这样一个业务中引入Saga,只需简单几步即可:&lt;/p&gt;
+
+&lt;ol&gt;
+  &lt;li&gt;引入依赖
+    &lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
+  &lt;span class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.servicecomb.saga&lt;span class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
+  &lt;span class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;omega-spring-starter&lt;span class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
+  &lt;span class=&quot;nt&quot;&gt;&amp;lt;version&amp;gt;&lt;/span&gt;0.1.0&lt;span class=&quot;nt&quot;&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
+&lt;span class=&quot;nt&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
+&lt;span class=&quot;nt&quot;&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
+  &lt;span class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.servicecomb.saga&lt;span class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
+  &lt;span class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;omega-transport-resttemplate&lt;span class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
+  &lt;span class=&quot;nt&quot;&gt;&amp;lt;version&amp;gt;&lt;/span&gt;0.1.0&lt;span class=&quot;nt&quot;&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
+&lt;span class=&quot;nt&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;
+    &lt;/div&gt;
+  &lt;/li&gt;
+  &lt;li&gt;添加Saga的注解及相应的补偿方法
+2.1 在应用入口添加 &lt;code class=&quot;highlighter-rouge&quot;&gt;@EnableOmega&lt;/code&gt; 的注解来初始化omega的配置并与alpha建立连接。
+    &lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; &lt;span class=&quot;nd&quot;&gt;@SpringBootApplication&lt;/span&gt;
+ &lt;span class=&quot;nd&quot;&gt;@EnableOmega&lt;/span&gt;
+ &lt;span class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Application&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
+   &lt;span class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[]&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;args&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
+     &lt;span class=&quot;n&quot;&gt;SpringApplication&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Application&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;args&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);& [...]
+   &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
+ &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;
+    &lt;/div&gt;
+    &lt;p&gt;2.2 在全局事务的起点添加 &lt;code class=&quot;highlighter-rouge&quot;&gt;@SagaStart&lt;/code&gt; 的注解。&lt;/p&gt;
+    &lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; &lt;span class=&quot;nd&quot;&gt;@SagaStart&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;timeout&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
+ &lt;span class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;boolean&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;transferMoney&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;o&quot;&gt; [...]
+   &lt;span class=&quot;n&quot;&gt;transferOut&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
+   &lt;span class=&quot;n&quot;&gt;transferIn&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
+ &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;
+    &lt;/div&gt;
+    &lt;p&gt;2.3 在子事务处添加 &lt;code class=&quot;highlighter-rouge&quot;&gt;@Compensable&lt;/code&gt; 的注解并指明其对应的补偿方法。其中,补偿方法的形参列表需与子事务方法的形参列表保持一致。&lt;/p&gt;
+    &lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; &lt;span class=&quot;nd&quot;&gt;@Compensable&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;timeout&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;compensationMethod&lt;/span&gt;&lt;span class=& [...]
+ &lt;span class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;boolean&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;transferOut&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;o&quot;&gt; [...]
+   &lt;span class=&quot;n&quot;&gt;repo&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;reduceBalanceByUsername&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
+ &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
+    
+ &lt;span class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;boolean&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;cancel&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt; [...]
+   &lt;span class=&quot;n&quot;&gt;repo&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;addBalanceByUsername&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
+ &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;
+    &lt;/div&gt;
+    &lt;p&gt;2.4 对转入服务重复第2.3步即可。&lt;/p&gt;
+
+    &lt;p&gt;2.5 在每个服务的application.yaml中添加配置项,指明服务信息和alpha的地址信息:&lt;/p&gt;
+    &lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; &lt;span class=&quot;s&quot;&gt;spring&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
+   &lt;span class=&quot;s&quot;&gt;application&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
+     &lt;span class=&quot;s&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;application.name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;}&lt;/span&gt;
+ &lt;span class=&quot;s&quot;&gt;alpha&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
+   &lt;span class=&quot;s&quot;&gt;cluster&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
+     &lt;span class=&quot;s&quot;&gt;address&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;alpha.cluster.addresses&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;}&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;
+    &lt;/div&gt;
+  &lt;/li&gt;
+&lt;/ol&gt;
+
+&lt;p&gt;目前Saga的实现还存在着很多有意思且有挑战性的课题,如alpha的协调调度实现、幂等的实现及自动补偿的实现等,欢迎有志之士与我们携手一起解决数据一致性的难题,共同为完善微服务生态贡献自己的力量。&lt;/p&gt;
+
+&lt;h2 id=&quot;参考文献&quot;&gt;参考文献&lt;/h2&gt;
+
+&lt;p&gt;[1] Sagas, Hector Garcia-Molina &amp;amp; Kenneth Salem, &lt;a href=&quot;https://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf&quot;&gt;https://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[2] ServiceComb中的数据最终一致性方案,殷湘,&lt;a href=&quot;http://blog.csdn.net/fl63zv9zou86950w/article/details/78393439&quot;&gt;http://blog.csdn.net/fl63zv9zou86950w/article/details/78393439&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[3] ACID, Wikipedia, &lt;a href=&quot;https://en.wikipedia.org/wiki/ACID&quot;&gt;https://en.wikipedia.org/wiki/ACID&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[4] Apache ServiceComb(incubating) Saga, Apache, &lt;a href=&quot;https://github.com/apache/incubator-servicecomb-saga&quot;&gt;https://github.com/apache/incubator-servicecomb-saga&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[5] zipkin, zipkin, &lt;a href=&quot;https://github.com/openzipkin/zipkin&quot;&gt;https://github.com/openzipkin/zipkin&lt;/a&gt;&lt;/p&gt;</content><author><name>Eric Lee</name><email>eric.lee.ltk@gmail.com</email><uri>https://eric-lee-ltk.github.io</uri></author><category term="saga" /><summary type="html">Saga演进介绍</summary></entry><entry xml:lang="cn"><title type="html">如何加入ServiceComb社区</title><link href="/cn/docs/join_the_community/" rel="alternate" type="text/html" title=" [...]
 
 &lt;h3 id=&quot;step-1-订阅并关注servicecomb社区动态&quot;&gt;Step 1 订阅并关注ServiceComb社区动态&lt;/h3&gt;
 
@@ -103,7 +266,276 @@
 
 &lt;p&gt;遇到其他本文章未解决的问题(如用户业务准备进行微服务技术选型或ServiceComb的概念性问题等)时,建议直接到微信群或者gitter里进行咨询并寻求帮助。&lt;/p&gt;
 
-&lt;p&gt;社区鼓励多劳多得和技术沉淀,坚持贡献社区可以收获来自社区的礼品激励惊喜,坚持长期使用和参与社区项目的伙伴,将可能被选举成 Apache committer 或者取得更高的荣誉,希望本文能对热衷开源及ServiceComb社区的伙伴们有所帮助,也欢迎积极参加ServiceComb的线上及线下活动。&lt;/p&gt;</content><author><name>Li Bo</name><email>libo75@huawei.com</email></author><category term="加入社区" /><summary type="html">如何加入ServiceComb社区</summary></entry><entry xml:lang="en"><title type="html">Howto Upgrade to Zipkin2</title><link href="/docs/howto-upgrade-topzipkin2/" rel="alternate" type="text/html" title="Howto Upgra [...]
+&lt;p&gt;社区鼓励多劳多得和技术沉淀,坚持贡献社区可以收获来自社区的礼品激励惊喜,坚持长期使用和参与社区项目的伙伴,将可能被选举成 Apache committer 或者取得更高的荣誉,希望本文能对热衷开源及ServiceComb社区的伙伴们有所帮助,也欢迎积极参加ServiceComb的线上及线下活动。&lt;/p&gt;</content><author><name>Li Bo</name><email>libo75@huawei.com</email></author><category term="加入社区" /><summary type="html">如何加入ServiceComb社区</summary></entry><entry xml:lang="cn"><title type="html">ServiceComb示例讲解微服务配置中心选型与对接</title><link href="/cn/docs/config_center_integration/" rel="alternate" type="text/html" title="Serv [...]
+
+&lt;p&gt;项目代码中经常会用到各种配置项,比如下面的代码中是从系统环境变量中获取&lt;code class=&quot;highlighter-rouge&quot;&gt;prop&lt;/code&gt; :&lt;/p&gt;
+
+&lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;System&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;getProperty&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt [...]
+&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;DEFAULT_VALUE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;
+&lt;span class=&quot;k&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
+    &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Integer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;parseInt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
+&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;NumberFormatException&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
+    &lt;span class=&quot;c1&quot;&gt;// handle format issues&lt;/span&gt;
+&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;myMethod&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;类似使用环境变量或者&lt;code class=&quot;highlighter-rouge&quot;&gt;properties&lt;/code&gt;和&lt;code class=&quot;highlighter-rouge&quot;&gt;xml&lt;/code&gt;等文件方式传入配置进而控制应用表现的方法广泛应用于开发过程中,这样做可以将外部配置与业务代码解耦,若有变动只需修改配置参数而不需要重新编译构建项目。但是这种将配置和代码放在一起的方式可能会泄露隐私信息(比如密码),因为代码可能会公开,出于安全的考虑,配置和代码分离管理的方式开始广泛使用,常见的方法比如将配置放在CI服务器上通过打包脚本打入应用包中,或者直接放到运行应用的服务器的特定目录下,或者存储到数据库中。这种方式在传统的单体应用中简单有效,但也带来一些新的挑战:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;配置变化频繁时,需要频繁的打包部署应用&lt;/li&gt;
+  &lt;li&gt;不同的环境下配置项不同需要分开管理(比如测试环境和生产环境)&lt;/li&gt;
+  &lt;li&gt;配置项中的隐私信息虽然避免了随代码公开而泄露,但是还是会打包到应用包中&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;此外,面对微服务爆发式增长的应用数量和服务器数量带来新的困难&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;
+    &lt;p&gt;复杂的业务对应大量的配置项&lt;/p&gt;
+  &lt;/li&gt;
+  &lt;li&gt;配置项在不同服务中可能出现冲突&lt;/li&gt;
+  &lt;li&gt;对集群部署的应用配置进行修改时需要一次修改每个机器上的应用配置&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;这种背景下,中心化的配置服务即配置中心应运而生,简单来说,配置中心就是一种统一管理各种应用配置的基础服务组件,一个合格的配置中心需要满足:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;配置项容易读取和修改&lt;/li&gt;
+  &lt;li&gt;添加新配置要简单直接&lt;/li&gt;
+  &lt;li&gt;支持对配置的修改的检视以把控风险&lt;/li&gt;
+  &lt;li&gt;可以查看配置修改的历史记录&lt;/li&gt;
+  &lt;li&gt;不同部署环境支持隔离&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;开源社区目前主流的配置中心有spring-cloud-config, ctrip apollo, disconf 等,下表是对其功能特性、技术路线、可用性和易用性等发面的比较[1]供参考。&lt;/p&gt;
+
+&lt;table&gt;
+  &lt;thead&gt;
+    &lt;tr&gt;
+      &lt;th&gt; &lt;/th&gt;
+      &lt;th style=&quot;text-align: left&quot;&gt;spring-cloud-config&lt;/th&gt;
+      &lt;th style=&quot;text-align: left&quot;&gt;ctrip apollo&lt;/th&gt;
+      &lt;th style=&quot;text-align: left&quot;&gt;disconf&lt;/th&gt;
+    &lt;/tr&gt;
+  &lt;/thead&gt;
+  &lt;tbody&gt;
+    &lt;tr&gt;
+      &lt;td&gt;静态配置管理&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;基于file&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;动态配置管理&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;统一管理&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;无,需要github&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;多维度管理&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;无,需要github&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;本地配置缓存&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;无&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;配置生效时间&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;重启或手动refresh生效&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;实时&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;实时&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;配置更新推送&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;手动触发&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;配置定时拉取&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;无&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;依赖时事件驱动&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;授权、审核、审计&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;无,需要github&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;无&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;配置版本管理&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;git做版本管理&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;界面上提供发布历史和回滚按钮&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;操作记录存数据库,无查询接口&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;实例配置监控&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;需要结合springadmin&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;灰度发布&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;不支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;不支持部分更新&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;告警通知&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;不支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持,邮件方式告警&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持,邮件方式告警&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;多数据中心部署&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;支持&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;配置界面&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;无,通过git操作&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;统一界面&lt;/td&gt;
+      &lt;td style=&quot;text-align: left&quot;&gt;统一界面&lt;/td&gt;
+    &lt;/tr&gt;
+  &lt;/tbody&gt;
+&lt;/table&gt;
+
+&lt;p&gt;综合比较后,ServiceComb选择了Apollo[2]作为配置中心进行对接。Apollo是携程框架部门研发并贡献到开源社区的分布式配置中心,活跃贡献者近百人。最新版本的ServiceComb Java Chassis已实现支持Apollo[1],用户可以使用该配置中心结合Chassis中集成的Archaius实现在不需要重新启动或重新部署应用的前提下进行配置项的集中管理和动态修改。基于ServiceComb优秀的插件化设计,用户可以非常简单的对接到其他开源或自研的配置中心。&lt;/p&gt;
+
+&lt;h3 id=&quot;使用简介&quot;&gt;使用简介&lt;/h3&gt;
+
+&lt;h5 id=&quot;启动apollo服务&quot;&gt;启动Apollo服务&lt;/h5&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;启动Apollo服务&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;Apollo服务可以通过docker或二进制启动,方法参考官网文档[3],推荐使用docker启动。&lt;/p&gt;
+
+&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git clone https://github.com/lijasonvip/apollo-image-for-servicecomb.git
+&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;apollo-image-for-servicecomb &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; docker-compose up
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;出现&lt;code class=&quot;highlighter-rouge&quot;&gt;apollo-quick-start | Portal started. You can visit http://localhost:8070 now!&lt;/code&gt;后表示Apollo已经启动成功,浏览器访问&lt;code class=&quot;highlighter-rouge&quot;&gt;http://localhost:8070&lt;/code&gt;即可访问&lt;code class=&quot;highlighter-rouge&quot;&gt;portal&lt;/code&gt;服务,默认登录账号为&lt;code class=&quot;highlighter-rouge&quot;&gt;apollo/admin&lt;/code&gt;。&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;创建应用&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;登录后点击创建项目,填入应用名称,其他选默认即可,创建应用后需要进入应用点击发布才能生效。&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/config/create-project.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;生成TOKEN&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;应用发布后我们需要获取一个TOKEN,在&lt;code class=&quot;highlighter-rouge&quot;&gt;http://localhost:8070/open/manage.html&lt;/code&gt;页面填入刚才创建的应用ID和应用名称并选择项目和部门信息后点击创建即可生成一个TOKEN,保存此TOKEN并配置到Chassis应用的配置文件中。&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/config/token.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h5 id=&quot;引入依赖&quot;&gt;引入依赖&lt;/h5&gt;
+
+&lt;p&gt;在Chassis应用的pom文件中引入依赖&lt;code class=&quot;highlighter-rouge&quot;&gt;config-apollo&lt;/code&gt;:&lt;/p&gt;
+
+&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; &lt;span class=&quot;nt&quot;&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
+       &lt;span class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.servicecomb&lt;span class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
+       &lt;span class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;config-apollo&lt;span class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
+ &lt;span class=&quot;nt&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;h5 id=&quot;添加配置&quot;&gt;添加配置&lt;/h5&gt;
+
+&lt;p&gt;在Chassis应用的配置文件&lt;code class=&quot;highlighter-rouge&quot;&gt;microservice.yaml&lt;/code&gt;中增加以下配置:&lt;/p&gt;
+
+&lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;   &lt;span class=&quot;s&quot;&gt;apollo&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
+     &lt;span class=&quot;s&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
+       &lt;span class=&quot;s&quot;&gt;serverUri&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;http://127.0.0.1:8070&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;		&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;#Apollo portal服务地址&lt;/span&gt;
+       &lt;span class=&quot;s&quot;&gt;serviceName&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;SampleApp&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;				&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;#创建应用时的AppID&lt;/span&gt;
+       &lt;span class=&quot;s&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;DEV&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;								&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;#env默认是DEV&lt;/span&gt;
+       &lt;span class=&quot;s&quot;&gt;clusters&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;					&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;#cluster默认default&lt;/span&gt;
+       &lt;span class=&quot;s&quot;&gt;namespace&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;application&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;				&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;#namespace默认application&lt;/span&gt;
+       &lt;span class=&quot;s&quot;&gt;token&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;de3c5b2e6d8535b96&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;				&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;#第一步中生成的TOKEN&lt;/span&gt;
+       &lt;span class=&quot;s&quot;&gt;refreshInterval&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;					&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;#自动拉取配置的时间间隔&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;至此,通过简单的4步应用已经成功的对接到了Apollo配置中心,启动应用后可以在Apollo页面通过对配置项的新增、更新、回滚等操作进行服务治理啦!Demo参考[4]。&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/assets/images/config/configuration.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h3 id=&quot;对接配置中心&quot;&gt;对接配置中心&lt;/h3&gt;
+
+&lt;p&gt;Chassis动态配置基于Netflix的Archaius实现[5],Archaius扩展数据源方法参考文档[6]和demo[7],Chassis按照[6]扩展了&lt;code class=&quot;highlighter-rouge&quot;&gt;PolledConfigurationSource&lt;/code&gt; 和 &lt;code class=&quot;highlighter-rouge&quot;&gt;AbstractPollingScheduler&lt;/code&gt;,启动的时候用SPI机制找到Source接口的实现类。&lt;/p&gt;
+
+&lt;p&gt;对接到一个新的配置中心只要扩展实现&lt;code class=&quot;highlighter-rouge&quot;&gt;ConfigCenterConfigurationSource&lt;/code&gt;接口,实现&lt;code class=&quot;highlighter-rouge&quot;&gt;init&lt;/code&gt;方法,在&lt;code class=&quot;highlighter-rouge&quot;&gt;init&lt;/code&gt;方法中实现连接配置中心,刷新配置项的逻辑即可。具体代码请参考[8]。&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;
+    &lt;p&gt;设计配置项&lt;/p&gt;
+
+    &lt;p&gt;对接到新的配置中心可以设计新的配置参数,定义新的工具类获取这些参数,并指定默认值,参考&lt;code class=&quot;highlighter-rouge&quot;&gt;ApolloConfig&lt;/code&gt;类对新增&lt;code class=&quot;highlighter-rouge&quot;&gt;apollo.config.serverUri&lt;/code&gt;等参数的处理。&lt;/p&gt;
+  &lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;扩展Source接口&lt;/p&gt;
+
+    &lt;p&gt;init函数实现固定时间间隔或实时获取配置中心的配置项逻辑。&lt;code class=&quot;highlighter-rouge&quot;&gt;ApolloClient&lt;/code&gt;中&lt;code class=&quot;highlighter-rouge&quot;&gt;refreshApolloConfig&lt;/code&gt;函数启动了一个定时执行的线程刷新配置项:&lt;/p&gt;
+
+    &lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;  &lt;span class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;refreshApolloConfig&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
+    &lt;span class=&quot;n&quot;&gt;EXECUTOR&lt;/span&gt;
+        &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;scheduleWithFixedDelay&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ConfigRefresh&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;serviceUri&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;),&lt;/span&gt; 
+                                &lt;span class=&quot;n&quot;&gt;firstRefreshInterval&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; 
+                                &lt;span class=&quot;n&quot;&gt;refreshInterval&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; 
+                                &lt;span class=&quot;n&quot;&gt;TimeUnit&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;SECONDS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;
+    &lt;/div&gt;
+
+    &lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;ConfigRefresh&lt;/code&gt;线程的&lt;code class=&quot;highlighter-rouge&quot;&gt;run&lt;/code&gt;中会从Apollo配置中心获取最新配置项并和之前的配置项对比分析出新增、修改和删除的配置参数,然后去执行对应的更新操作。对配置项的修改更新都是基于Archaius的&lt;code class=&quot;highlighter-rouge&quot;&gt;WatchedUpdateListener&lt;/code&gt; 进而实现应用内参数的动态更新。&lt;/p&gt;
+  &lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h3 id=&quot;加入servicecomb社区&quot;&gt;加入ServiceComb社区&lt;/h3&gt;
+
+&lt;p&gt;ServiceComb目前在Apache基金会孵化,诚挚的欢迎开发者和用户一起参与社区讨论和贡献,加入社区的方法有订阅邮件列表,关注微信公众号,加入社区微信群等,详细方法请参考[9]。&lt;/p&gt;
+
+&lt;h3 id=&quot;参考资料&quot;&gt;参考资料&lt;/h3&gt;
+
+&lt;p&gt;[0] ServiceComb 项目地址 &lt;a href=&quot;https://github.com/apache/incubator-servicecomb-java-chassis&quot;&gt;https://github.com/apache/incubator-servicecomb-java-chassis&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[1] 开源配置中心比较 &lt;a href=&quot;https://github.com/ctripcorp/apollo/wiki/FAQ&quot;&gt;https://github.com/ctripcorp/apollo/wiki/FAQ&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[2] ctrip apollo &lt;a href=&quot;https://github.com/ctripcorp/apollo/&quot;&gt;https://github.com/ctripcorp/apollo/&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[3] Apollo启动 &lt;a href=&quot;https://github.com/ctripcorp/apollo/wiki/Quick-Start&quot;&gt;https://github.com/ctripcorp/apollo/wiki/Quick-Start&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[4] Chassis应用使用Apollo配置中心Demo &lt;a href=&quot;https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/samples/config-apollo-sample&quot;&gt;https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/samples/config-apollo-sample&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[5] Netflix Archaius &lt;a href=&quot;https://github.com/Netflix/archaius/&quot;&gt;https://github.com/Netflix/archaius/&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[6] Archaius 扩展数据源 &lt;a href=&quot;https://github.com/Netflix/archaius/wiki/Users-Guide&quot;&gt;https://github.com/Netflix/archaius/wiki/Users-Guide&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[7] Archaius 对接Redis Demo &lt;a href=&quot;https://github.com/cnwrinc/archaius-redis&quot;&gt;https://github.com/cnwrinc/archaius-redis&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[8] Chassis对接配置中心代码 &lt;a href=&quot;https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/dynamic-config/config-apollo&quot;&gt;https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/dynamic-config/config-apollo&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;[9] 加入ServiceComb社区 &lt;a href=&quot;https://servicecomb.incubator.apache.org/cn/docs/join_the_community&quot;&gt;https://servicecomb.incubator.apache.org/cn/docs/join_the_community&lt;/a&gt;&lt;/p&gt;</content><author><name>Li Bo</name><email>libo75@huawei.com</email></author><category term="配置中心" /><summary type="html">ServiceComb对接配置中心</summary></entry><entry xml:lang="en"><title type="html">Howto Upgrade to Zipkin2</title><link href="/docs/howto-upgrade-topzipkin2/" rel="alt [...]
 
 &lt;p&gt;Java Chassis uses zipkin as the default tracing implementation.&lt;/p&gt;
 
@@ -1295,260 +1727,4 @@ can also download the html client for their Schemas.&lt;/p&gt;
 
 &lt;p&gt;&lt;strong&gt;快速反馈,快速修复&lt;/strong&gt;&lt;/p&gt;
 
-&lt;p&gt;&lt;strong&gt;循序渐进,增量实现&lt;/strong&gt;&lt;/p&gt;</content><author><name>Wang Lei</name><email>wanglei177@huawei.com</email><uri>https://wldandan.github.io</uri></author><category term="Reform legacy system" /><summary type="html">微服务是否是业界期待已久的企业架构解决方案?在对遗留系统进行微服务的改造过程中存在怎样的困难和挑战,应该注意些什么?</summary></entry><entry xml:lang="cn"><title type="html">ServiceComb中的数据最终一致性方案 - part 3</title><link href="/cn/docs/distributed_saga_3/" rel="alternate" type="text/html" title="ServiceComb中的数据最 [...]
-然而,业界还有其他数据一致性解决方案,如两阶段提交(2PC)和Try-Confirm / Cancel(TCC)。那saga相比之下有什么特别?&lt;/p&gt;
-
-&lt;h2 id=&quot;两阶段提交-two-phase-commit-2pc&quot;&gt;两阶段提交 Two-Phase Commit (2PC)&lt;/h2&gt;
-&lt;blockquote&gt;
-  &lt;p&gt;两阶段提交协议是一种分布式算法,用于协调参与分布式原子事务的所有进程,以保证他们均完成提交或中止(回滚)事务。&lt;a href=&quot;https://en.wikipedia.org/wiki/Two-phase_commit_protocol&quot;&gt;1&lt;/a&gt;&lt;/p&gt;
-&lt;/blockquote&gt;
-
-&lt;p&gt;2PC包含两个阶段:&lt;/p&gt;
-&lt;ul&gt;
-  &lt;li&gt;&lt;strong&gt;投票阶段&lt;/strong&gt; 协调器向所有服务发起投票请求,服务回答yes或no。如果有任何服务回复no以拒绝或超时,协调器则在下一阶段发送中止消息。&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.2pc.phase1.png&quot; alt=&quot;voting phase&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;&lt;strong&gt;决定阶段&lt;/strong&gt; 如果所有服务都回复yes,协调器则向服务发送commit消息,接着服务告知事务完成或失败。如果任何服务提交失败,
-协调器将启动额外的步骤以中止该事务。&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.2pc.phase2.png&quot; alt=&quot;decision phase&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;在投票阶段结束之后与决策阶段结束之前,服务处于&lt;strong&gt;不确定&lt;/strong&gt;状态,因为他们不确定交易是否继续进行。当服务处于不确定状态并与协调器失去连接时,
-它只能选择等待协调器的恢复,或者咨询其他在确定状态下的服务来得知协调器的决定。在最坏的情况下,
-n个处于不确定状态的服务向其他n-1个服务咨询将产生&lt;strong&gt;O(n&lt;sup&gt;2&lt;/sup&gt;)&lt;/strong&gt;个消息。&lt;/p&gt;
-
-&lt;p&gt;另外,2PC是一个阻塞协议。服务在投票后需要等待协调器的决定,此时服务会阻塞并锁定资源。由于其阻塞机制和最差时间复杂度高,
-2PC不能适应随着事务涉及的服务数量增加而扩展的需要。&lt;/p&gt;
-
-&lt;p&gt;有关2PC实现的更多细节可参考&lt;a href=&quot;https://cs.nyu.edu/courses/spring03/G22.2631-001/lecture8.pdf&quot;&gt;2&lt;/a&gt;和&lt;a href=&quot;http://courses.cs.vt.edu/~cs5204/fall00/distributedDBMS/duckett/tpcp.html&quot;&gt;3&lt;/a&gt;。&lt;/p&gt;
-
-&lt;h2 id=&quot;try-confirmcancel-tcc&quot;&gt;Try-Confirm/Cancel (TCC)&lt;/h2&gt;
-&lt;p&gt;TCC也是补偿型事务模式,支持两阶段的商业模型。&lt;/p&gt;
-&lt;ul&gt;
-  &lt;li&gt;&lt;strong&gt;尝试阶段&lt;/strong&gt; 将服务置于待处理状态。例如,收到尝试请求时,航班预订服务将为客户预留一个座位,并在数据库插入客户预订记录,将记录设为预留状态。
-如果任何服务失败或超时,协调器将在下一阶段发送取消请求。&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.tcc.try.png&quot; alt=&quot;try phase&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;&lt;strong&gt;确认阶段&lt;/strong&gt; 将服务设为确认状态。确认请求将确认客户预订的座位,这时服务已可向客户收取机票费用。数据库中的客户预订记录也会被更新为确认状态。
-如果任何服务无法确认或超时,协调器将重试确认请求直到成功,或在重试了一定次数后采取回退措施,比如人工干预。&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.tcc.confirm.png&quot; alt=&quot;confirm phase&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;与saga相比,TCC的优势在于,尝试阶段将服务转为待处理状态而不是最终状态,这使得设计相应的取消操作轻而易举。&lt;/p&gt;
-
-&lt;p&gt;例如,电邮服务的尝试请求可将邮件标记为准备发送,并且仅在确认后发送邮件,其相应的取消请求只需将邮件标记为已废弃。但如果使用saga,
-事务将发送电子邮件,及其相应的补偿事务可能需要发送另一封电子邮件作出解释。&lt;/p&gt;
-
-&lt;p&gt;TCC的缺点是其两阶段协议需要设计额外的服务待处理状态,以及额外的接口来处理尝试请求。另外,TCC处理事务请求所花费的时间可能是saga的两倍,
-因为TCC需要与每个服务进行两次通信,并且其确认阶段只能在收到所有服务对尝试请求的响应后开始。&lt;/p&gt;
-
-&lt;p&gt;有关TCC的更多细节可参考&lt;a href=&quot;https://www.infoq.com/presentations/Transactions-HTTP-REST&quot;&gt;Transactions for the REST of Us&lt;/a&gt;.&lt;/p&gt;
-
-&lt;h2 id=&quot;事件驱动的架构&quot;&gt;事件驱动的架构&lt;/h2&gt;
-&lt;p&gt;和TCC一样,在事件驱动的架构中,长活事务涉及的每个服务都需要支持额外的待处理状态。接收到事务请求的服务会在其数据库中插入一条新的记录,
-将该记录状态设为待处理并发送一个新的事件给事务序列中的下一个服务。&lt;/p&gt;
-
-&lt;p&gt;因为在插入记录后服务可能崩溃,我们无法确定是否新事件已发送,所以每个服务还需要额外的事件表来跟踪当前长活事务处于哪一步。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.event.driven.request.png&quot; alt=&quot;event driven architecture - request&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;一旦长活事务中的最后一个服务完成其子事务,它将通知它在事务中的前一个服务。接收到完成事件的服务将其在数据库中的记录状态设为完成。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.event.driven.response.png&quot; alt=&quot;event driven architecture - response&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;如果仔细比较,事件驱动的架构就像非集中式的基于事件的TCC实现。如果去掉待处理状态而直接把服务记录设为最终状态,这个架构就像非集中式的基于事件的saga实现。
-去中心化能达到服务自治,但也造成了服务之间更紧密的的耦合。假设新的业务需求在服务B和C之间的增加了新的流程D。在事件驱动架构下,服务B和C必须改动代码以适应新的流程D。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.event.coupling.png&quot; alt=&quot;event driven architecture - coupling&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Saga则正好相反,所有这些耦合都在saga系统中,当在长活事务中添加新流程时,现有服务不需要任何改动。&lt;/p&gt;
-
-&lt;p&gt;更多细节可参考&lt;a href=&quot;https://www.nginx.com/blog/event-driven-data-management-microservices/&quot;&gt;Event-Driven Data Management for Microservices&lt;/a&gt;.&lt;/p&gt;
-
-&lt;h2 id=&quot;集中式与非集中式实现&quot;&gt;集中式与非集中式实现&lt;/h2&gt;
-&lt;p&gt;这个Saga系列的文章讨论的都是集中式的saga设计。但saga也可用非集中式的方案来实现。那么非集中式的版本有什么不同?&lt;/p&gt;
-
-&lt;p&gt;非集中式saga没有专职的协调器。启动下一个服务调用的服务就是当前的协调器。例如,&lt;/p&gt;
-&lt;ul&gt;
-  &lt;li&gt;服务A收到要求服务A,B和C之间的数据一致性的事务请求。&lt;/li&gt;
-  &lt;li&gt;A完成其子事务,并将请求传递给事务中的下一个服务,服务B.&lt;/li&gt;
-  &lt;li&gt;B完成其子事务,并将请求传递给C,依此类推。&lt;/li&gt;
-  &lt;li&gt;如果C处理请求失败,B有责任启动补偿事务,并要求A回滚。&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.decentralized.png&quot; alt=&quot;decentralized saga&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;与集中式相比,非集中式的实现具有服务自治的优势。但每个服务都需要包含数据一致性协议,并提供其所需的额外持久化设施。&lt;/p&gt;
-
-&lt;p&gt;我们更倾向于自治的业务服务,但服务还关联很多应用的复杂性,如数据一致性,服务监控和消息传递,
-将这些棘手问题集中处理,能将业务服务从应用的复杂性中释放,专注于处理复杂的业务,因此我们采用了集中式的saga设计。&lt;/p&gt;
-
-&lt;p&gt;另外,随着长活事务中涉及的服务数量增长,服务之间的关系变得越来越难理解,很快便会呈现下图的死星形状。&lt;/p&gt;
-
-&lt;p class=&quot;figure-caption&quot;&gt;&lt;img src=&quot;/assets/images/saga.death.star.png&quot; alt=&quot;death star architecture&quot; class=&quot;align-center&quot; /&gt;
-图片来源: http://www.slideshare.net/BruceWong3/the-case-for-chaos (s12)&lt;/p&gt;
-
-&lt;p&gt;同时,在长活事务中定位问题也变得更加复杂,因为服务日志遍布群集节点。&lt;/p&gt;
-
-&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;
-&lt;p&gt;本文将saga与其他数据一致性解决方案进行了比较。Saga比两阶段提交更易扩展。在事务可补偿的情况下,
-相比TCC,saga对业务逻辑几乎没有改动的需要,而且性能更高。集中式的saga设计解耦了服务与数据一致性逻辑及其持久化设施,
-并使排查事务中的问题更容易。&lt;/p&gt;
-
-&lt;h2 id=&quot;references&quot;&gt;References&lt;/h2&gt;
-&lt;ol&gt;
-  &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Two-phase_commit_protocol&quot;&gt;https://en.wikipedia.org/wiki/Two-phase_commit_protocol&lt;/a&gt;&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;https://cs.nyu.edu/courses/spring03/G22.2631-001/lecture8.pdf&quot;&gt;https://cs.nyu.edu/courses/spring03/G22.2631-001/lecture8.pdf&lt;/a&gt;&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;http://courses.cs.vt.edu/~cs5204/fall00/distributedDBMS/duckett/tpcp.html&quot;&gt;http://courses.cs.vt.edu/~cs5204/fall00/distributedDBMS/duckett/tpcp.html&lt;/a&gt;&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;https://www.infoq.com/presentations/Transactions-HTTP-REST&quot;&gt;https://www.infoq.com/presentations/Transactions-HTTP-REST&lt;/a&gt;&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;https://www.nginx.com/blog/event-driven-data-management-microservices/&quot;&gt;https://www.nginx.com/blog/event-driven-data-management-microservices/&lt;/a&gt;&lt;/li&gt;
-&lt;/ol&gt;</content><author><name>Sean Yin</name><email>seanyinx@gmail.com</email><uri>http://seanyinx.github.io</uri></author><category term="事务一致性" /><summary type="html">Saga和其他数据一致性解决方案相比有什么不同之处?</summary></entry><entry xml:lang="en"><title type="html">Eventual Data Consistency Solution in ServiceComb - part 3</title><link href="/docs/distributed_saga_3/" rel="alternate" type="text/html" title="Eventual Data Consistency Solution in ServiceComb - part 3" /><published>2017-09-18T00:00 [...]
-ServiceComb is designed. However, there are quite a few data consistency solutions such as Two-Phase Commit (2PC) 
-and Try-Confirm/Cancel (TCC). What makes saga special?&lt;/p&gt;
-
-&lt;h2 id=&quot;two-phase-commit-2pc&quot;&gt;Two-Phase Commit (2PC)&lt;/h2&gt;
-&lt;blockquote&gt;
-  &lt;p&gt;Two-phase commit protocol is a distributed algorithm that coordinates all the processes that participate in a distributed 
-atomic transaction on whether to commit or abort (roll back) the transaction. &lt;a href=&quot;https://en.wikipedia.org/wiki/Two-phase_commit_protocol&quot;&gt;1&lt;/a&gt;&lt;/p&gt;
-&lt;/blockquote&gt;
-
-&lt;p&gt;It has two phases:&lt;/p&gt;
-&lt;ul&gt;
-  &lt;li&gt;&lt;strong&gt;voting phase&lt;/strong&gt; coordinator sends vote request to all services and services respond with either yes or no. If any service
-refuse with no or timeout, coordinator sends abort message in the next phase.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.2pc.phase1.png&quot; alt=&quot;voting phase&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;&lt;strong&gt;decision phase&lt;/strong&gt; if all services say yes, coordinator sends commit message to services and services acknowledge either
-transaction done or failed. If any service fails to commit, coordinator will initiate additional rounds to abort the transaction.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.2pc.phase2.png&quot; alt=&quot;decision phase&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Between the end of voting phase and the end of decision phase, services are in &lt;strong&gt;uncertain&lt;/strong&gt; state, because they are not sure
-if the transaction is going to proceed or not. When a service is in uncertain state and loses connection with coordinator,
-it may either wait for coordinator's recovery, or consult other services in certain state for coordinator's decision.
-In the worst case, n uncertain services broadcasting messages to other n - 1 services will incur &lt;strong&gt;O(n&lt;sup&gt;2&lt;/sup&gt;)&lt;/strong&gt; messages.&lt;/p&gt;
-
-&lt;p&gt;Another disadvantage of 2PC is that it is a blocking protocol. A service will block and lock resources, while waiting for
-decision from coordinator after voting. 2PC does not scale well when the number of services involved in a transaction grows,
-because of its blocking mechanism and worst case time complexity.&lt;/p&gt;
-
-&lt;p&gt;More details on implementation of 2PC can be found at &lt;a href=&quot;https://cs.nyu.edu/courses/spring03/G22.2631-001/lecture8.pdf&quot;&gt;2&lt;/a&gt; and &lt;a href=&quot;http://courses.cs.vt.edu/~cs5204/fall00/distributedDBMS/duckett/tpcp.html&quot;&gt;3&lt;/a&gt;.&lt;/p&gt;
-
-&lt;h2 id=&quot;try-confirmcancel-tcc&quot;&gt;Try-Confirm/Cancel (TCC)&lt;/h2&gt;
-&lt;p&gt;TCC is a compensating transaction pattern for business model that is two-phased.&lt;/p&gt;
-&lt;ul&gt;
-  &lt;li&gt;&lt;strong&gt;try phase&lt;/strong&gt; puts a service in pending state. For example, a try request in our flight booking service will reserve a
-seat for the customer and insert a customer reservation record with reserved state into database. If any service fails to
-make a reservation or times out, the coordinator will send a cancel request in the next phase.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.tcc.try.png&quot; alt=&quot;try phase&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;&lt;strong&gt;confirm phase&lt;/strong&gt; moves the service to confirmed state. A confirm request will confirm that a seat is booked for the 
-customer and he or she will be billed. The customer reservation record in database will be updated to confirmed state.
-If any service fails to confirm or times out, the coordinator will either retry confirmation until success or involve manual
-intervention after it retries a certain number of times.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.tcc.confirm.png&quot; alt=&quot;confirm phase&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Comparing with saga, TCC has an advantage in that try phase transitions services into pending state instead of final
-state, which makes cancellation trivial to design.&lt;/p&gt;
-
-&lt;p&gt;For example, a try request for an email service may mark an email as ready to send and the email is only sent on confirm 
-request. Its corresponding cancel request needs only to mark the email as obsolete. However, in case of using saga, a transaction
-will send the email and its corresponding compensating transaction may have to send another email to explain the problem.&lt;/p&gt;
-
-&lt;p&gt;The disadvantage of TCC, comparing with saga, is that its two-phased protocol requires services to be designed with additional
-pending state and interface to handle try request. And it may take twice the time to complete a TCC request than a saga request,
-because TCC communicates with each service twice and the confirm phase can only be started when responses of try request
-are received from all services.&lt;/p&gt;
-
-&lt;p&gt;More detailed explanation of TCC can be found at &lt;a href=&quot;https://www.infoq.com/presentations/Transactions-HTTP-REST&quot;&gt;Transactions for the REST of Us&lt;/a&gt;.&lt;/p&gt;
-
-&lt;h2 id=&quot;event-driven-architecture&quot;&gt;Event Driven Architecture&lt;/h2&gt;
-&lt;p&gt;In event driven architecture, just like TCC, an extra pending status is required for each service involved in a long live transaction.
-Services receiving transaction request insert a new record into its database with pending status and send a new event to
-the next service in the transaction sequence.&lt;/p&gt;
-
-&lt;p&gt;Because it's possible that a service crashes after inserting the record and we are not sure if the new event is sent,
-an extra event table is required for each service to keep track of which step the current long live transaction is in.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.event.driven.request.png&quot; alt=&quot;event driven architecture - request&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Once the last service in the long live transaction completes its job, it notifies the previous service in the transaction.
-Services receiving completion event set its record status to done in its database.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.event.driven.response.png&quot; alt=&quot;event driven architecture - response&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;If you look closer, event driven architecture is just like a decentralized implementation of event driven TCC. If we remove
-the pending state for each service, this architecture looks like a decentralized and event driven saga.
-Being decentralized is good, but it creates much tighter coupling between services. Let's assume a new business requirement adds a new
-process D between B and C. With event driven architecture, service B and C have to change their code to accommodate the new 
-process D.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.event.coupling.png&quot; alt=&quot;event driven architecture - coupling&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;On the contrary, all these coupling is in saga and no change is required for existing services when a new process is added
-to the long live transaction.&lt;/p&gt;
-
-&lt;p&gt;More details can be found at &lt;a href=&quot;https://www.nginx.com/blog/event-driven-data-management-microservices/&quot;&gt;Event-Driven Data Management for Microservices&lt;/a&gt;.&lt;/p&gt;
-
-&lt;h2 id=&quot;centralized-vs-decentralized&quot;&gt;Centralized vs Decentralized&lt;/h2&gt;
-&lt;p&gt;This blog series have been talked about centralized saga. But saga can be implemented as decentralized solution too. 
-How does the decentralized version look like?&lt;/p&gt;
-
-&lt;p&gt;The decentralized version of saga does not have a dedicated coordinator. Whoever calling the next service
-in the transaction becomes the current coordinator instead. For example,&lt;/p&gt;
-&lt;ul&gt;
-  &lt;li&gt;service A receives a request requiring data consistency across service A, B, and C.&lt;/li&gt;
-  &lt;li&gt;A does its job and passes the request to the next service in the request, service B.&lt;/li&gt;
-  &lt;li&gt;B completes its part and passes the request to C, and so on.&lt;/li&gt;
-  &lt;li&gt;If C fails to process the request, it is B's responsibility to initiate its compensating transaction and asks A to rollback.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;img src=&quot;/assets/images/saga.decentralized.png&quot; alt=&quot;decentralized saga&quot; class=&quot;align-center&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Comparing with centralized one, the decentralized version has the advantage of service autonomy. But each service is
-coupled with data consistency protocol, which may require additional persistence infrastructure.&lt;/p&gt;
-
-&lt;p&gt;We love services implementing business rules to be autonomous, but there are many application related complexity such as
-data consistency, service monitoring, and message passing, that are better to be centralized, so that business services
-are able to focus on dealing with business complexity instead of application complexity. That's why we designed centralized saga.&lt;/p&gt;
-
-&lt;p&gt;In addition, the relationship among services in a long live transaction becomes harder and harder to understand, as the 
-number of services grows. It may quickly grow into a death star like the image below.&lt;/p&gt;
-
-&lt;p class=&quot;figure-caption&quot;&gt;&lt;img src=&quot;/assets/images/saga.death.star.png&quot; alt=&quot;death star architecture&quot; class=&quot;align-center&quot; /&gt;
-Image source: http://www.slideshare.net/BruceWong3/the-case-for-chaos (s12)&lt;/p&gt;
-
-&lt;p&gt;Meanwhile, locating the root cause of a problem in a long live transaction also becomes more troublesome, since the 
-service logs are spread all over cluster nodes.&lt;/p&gt;
-
-&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;
-&lt;p&gt;In this article, we compared saga with other data consistency solutions. Saga is more scalable than two-phase commit and
-is preferable to TCC in scenarios where compensating transactions are feasible and minimal changes to business logic is
-required. Centralized saga decouples services from data consistency logic and its persistence infrastructure
-and allows easier troubleshooting of any problem occurred in transactions.&lt;/p&gt;
-
-&lt;h2 id=&quot;references&quot;&gt;References&lt;/h2&gt;
-&lt;ol&gt;
-  &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Two-phase_commit_protocol&quot;&gt;https://en.wikipedia.org/wiki/Two-phase_commit_protocol&lt;/a&gt;&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;https://cs.nyu.edu/courses/spring03/G22.2631-001/lecture8.pdf&quot;&gt;https://cs.nyu.edu/courses/spring03/G22.2631-001/lecture8.pdf&lt;/a&gt;&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;http://courses.cs.vt.edu/~cs5204/fall00/distributedDBMS/duckett/tpcp.html&quot;&gt;http://courses.cs.vt.edu/~cs5204/fall00/distributedDBMS/duckett/tpcp.html&lt;/a&gt;&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;https://www.infoq.com/presentations/Transactions-HTTP-REST&quot;&gt;https://www.infoq.com/presentations/Transactions-HTTP-REST&lt;/a&gt;&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;https://www.nginx.com/blog/event-driven-data-management-microservices/&quot;&gt;https://www.nginx.com/blog/event-driven-data-management-microservices/&lt;/a&gt;&lt;/li&gt;
-&lt;/ol&gt;</content><author><name>Sean Yin</name><email>seanyinx@gmail.com</email><uri>http://seanyinx.github.io</uri></author><category term="saga" /><summary type="html">How is distributed saga in ServiceComb comparing with other consistency solutions?</summary></entry></feed>
\ No newline at end of file
+&lt;p&gt;&lt;strong&gt;循序渐进,增量实现&lt;/strong&gt;&lt;/p&gt;</content><author><name>Wang Lei</name><email>wanglei177@huawei.com</email><uri>https://wldandan.github.io</uri></author><category term="Reform legacy system" /><summary type="html">微服务是否是业界期待已久的企业架构解决方案?在对遗留系统进行微服务的改造过程中存在怎样的困难和挑战,应该注意些什么?</summary></entry></feed>
\ No newline at end of file
diff --git a/content/sitemap.xml b/content/sitemap.xml
index a076ddc..4a0dfa2 100644
--- a/content/sitemap.xml
+++ b/content/sitemap.xml
@@ -141,24 +141,32 @@
 <lastmod>2018-01-11T10:26:28+08:00</lastmod>
 </url>
 <url>
+<loc>/cn/docs/config_center_integration/</loc>
+<lastmod>2018-04-04T19:05:00+08:00</lastmod>
+</url>
+<url>
 <loc>/cn/docs/join_the_community/</loc>
 <lastmod>2017-09-16T19:05:00+08:00</lastmod>
 </url>
 <url>
-<loc>/slides/</loc>
+<loc>/cn/docs/saga_pack_design/</loc>
+<lastmod>2018-04-04T09:18:43+08:00</lastmod>
 </url>
 <url>
 <loc>/cn/slides/</loc>
 </url>
 <url>
-<loc>/cn/users/application-boot-process/</loc>
-<lastmod>2017-08-16T03:01:43+08:00</lastmod>
+<loc>/slides/</loc>
 </url>
 <url>
 <loc>/users/application-boot-process/</loc>
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
+<loc>/cn/users/application-boot-process/</loc>
+<lastmod>2017-08-16T03:01:43+08:00</lastmod>
+</url>
+<url>
 <loc>/users/communicate-protocol/</loc>
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
@@ -167,11 +175,11 @@
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/users/customized-tracing/</loc>
+<loc>/cn/users/customized-tracing/</loc>
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/cn/users/customized-tracing/</loc>
+<loc>/users/customized-tracing/</loc>
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
@@ -191,11 +199,11 @@
 <lastmod>2017-06-06T22:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/users/develop-with-jax-rs/</loc>
+<loc>/cn/users/develop-with-jax-rs/</loc>
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/cn/users/develop-with-jax-rs/</loc>
+<loc>/users/develop-with-jax-rs/</loc>
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
@@ -207,11 +215,11 @@
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/cn/users/develop-with-rpc/</loc>
+<loc>/users/develop-with-rpc/</loc>
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/users/develop-with-rpc/</loc>
+<loc>/cn/users/develop-with-rpc/</loc>
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
@@ -223,24 +231,20 @@
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/users/develop-with-transparent-rpc/</loc>
-<lastmod>2017-08-16T03:01:43+08:00</lastmod>
-</url>
-<url>
 <loc>/cn/users/develop-with-transparent-rpc/</loc>
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/developers/</loc>
-<lastmod>2017-06-24T19:18:43+08:00</lastmod>
+<loc>/users/develop-with-transparent-rpc/</loc>
+<lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
 <loc>/cn/developers/</loc>
 <lastmod>2017-06-24T19:18:43+08:00</lastmod>
 </url>
 <url>
-<loc>/docs/quick-start-advance/distributed-tracing/</loc>
-<lastmod>2017-09-03T22:01:43+08:00</lastmod>
+<loc>/developers/</loc>
+<lastmod>2017-06-24T19:18:43+08:00</lastmod>
 </url>
 <url>
 <loc>/users/distributed-tracing/</loc>
@@ -255,6 +259,10 @@
 <lastmod>2017-09-03T22:01:43+08:00</lastmod>
 </url>
 <url>
+<loc>/docs/quick-start-advance/distributed-tracing/</loc>
+<lastmod>2017-09-03T22:01:43+08:00</lastmod>
+</url>
+<url>
 <loc>/cn/users/dynamic-config/</loc>
 <lastmod>2018-01-12T03:01:43+08:00</lastmod>
 </url>
@@ -263,6 +271,10 @@
 <lastmod>2018-01-16T03:01:43+08:00</lastmod>
 </url>
 <url>
+<loc>/cn/users/edge-in-1.0.0-m1/</loc>
+<lastmod>2018-04-03T22:01:43+08:00</lastmod>
+</url>
+<url>
 <loc>/users/faq/</loc>
 <lastmod>2017-06-06T22:01:43+08:00</lastmod>
 </url>
@@ -275,11 +287,11 @@
 <lastmod>2017-10-29T22:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/cn/docs/quick-start-advance/flow-control/</loc>
+<loc>/docs/quick-start-advance/flow-control/</loc>
 <lastmod>2017-09-03T22:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/docs/quick-start-advance/flow-control/</loc>
+<loc>/cn/docs/quick-start-advance/flow-control/</loc>
 <lastmod>2017-09-03T22:01:43+08:00</lastmod>
 </url>
 <url>
@@ -309,19 +321,19 @@
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/cn/release/java-chassis-downloads/</loc>
+<loc>/release/java-chassis-downloads/</loc>
 <lastmod>2018-03-28T08:50:43+08:00</lastmod>
 </url>
 <url>
-<loc>/release/java-chassis-downloads/</loc>
+<loc>/cn/release/java-chassis-downloads/</loc>
 <lastmod>2018-03-28T08:50:43+08:00</lastmod>
 </url>
 <url>
-<loc>/release/java-chassis-release-notes/</loc>
+<loc>/cn/release/java-chassis-release-notes/</loc>
 <lastmod>2018-03-28T08:50:43+08:00</lastmod>
 </url>
 <url>
-<loc>/cn/release/java-chassis-release-notes/</loc>
+<loc>/release/java-chassis-release-notes/</loc>
 <lastmod>2018-03-28T08:50:43+08:00</lastmod>
 </url>
 <url>
@@ -385,14 +397,14 @@
 <lastmod>2017-09-03T22:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/docs/quick-start-bmi/</loc>
-<lastmod>2017-09-06T08:50:00+08:00</lastmod>
-</url>
-<url>
 <loc>/cn/docs/quick-start-bmi/</loc>
 <lastmod>2017-09-04T22:01:43+08:00</lastmod>
 </url>
 <url>
+<loc>/docs/quick-start-bmi/</loc>
+<lastmod>2017-09-06T08:50:00+08:00</lastmod>
+</url>
+<url>
 <loc>/cn/docs/quick-start-dataconsistency/</loc>
 <lastmod>2017-09-19T23:50:10+08:00</lastmod>
 </url>
@@ -401,14 +413,14 @@
 <lastmod>2017-09-03T22:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/cn/docs/quick-start/</loc>
-<lastmod>2017-09-03T22:01:43+08:00</lastmod>
-</url>
-<url>
 <loc>/docs/quick-start/</loc>
 <lastmod>2017-09-06T08:50:43+08:00</lastmod>
 </url>
 <url>
+<loc>/cn/docs/quick-start/</loc>
+<lastmod>2017-09-03T22:01:43+08:00</lastmod>
+</url>
+<url>
 <loc>/cn/release/</loc>
 <lastmod>2018-03-28T08:50:43+08:00</lastmod>
 </url>
@@ -425,11 +437,11 @@
 <lastmod>2018-03-28T08:50:43+08:00</lastmod>
 </url>
 <url>
-<loc>/release/saga-downloads/</loc>
+<loc>/cn/release/saga-downloads/</loc>
 <lastmod>2018-03-28T08:50:43+08:00</lastmod>
 </url>
 <url>
-<loc>/cn/release/saga-downloads/</loc>
+<loc>/release/saga-downloads/</loc>
 <lastmod>2018-03-28T08:50:43+08:00</lastmod>
 </url>
 <url>
@@ -441,11 +453,11 @@
 <lastmod>2018-03-28T08:50:43+08:00</lastmod>
 </url>
 <url>
-<loc>/cn/users/service-configurations/</loc>
+<loc>/users/service-configurations/</loc>
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/users/service-configurations/</loc>
+<loc>/cn/users/service-configurations/</loc>
 <lastmod>2017-08-16T03:01:43+08:00</lastmod>
 </url>
 <url>
@@ -481,11 +493,11 @@
 <lastmod>2017-09-03T22:01:43+08:00</lastmod>
 </url>
 <url>
-<loc>/cn/release/service-center-binary/</loc>
+<loc>/release/sc-binary/</loc>
 <lastmod>2018-03-28T08:50:43+08:00</lastmod>
 </url>
 <url>
-<loc>/release/sc-binary/</loc>
+<loc>/cn/release/service-center-binary/</loc>
 <lastmod>2018-03-28T08:50:43+08:00</lastmod>
 </url>
 <url>
diff --git a/content/sitemap/index.html b/content/sitemap/index.html
index 1e99136..a701a59 100644
--- a/content/sitemap/index.html
+++ b/content/sitemap/index.html
@@ -357,8 +357,12 @@
 
 <link rel="alternate" hreflang="en" href="/docs/howto-upgrade-topzipkin2/" />
 
+<link rel="alternate" hreflang="cn" href="/cn/docs/config_center_integration/" />
+
 <link rel="alternate" hreflang="cn" href="/cn/docs/join_the_community/" />
 
+<link rel="alternate" hreflang="cn" href="/cn/docs/saga_pack_design/" />
+
 
   </div>
 </div>

-- 
To stop receiving notification emails like this one, please contact
ningjiang@apache.org.