You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2021/06/26 03:37:13 UTC

[servicecomb-website] branch asf-site updated: remove source for publish branch (#274)

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

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


The following commit(s) were added to refs/heads/asf-site by this push:
     new 113f947  remove source for publish branch (#274)
113f947 is described below

commit 113f9470188333f6cc7649dff0ef38b22f0a27a7
Author: liubao68 <bi...@qq.com>
AuthorDate: Sat Jun 26 11:37:05 2021 +0800

    remove source for publish branch (#274)
---
 CNAME                                              |    1 -
 DISCLAIMER                                         |    1 -
 Gemfile                                            |   14 -
 LICENSE                                            |  295 ---
 NOTICE                                             |    5 -
 README.md                                          |   92 +-
 Rakefile                                           |   75 -
 _config.yml                                        |  332 ---
 _data/authors.yml                                  |   71 -
 _data/navigation.yml                               |  390 ---
 _data/ui-text.yml                                  |  756 ------
 _developers/becomming-a-committer.md               |   31 -
 _developers/cn/becomming-a-committer.md            |   31 -
 _developers/cn/contributing.md                     |   55 -
 _developers/cn/developer-guide.md                  |   32 -
 _developers/cn/release_guide.md                    |  327 ---
 _developers/cn/release_validation_guide.md         |  186 --
 _developers/cn/setup-committer-rights.md           |   61 -
 _developers/cn/setup-develop-environment.md        |   65 -
 _developers/cn/sonarcloud-how-to.md                |   53 -
 _developers/cn/submit-codes.md                     |  123 -
 _developers/cn/submit-issues.md                    |   28 -
 _developers/cn/subscribe-mail-list.md              |   67 -
 _developers/cn/team.md                             |   72 -
 _developers/cn/use-gitter.md                       |   65 -
 _developers/cn/use-jira.md                         |   41 -
 _developers/contributing.md                        |   55 -
 _developers/developer-guide.md                     |   32 -
 _developers/release_guide.md                       |  350 ---
 _developers/release_validation_guide.md            |  184 --
 _developers/setup-committer-rights.md              |   61 -
 _developers/setup-develop-environment.md           |   70 -
 _developers/sonarcloud-how-to.md                   |   53 -
 _developers/submit-codes.md                        |  119 -
 _developers/team.md                                |   76 -
 _developers/use-jira.md                            |   41 -
 _docs/cn/getstarted/getting-started.md             |   27 -
 _docs/cn/introduction/introduction.md              |  112 -
 _docs/cn/products/java-chassis/advance.md          |   25 -
 _docs/cn/products/java-chassis/bmi.md              |  216 --
 .../products/java-chassis/distributed-tracing.md   |   95 -
 _docs/cn/products/java-chassis/flow-control.md     |   65 -
 _docs/cn/products/java-chassis/load-balance.md     |   45 -
 _docs/cn/products/java-chassis/quick-start.md      |   69 -
 .../cn/products/java-chassis/service-management.md |   71 -
 _docs/cn/products/mesher/advance.md                |   24 -
 _docs/cn/products/mesher/distributed-tracing.md    |   50 -
 _docs/cn/products/mesher/flow-control.md           |   45 -
 _docs/cn/products/mesher/load-balance.md           |   55 -
 _docs/cn/products/mesher/management.md             |   91 -
 _docs/cn/products/mesher/quick-start.md            |  149 --
 _docs/cn/products/pack/dataconsistency.md          |  460 ----
 _docs/cn/products/service-center/install.md        |  139 -
 .../service-center/registration-discovery.md       |  112 -
 _docs/cn/products/syncer/multi-servicecenters.md   |  239 --
 _docs/cn/products/syncer/quick-start.md            |   82 -
 _docs/cn/products/toolkit/oas-validator.md         |  437 ----
 _docs/cn/products/toolkit/quick-start.md           |  242 --
 _docs/getstarted/getting-started.md                |   27 -
 _docs/introduction/introduction.md                 |  126 -
 _docs/products/java-chassis/advance.md             |   24 -
 _docs/products/java-chassis/bmi.md                 |  214 --
 _docs/products/java-chassis/distributed-tracing.md |   98 -
 _docs/products/java-chassis/flow-control.md        |   65 -
 _docs/products/java-chassis/load-balance.md        |   44 -
 _docs/products/java-chassis/quick-start.md         |   70 -
 _docs/products/java-chassis/service-management.md  |   73 -
 _docs/products/mesher/advance.md                   |   24 -
 _docs/products/mesher/distributed-tracing.md       |   52 -
 _docs/products/mesher/flow-control.md              |   45 -
 _docs/products/mesher/load-balance.md              |   57 -
 _docs/products/mesher/quick-start.md               |  139 -
 _docs/products/mesher/service-management.md        |   91 -
 _docs/products/pack/dataconsistency.md             |  462 ----
 _docs/products/service-center/install.md           |  138 -
 .../service-center/registration-discovery.md       |  121 -
 _docs/products/syncer/multi-servicecenters.md      |  227 --
 _docs/products/syncer/quick-start.md               |  105 -
 _docs/products/toolkit/oas-validator.md            |  436 ----
 _docs/products/toolkit/quick-start.md              |  238 --
 _faqs/cn/faq.md                                    |  502 ----
 _faqs/cn/huawei-cloud-faq.md                       |   45 -
 _faqs/faq.md                                       |   59 -
 _faqs/huawei-cloud-faq.md                          |   41 -
 _includes/analytics-providers/custom.html          |    3 -
 .../analytics-providers/google-universal.html      |    9 -
 _includes/analytics-providers/google.html          |   11 -
 _includes/analytics.html                           |   12 -
 _includes/archive-single.html                      |   38 -
 _includes/author-profile-custom-links.html         |    7 -
 _includes/author-profile.html                      |  257 --
 _includes/base_path                                |    5 -
 _includes/breadcrumbs.html                         |   39 -
 _includes/browser-upgrade.html                     |    3 -
 _includes/category-list.html                       |   26 -
 _includes/comment.html                             |   22 -
 _includes/comments-providers/custom.html           |    3 -
 _includes/comments-providers/discourse.html        |   13 -
 _includes/comments-providers/disqus.html           |   22 -
 _includes/comments-providers/facebook.html         |    8 -
 _includes/comments-providers/google-plus.html      |    2 -
 _includes/comments-providers/scripts.html          |   18 -
 _includes/comments-providers/staticman.html        |   42 -
 _includes/comments.html                            |   83 -
 _includes/feature_row                              |   51 -
 _includes/figure                                   |   12 -
 _includes/footer.html                              |   58 -
 _includes/footer/custom.html                       |    3 -
 _includes/gallery                                  |   47 -
 _includes/group-by-array                           |   47 -
 _includes/head.html                                |   46 -
 _includes/head/custom.html                         |    6 -
 _includes/masthead.html                            |   89 -
 _includes/nav_list                                 |   47 -
 _includes/page__hero.html                          |   53 -
 _includes/page__hero_video.html                    |    4 -
 _includes/page__taxonomy.html                      |    7 -
 _includes/paginator.html                           |   69 -
 _includes/post_pagination.html                     |   14 -
 _includes/read-time.html                           |   15 -
 _includes/scripts.html                             |    4 -
 _includes/seo.html                                 |  147 --
 _includes/sidebar.html                             |   28 -
 _includes/social-share.html                        |   13 -
 _includes/tag-list.html                            |   26 -
 _includes/toc                                      |    7 -
 _includes/video                                    |   13 -
 _layouts/archive-taxonomy.html                     |   15 -
 _layouts/archive.html                              |   26 -
 _layouts/compress.html                             |   10 -
 _layouts/default.html                              |   43 -
 _layouts/home.html                                 |   11 -
 _layouts/single.html                               |   86 -
 _layouts/splash.html                               |   22 -
 _pages/404.md                                      |   18 -
 _pages/about-slides.md                             |   57 -
 _pages/cn/404.md                                   |   18 -
 _pages/cn/about-slides.md                          |   60 -
 _pages/cn/home.md                                  |   82 -
 _pages/cn/security.md                              |   15 -
 _pages/cn/summer2020.md                            |   47 -
 _pages/cn/year-archive.html                        |   39 -
 _pages/home.md                                     |   82 -
 _pages/security.md                                 |   13 -
 _pages/sitemap.md                                  |   42 -
 _pages/summer2020.html                             |   10 -
 _pages/year-archive.html                           |   40 -
 _posts/2017-06-15-linuxcon-workshop-demo.md        |  715 ------
 _posts/2017-06-24-go-to-cloud.md                   |  162 --
 _posts/2017-07-17-tracing-with-servicecomb.md      |  113 -
 _posts/2017-08-09-communication-btw-sc-ms.md       |   39 -
 _posts/2017-08-21-company-on-kubernetes.md         |  144 --
 _posts/2017-08-24-autoscale-on-company.md          |  146 --
 ...25-stress-test-on-company-with-jmeter-in-k8s.md |  160 --
 _posts/2017-08-26-seckill-develop-course-part-I.md |   72 -
 .../2017-08-30-seckill-develop-course-part-II.md   |   60 -
 .../2017-09-07-seckill-develop-course-part-III.md  |   76 -
 _posts/2017-09-13-saga-background.md               |  133 -
 _posts/2017-09-16-saga-design.md                   |  110 -
 _posts/2017-09-18-saga-and-others.md               |  148 --
 _posts/2017-10-23-how-to-reform-a-legacy-system.md |  326 ---
 _posts/2017-10-28-service-center-ui.md             |   67 -
 ...017-12-19-service-registry-refactor-proposal.md |   62 -
 _posts/2018-01-10-howto-upgrade-to-zipkin-v2.md    |  238 --
 ...2018-06-14-apache-servicecomb-incubating-day.md |  156 --
 ...-28-apache-servicecomb-incubating-day-report.md |   43 -
 ...9-28-Apache-ServiceComb-Meetup-2018-Shanghai.md |   82 -
 _posts/2018-10-15-OSI-Workshop-Report.md           |   44 -
 ...ache-ServiceComb-Meetup-2018-Shanghai-Report.md |   77 -
 _posts/2018-8-20-release-note-1-0-0.md             |  102 -
 ...-07-chuanzhiboke-servicecomb-tutoria-release.md |   20 -
 _posts/2019-04-03-servicecomb-pack-cluster.md      |  283 ---
 _posts/2019-04-12-servicecomb-pack-consul.md       |  134 -
 _posts/2019-04-15-servicecomb-pack-eureka.md       |  159 --
 ...2019-Shanghai-KubeCon+CloudNative+OSS-Report.md |   81 -
 ...ache-ServiceComb-Meetup-2019-Shanghai-Report.md |   78 -
 ...comb-accept-newcapec-institute-code-donation.md |   20 -
 _posts/cn/2017-06-15-linuxcon-workshop-demo.md     |  714 ------
 _posts/cn/2017-06-24-go-to-cloud.md                |  163 --
 _posts/cn/2017-07-17-tracing-with-servicecomb.md   |  104 -
 _posts/cn/2017-08-09-communication-btw-sc-ms.md    |   39 -
 _posts/cn/2017-08-21-company-on-kubernetes.md      |  150 --
 _posts/cn/2017-08-24-autoscale-on-company.md       |  144 --
 ...25-stress-test-on-company-with-jmeter-in-k8s.md |  161 --
 .../cn/2017-08-26-seckill-develop-course-part-I.md |   70 -
 .../2017-08-30-seckill-develop-course-part-II.md   |   60 -
 .../2017-09-07-seckill-develop-course-part-III.md  |   76 -
 _posts/cn/2017-09-13-saga-background.md            |  109 -
 .../cn/2017-09-14-maven-dependency-management.md   |  117 -
 ...9-15-performance-test-on-seckill-with-jmeter.md |  121 -
 _posts/cn/2017-09-16-saga-design.md                |   95 -
 _posts/cn/2017-09-18-saga-and-others.md            |  122 -
 .../cn/2017-10-23-how-to-reform-a-legacy-system.md |  326 ---
 _posts/cn/2017-10-28-service-center-ui.md          |   67 -
 _posts/cn/2017-11-16-jira-beginner-guide.md        |   69 -
 _posts/cn/2018-04-04-config-center-integration.md  |  182 --
 _posts/cn/2018-04-04-join_the_community.md         |  112 -
 _posts/cn/2018-04-04-saga-pack-design.md           |  167 --
 ...uild-java-chassis-microservices-using-gradle.md |   98 -
 _posts/cn/2018-04-25-open-design.md                |  319 ---
 .../cn/2018-04-26-distributed-transactions-saga.md |  214 --
 _posts/cn/2018-04-28-saga_with_cucumber.md         |  326 ---
 ...-06-how-to-grow-up-to-be-an-apache-committer.md |   47 -
 ...2018-06-14-apache-servicecomb-incubating-day.md |  130 -
 .../cn/2018-06-27-apache-servicecomb-day-slides.md |   79 -
 _posts/cn/2018-07-21-consul-servicemesh.md         |  166 --
 _posts/cn/2018-08-28-crm-part-I.md                 |  747 ------
 .../cn/2018-09-11-loadtest-saga-with-kubernetes.md |  160 --
 ...9-28-Apache-ServiceComb-Meetup-2018-Shanghai.md |   95 -
 _posts/cn/2018-10-15-OSI-Workshop-Report.md        |   44 -
 ...ache-ServiceComb-Meetup-2018-Shanghai-Report.md |   83 -
 _posts/cn/2018-11-05-talk-to-apache-experts.md     |  199 --
 ...-11-20-opensource-project-is-not-so-far-away.md |   76 -
 ...12-29-apache-servicecomb-introduction-slides.md |   20 -
 _posts/cn/2018-8-13-1.0.0-release-note.md          |  148 --
 ...-07-chuanzhiboke-servicecomb-tutoria-release.md |   20 -
 ...-01-10-distributed-transaction-of-services-1.md |  102 -
 ...-01-10-distributed-transaction-of-services-2.md |  281 --
 ...2019-01-22-servicecomb-springcloud-zuul-demo.md |  362 ---
 ...19-01-23-customized-tracing-with-servicecomb.md |   99 -
 _posts/cn/2019-04-03-servicecomb-pack-cluster.md   |  284 ---
 _posts/cn/2019-04-12-servicecomb-pack-consul.md    |  132 -
 _posts/cn/2019-04-15-servicecomb-pack-eureka.md    |  158 --
 ...2019-Shanghai-KubeCon+CloudNative+OSS-Report.md |   82 -
 ...019-07-04-how-to-do-microservice-accept-test.md |  337 ---
 ...ache-ServiceComb-Meetup-2019-Shanghai-Report.md |   78 -
 ...-use-oas-validator-help-standardize-oas-spec.md |  184 --
 ...comb-accept-newcapec-institute-code-donation.md |   20 -
 ...ource-community-with-Apache-ServiceComb-BUPT.md |   64 -
 ...2019-12-09-servicecomb-service-center-client.md |  211 --
 ...ource-community-with-Apache-ServiceComb-GDUT.md |   51 -
 _release/cn/compatible_version.md                  |   18 -
 _release/cn/java_chassis_downloads.md              |   76 -
 _release/cn/java_chassis_releaseNotes.md           |  555 ----
 _release/cn/kie_downloads.md                       |   38 -
 _release/cn/kie_releaseNotes.md                    |   58 -
 _release/cn/mesher_downloads.md                    |   51 -
 _release/cn/mesher_releaseNotes.md                 |   35 -
 _release/cn/pack_downloads.md                      |   52 -
 _release/cn/pack_releaseNotes.md                   |  557 ----
 _release/cn/release.md                             |   94 -
 _release/cn/saga_actuator_downloads.md             |   49 -
 _release/cn/saga_actuator_releaseNotes.md          |   50 -
 _release/cn/saga_downloads.md                      |   55 -
 _release/cn/saga_releaseNotes.md                   |  299 ---
 _release/cn/service_center_downloads.md            |   56 -
 _release/cn/service_center_releaseNotes.md         |  387 ---
 _release/cn/toolkit_downloads.md                   |   50 -
 _release/cn/toolkit_releaseNotes.md                |  172 --
 _release/compatible_version.md                     |   18 -
 _release/java_chassis_downloads.md                 |   80 -
 _release/java_chassis_releaseNotes.md              |   54 -
 _release/kie_downloads.md                          |   37 -
 _release/lie_releaseNotes.md                       |   57 -
 _release/mesher_downloads.md                       |   51 -
 _release/mesher_releaseNotes.md                    |   35 -
 _release/pack_downloads.md                         |   53 -
 _release/pack_releaseNotes.md                      |  551 ----
 _release/release.md                                |   94 -
 _release/saga_actuator_downloads.md                |   50 -
 _release/saga_actuator_releaseNotes.md             |   50 -
 _release/saga_downloads.md                         |   54 -
 _release/saga_releaseNotes.md                      |  298 ---
 _release/service_center_downloads.md               |   58 -
 _release/service_center_releaseNotes.md            |  387 ---
 _release/toolkit_downloads.md                      |   51 -
 _release/toolkit_releaseNotes.md                   |  172 --
 _sass/custom/_head.scss                            |    3 -
 _sass/custom/_page.scss                            |   19 -
 _sass/custom/_utilities.scss                       |    8 -
 _sass/custom/_variables.scss                       |   43 -
 _sass/minimal-mistakes.scss                        |   47 -
 _sass/minimal-mistakes/_animations.scss            |   21 -
 _sass/minimal-mistakes/_archive.scss               |  292 ---
 _sass/minimal-mistakes/_base.scss                  |  333 ---
 _sass/minimal-mistakes/_buttons.scss               |  171 --
 _sass/minimal-mistakes/_footer.scss                |  126 -
 _sass/minimal-mistakes/_forms.scss                 |  387 ---
 _sass/minimal-mistakes/_masthead.scss              |  132 -
 _sass/minimal-mistakes/_mixins.scss                |   53 -
 _sass/minimal-mistakes/_navigation.scss            |  631 -----
 _sass/minimal-mistakes/_notices.scss               |   99 -
 _sass/minimal-mistakes/_page.scss                  |  468 ----
 _sass/minimal-mistakes/_print.scss                 |  238 --
 _sass/minimal-mistakes/_reset.scss                 |  187 --
 _sass/minimal-mistakes/_sidebar.scss               |  252 --
 _sass/minimal-mistakes/_syntax.scss                |  146 --
 _sass/minimal-mistakes/_tables.scss                |   38 -
 _sass/minimal-mistakes/_utilities.scss             |  522 ----
 _sass/minimal-mistakes/_variables.scss             |  129 -
 .../vendor/breakpoint/_breakpoint.scss             |  114 -
 .../vendor/breakpoint/_context.scss                |   95 -
 .../vendor/breakpoint/_helpers.scss                |  151 --
 .../vendor/breakpoint/_legacy-settings.scss        |   50 -
 .../vendor/breakpoint/_no-query.scss               |   15 -
 .../vendor/breakpoint/_parsers.scss                |  215 --
 .../vendor/breakpoint/_respond-to.scss             |   82 -
 .../vendor/breakpoint/_settings.scss               |   71 -
 .../vendor/breakpoint/parsers/_double.scss         |   33 -
 .../vendor/breakpoint/parsers/_query.scss          |   82 -
 .../vendor/breakpoint/parsers/_resolution.scss     |   31 -
 .../vendor/breakpoint/parsers/_single.scss         |   26 -
 .../vendor/breakpoint/parsers/_triple.scss         |   36 -
 .../breakpoint/parsers/double/_default-pair.scss   |   21 -
 .../vendor/breakpoint/parsers/double/_default.scss |   22 -
 .../breakpoint/parsers/double/_double-string.scss  |   22 -
 .../breakpoint/parsers/resolution/_resolution.scss |   60 -
 .../vendor/breakpoint/parsers/single/_default.scss |   13 -
 .../vendor/breakpoint/parsers/triple/_default.scss |   18 -
 .../vendor/font-awesome/_animated.scss             |   34 -
 .../vendor/font-awesome/_bordered-pulled.scss      |   25 -
 .../vendor/font-awesome/_core.scss                 |   12 -
 .../vendor/font-awesome/_fixed-width.scss          |    6 -
 .../vendor/font-awesome/_font-awesome.scss         |   18 -
 .../vendor/font-awesome/_icons.scss                |  789 ------
 .../vendor/font-awesome/_larger.scss               |   13 -
 .../vendor/font-awesome/_list.scss                 |   19 -
 .../vendor/font-awesome/_mixins.scss               |   60 -
 .../vendor/font-awesome/_path.scss                 |   15 -
 .../vendor/font-awesome/_rotated-flipped.scss      |   20 -
 .../vendor/font-awesome/_screen-reader.scss        |    5 -
 .../vendor/font-awesome/_stacked.scss              |   20 -
 .../vendor/font-awesome/_variables.scss            |  800 ------
 .../vendor/magnific-popup/_magnific-popup.scss     |  649 -----
 .../vendor/magnific-popup/_settings.scss           |   46 -
 _sass/minimal-mistakes/vendor/susy/_su.scss        |    4 -
 _sass/minimal-mistakes/vendor/susy/_susy.scss      |    4 -
 _sass/minimal-mistakes/vendor/susy/_susyone.scss   |    4 -
 _sass/minimal-mistakes/vendor/susy/susy/_su.scss   |    7 -
 .../vendor/susy/susy/language/_susy.scss           |   24 -
 .../vendor/susy/susy/language/_susyone.scss        |   13 -
 .../susy/susy/language/susy/_background.scss       |  385 ---
 .../vendor/susy/susy/language/susy/_bleed.scss     |  200 --
 .../susy/susy/language/susy/_box-sizing.scss       |   47 -
 .../susy/language/susy/_breakpoint-plugin.scss     |  185 --
 .../vendor/susy/susy/language/susy/_container.scss |   81 -
 .../vendor/susy/susy/language/susy/_context.scss   |   36 -
 .../vendor/susy/susy/language/susy/_gallery.scss   |   94 -
 .../vendor/susy/susy/language/susy/_grids.scss     |   64 -
 .../vendor/susy/susy/language/susy/_gutters.scss   |  154 --
 .../vendor/susy/susy/language/susy/_isolate.scss   |   77 -
 .../vendor/susy/susy/language/susy/_margins.scss   |   94 -
 .../vendor/susy/susy/language/susy/_padding.scss   |   74 -
 .../vendor/susy/susy/language/susy/_rows.scss      |  138 -
 .../vendor/susy/susy/language/susy/_settings.scss  |  216 --
 .../vendor/susy/susy/language/susy/_span.scss      |  163 --
 .../susy/susy/language/susy/_validation.scss       |   16 -
 .../susy/susy/language/susyone/_background.scss    |   18 -
 .../susy/susy/language/susyone/_functions.scss     |  377 ---
 .../vendor/susy/susy/language/susyone/_grid.scss   |  312 ---
 .../susy/susy/language/susyone/_isolation.scss     |   51 -
 .../vendor/susy/susy/language/susyone/_margin.scss |   93 -
 .../vendor/susy/susy/language/susyone/_media.scss  |  105 -
 .../susy/susy/language/susyone/_padding.scss       |   92 -
 .../susy/susy/language/susyone/_settings.scss      |   60 -
 .../vendor/susy/susy/output/_float.scss            |    9 -
 .../vendor/susy/susy/output/_shared.scss           |   15 -
 .../vendor/susy/susy/output/_support.scss          |    9 -
 .../vendor/susy/susy/output/float/_container.scss  |   16 -
 .../vendor/susy/susy/output/float/_end.scss        |   40 -
 .../vendor/susy/susy/output/float/_isolate.scss    |   22 -
 .../vendor/susy/susy/output/float/_span.scss       |   35 -
 .../susy/susy/output/shared/_background.scss       |   26 -
 .../vendor/susy/susy/output/shared/_container.scss |   21 -
 .../vendor/susy/susy/output/shared/_direction.scss |   42 -
 .../vendor/susy/susy/output/shared/_inspect.scss   |   25 -
 .../vendor/susy/susy/output/shared/_margins.scss   |   23 -
 .../vendor/susy/susy/output/shared/_output.scss    |   14 -
 .../vendor/susy/susy/output/shared/_padding.scss   |   23 -
 .../susy/susy/output/support/_background.scss      |   58 -
 .../susy/susy/output/support/_box-sizing.scss      |   19 -
 .../vendor/susy/susy/output/support/_clearfix.scss |   18 -
 .../vendor/susy/susy/output/support/_prefix.scss   |   19 -
 .../vendor/susy/susy/output/support/_rem.scss      |   22 -
 .../vendor/susy/susy/output/support/_support.scss  |   85 -
 .../vendor/susy/susy/su/_grid.scss                 |  103 -
 .../vendor/susy/susy/su/_settings.scss             |   73 -
 .../vendor/susy/susy/su/_utilities.scss            |  111 -
 .../vendor/susy/susy/su/_validation.scss           |   57 -
 _users/application-boot-process.md                 |   27 -
 _users/cn/application-boot-process.md              |   27 -
 _users/cn/communicate-protocol.md                  |  231 --
 _users/cn/customized-tracing.md                    |  103 -
 _users/cn/define-service-contract.md               |  116 -
 _users/cn/deploy-mode.md                           |  337 ---
 _users/cn/deployment.md                            |   87 -
 _users/cn/develop-with-jax-rs.md                   |  153 --
 _users/cn/develop-with-rest-template.md            |   59 -
 _users/cn/develop-with-rpc.md                      |   89 -
 _users/cn/develop-with-springboot-starter.md       |  151 --
 _users/cn/develop-with-springmvc.md                |  147 --
 _users/cn/develop-with-transparent-rpc.md          |  164 --
 _users/cn/distributed-tracing.md                   |   71 -
 _users/cn/dynamic-config.md                        |  102 -
 _users/cn/edge-in-1.0.0-m1.md                      |  100 -
 _users/cn/healthcheck.md                           |   84 -
 _users/cn/invoke-control.md                        |   65 -
 _users/cn/local-develop-test.md                    |   69 -
 ...nage_springcloud_application_using_sc_and_gs.md |  143 --
 _users/cn/metrics-in-0.5.0.md                      |  140 -
 _users/cn/metrics-in-1.0.0-m1.md                   |  291 ---
 ...rics-integration-with-prometheus-in-1.0.0-m1.md |  123 -
 ...-write-file-extension-and-sample-in-1.0.0-m1.md |  106 -
 _users/cn/nginx.md                                 |  107 -
 _users/cn/service-configurations.md                |  128 -
 _users/cn/service-definition.md                    |   55 -
 _users/cn/service-heartbeat.md                     |   34 -
 _users/cn/service-interface-constraints.md         |   66 -
 _users/cn/servicecomb-introduction.md              |   38 -
 _users/cn/setup-environment.md                     |  191 --
 _users/cn/use-service-contract.md                  |   60 -
 _users/cn/use-tls.md                               |  142 --
 _users/cn/zuul.md                                  |  143 --
 _users/communicate-protocol.md                     |  231 --
 _users/customized-tracing.md                       |  103 -
 _users/define-service-contract.md                  |  116 -
 _users/deployment.md                               |   91 -
 _users/develop-with-jax-rs.md                      |  148 --
 _users/develop-with-rest-template.md               |   59 -
 _users/develop-with-rpc.md                         |   90 -
 _users/develop-with-springboot-starter.md          |  144 --
 _users/develop-with-springmvc.md                   |  142 --
 _users/develop-with-transparent-rpc.md             |  156 --
 _users/distributed-tracing.md                      |   71 -
 _users/dynamic-config.md                           |  101 -
 _users/edge-in-1.0.0-m1.md                         |   99 -
 _users/faq.md                                      |   61 -
 _users/healthcheck.md                              |   84 -
 _users/huawei-cloud-faq.md                         |   41 -
 _users/invoke-control.md                           |   66 -
 _users/local-develop-test.md                       |   69 -
 ...nage_springcloud_application_using_sc_and_gs.md |  143 --
 _users/metrics-in-1.0.0-m1.md                      |  290 ---
 ...rics-integration-with-prometheus-in-1.0.0-m1.md |  123 -
 _users/nginx.md                                    |  111 -
 _users/service-configurations.md                   |  131 -
 _users/service-definition.md                       |   55 -
 _users/service-heartbeat.md                        |   32 -
 _users/service-interface-constraints.md            |   72 -
 _users/servicecomb-introduction.md                 |   38 -
 _users/setup-environment.md                        |  190 --
 _users/use-service-contract.md                     |   58 -
 _users/use-tls.md                                  |  142 --
 _users/zuul.md                                     |  143 --
 assets/css/main.scss                               |    7 -
 .../class-dependency-1.png                         |  Bin 279322 -> 0 bytes
 .../class-dependency-2.png                         |  Bin 496249 -> 0 bytes
 .../cluster-package-structure.png                  |  Bin 207660 -> 0 bytes
 .../alpha_register_to_consul.png                   |  Bin 123517 -> 0 bytes
 .../consul_main.png                                |  Bin 95468 -> 0 bytes
 .../alpha_register_to_eureka.png                   |  Bin 204588 -> 0 bytes
 .../eureka-main.png                                |  Bin 171493 -> 0 bytes
 .../oas-validator-1.png                            |  Bin 121783 -> 0 bytes
 .../oas-validator-2.png                            |  Bin 13642 -> 0 bytes
 assets/images/Community_Summoned_en.png            |  Bin 249576 -> 0 bytes
 assets/images/Community_Summoned_zh.png            |  Bin 253558 -> 0 bytes
 assets/images/ConsumerList.PNG                     |  Bin 51406 -> 0 bytes
 assets/images/Dashboard.PNG                        |  Bin 82572 -> 0 bytes
 assets/images/DockerDeployment.png                 |  Bin 68208 -> 0 bytes
 assets/images/DockerPackageAssembly.png            |  Bin 79706 -> 0 bytes
 assets/images/HealthCheck.png                      |  Bin 27349 -> 0 bytes
 assets/images/InstanceList.PNG                     |  Bin 52659 -> 0 bytes
 assets/images/K8S.png                              |  Bin 150042 -> 0 bytes
 assets/images/Mail.png                             |  Bin 351 -> 0 bytes
 assets/images/MetricsDependency.png                |  Bin 10323 -> 0 bytes
 assets/images/MetricsInGrafana.png                 |  Bin 108063 -> 0 bytes
 assets/images/MetricsInPrometheus.png              |  Bin 47642 -> 0 bytes
 assets/images/MetricsWriteFileResult.png           |  Bin 74432 -> 0 bytes
 assets/images/MicroserviceArch.png                 |  Bin 133917 -> 0 bytes
 assets/images/MonolithicArch.png                   |  Bin 112212 -> 0 bytes
 assets/images/OSI/OSI-Event-Glimpse.jpg            |  Bin 2102817 -> 0 bytes
 assets/images/OSI/OSI-Workshop-1.jpg               |  Bin 1284915 -> 0 bytes
 assets/images/OSI/Title.png                        |  Bin 178472 -> 0 bytes
 assets/images/OSI/Topics.png                       |  Bin 40781 -> 0 bytes
 assets/images/ProviderList.PNG                     |  Bin 47134 -> 0 bytes
 assets/images/QRcode.png                           |  Bin 77618 -> 0 bytes
 assets/images/Rss.png                              |  Bin 2558 -> 0 bytes
 assets/images/SchemaList.PNG                       |  Bin 59937 -> 0 bytes
 assets/images/SchemaView.PNG                       |  Bin 27108 -> 0 bytes
 assets/images/Schematest.PNG                       |  Bin 104363 -> 0 bytes
 assets/images/SelectInstance.PNG                   |  Bin 38459 -> 0 bytes
 assets/images/Service-Center-UI-Preview.gif        |  Bin 616202 -> 0 bytes
 assets/images/ServiceComb-logo-1.png               |  Bin 5654 -> 0 bytes
 assets/images/ServiceComb-logo-2.png               |  Bin 17582 -> 0 bytes
 assets/images/ServiceComb-logo-3.jpg               |  Bin 80000 -> 0 bytes
 assets/images/ServiceComb-logo.png                 |  Bin 6109 -> 0 bytes
 assets/images/ServiceCombBasic.png                 |  Bin 9778 -> 0 bytes
 assets/images/ServiceCombInK8S.png                 |  Bin 172082 -> 0 bytes
 assets/images/ServiceList.PNG                      |  Bin 85794 -> 0 bytes
 assets/images/SimpleDeployment.png                 |  Bin 19863 -> 0 bytes
 assets/images/TimeWindowComment.png                |  Bin 40476 -> 0 bytes
 assets/images/Twitter.png                          |  Bin 1102 -> 0 bytes
 assets/images/Users.png                            |  Bin 1156 -> 0 bytes
 assets/images/add-node.png                         |  Bin 60206 -> 0 bytes
 .../apache-developers-gathering-shanghai.jpg       |  Bin 103875 -> 0 bytes
 assets/images/api_manager.png                      |  Bin 47467 -> 0 bytes
 assets/images/becoming_committer/2FA_APP.png       |  Bin 5620 -> 0 bytes
 .../best_practices_for_legacy_system_reform.jpeg   |  Bin 24022 -> 0 bytes
 assets/images/bmi-interface.png                    |  Bin 57307 -> 0 bytes
 assets/images/booking-microservice-yaml.png        |  Bin 204660 -> 0 bytes
 assets/images/booking-start-success.png            |  Bin 145253 -> 0 bytes
 assets/images/case_mengtuo_new_mode.png            |  Bin 22686 -> 0 bytes
 .../case_mengtuo_reform_before_and_after.png       |  Bin 39806 -> 0 bytes
 assets/images/case_mengtuo_traditional_mode.png    |  Bin 24621 -> 0 bytes
 .../chuanzhiboke-servicecomb-tutoria-release.png   |  Bin 481333 -> 0 bytes
 assets/images/client/sc-client.jpg                 |  Bin 35721 -> 0 bytes
 assets/images/client/sc-sample-UI.png              |  Bin 14695 -> 0 bytes
 assets/images/client/sc-sample-consumer.png        |  Bin 6375 -> 0 bytes
 assets/images/client/sc-sample-provider.png        |  Bin 5405 -> 0 bytes
 assets/images/client_initialization.png            |  Bin 20471 -> 0 bytes
 assets/images/code-adjust.png                      |  Bin 234001 -> 0 bytes
 .../colleges_and_universities/BUPT/1.signup.jpg    |  Bin 49069 -> 0 bytes
 .../colleges_and_universities/BUPT/10.meeting.jpg  |  Bin 303514 -> 0 bytes
 .../colleges_and_universities/BUPT/2.signup.jpg    |  Bin 30118 -> 0 bytes
 .../colleges_and_universities/BUPT/3.answer.jpg    |  Bin 48194 -> 0 bytes
 .../colleges_and_universities/BUPT/4.answer.jpg    |  Bin 65375 -> 0 bytes
 .../colleges_and_universities/BUPT/5.enter.jpg     |  Bin 169365 -> 0 bytes
 .../colleges_and_universities/BUPT/6.meeting.jpg   |  Bin 277987 -> 0 bytes
 .../colleges_and_universities/BUPT/7.meeting.jpg   |  Bin 260656 -> 0 bytes
 .../colleges_and_universities/BUPT/8.meeting.jpg   |  Bin 229711 -> 0 bytes
 .../colleges_and_universities/BUPT/9.meeting.jpg   |  Bin 271468 -> 0 bytes
 .../colleges_and_universities/GDUT/answer1.jpg     |  Bin 1604342 -> 0 bytes
 .../colleges_and_universities/GDUT/answer2.png     |  Bin 1070212 -> 0 bytes
 .../colleges_and_universities/GDUT/mabin.jpg       |  Bin 1537495 -> 0 bytes
 .../colleges_and_universities/GDUT/meeting.png     |  Bin 1790331 -> 0 bytes
 .../images/colleges_and_universities/GDUT/zzp.jpg  |  Bin 1501311 -> 0 bytes
 assets/images/communication.PNG                    |  Bin 26597 -> 0 bytes
 assets/images/company-autoscale-1.png              |  Bin 9361 -> 0 bytes
 assets/images/company-autoscale-2.png              |  Bin 39000 -> 0 bytes
 assets/images/company-autoscale-3.png              |  Bin 45654 -> 0 bytes
 assets/images/company-autoscale-4.png              |  Bin 160122 -> 0 bytes
 assets/images/company-autoscale-5.png              |  Bin 35491 -> 0 bytes
 assets/images/company_concurrency_performance.png  |  Bin 10965 -> 0 bytes
 assets/images/company_cpu_load.png                 |  Bin 231156 -> 0 bytes
 .../images/company_different_log_memory_usage.png  |  Bin 322781 -> 0 bytes
 assets/images/company_log_and_jmeter.png           |  Bin 9743 -> 0 bytes
 assets/images/company_memory_used.png              |  Bin 132849 -> 0 bytes
 assets/images/company_response_time.png            |  Bin 49797 -> 0 bytes
 assets/images/company_test_plan.png                |  Bin 13497 -> 0 bytes
 assets/images/compile.png                          |  Bin 54298 -> 0 bytes
 assets/images/components.png                       |  Bin 23883 -> 0 bytes
 assets/images/config-file.png                      |  Bin 208021 -> 0 bytes
 assets/images/config/create_project.png            |  Bin 17864 -> 0 bytes
 assets/images/config/create_project2.png           |  Bin 17322 -> 0 bytes
 assets/images/config/login.png                     |  Bin 11412 -> 0 bytes
 assets/images/config/release_config.png            |  Bin 46912 -> 0 bytes
 assets/images/config/release_namespace.png         |  Bin 44073 -> 0 bytes
 assets/images/config/token.png                     |  Bin 26020 -> 0 bytes
 assets/images/create-group.png                     |  Bin 63841 -> 0 bytes
 assets/images/create-pr.jpg                        |  Bin 253892 -> 0 bytes
 assets/images/cucumber.jpg                         |  Bin 12965 -> 0 bytes
 assets/images/customer-microservice-yaml.png       |  Bin 225243 -> 0 bytes
 assets/images/customer-start-success.png           |  Bin 164254 -> 0 bytes
 assets/images/distributed-tracing-result.png       |  Bin 20091 -> 0 bytes
 .../images/docs/service-center/config-host-ip.jpg  |  Bin 160416 -> 0 bytes
 .../docs/service-center/registration&discovery.png |  Bin 17293 -> 0 bytes
 .../docs/service-center/service-center-why.png     |  Bin 32672 -> 0 bytes
 .../images/docs/service-center/service-center.jpg  |  Bin 66059 -> 0 bytes
 assets/images/docs/servicecomb/servicecomb.jpg     |  Bin 337179 -> 0 bytes
 assets/images/docs/syncer/account-server-reply.jpg |  Bin 198944 -> 0 bytes
 .../docs/syncer/eureka-account-server-success.jpg  |  Bin 90866 -> 0 bytes
 .../images/docs/syncer/eureka-server-has-all.jpg   |  Bin 75367 -> 0 bytes
 .../images/docs/syncer/eureka-server-success.jpg   |  Bin 63247 -> 0 bytes
 .../docs/syncer/hello-server-discovery-success.jpg |  Bin 126329 -> 0 bytes
 assets/images/docs/syncer/hello-server-result.jpg  |  Bin 44530 -> 0 bytes
 assets/images/docs/syncer/multi-servicecenters.png |  Bin 40141 -> 0 bytes
 .../syncer/service-center-hello-server-success.jpg |  Bin 72537 -> 0 bytes
 .../docs/syncer/service-center-server-has-all.jpg  |  Bin 63431 -> 0 bytes
 .../docs/syncer/service-center-server-success.jpg  |  Bin 66059 -> 0 bytes
 assets/images/dts1/image-Omega-Implementation.png  |  Bin 281595 -> 0 bytes
 .../images/dts1/image-distributed-transaction.png  |  Bin 62454 -> 0 bytes
 .../images/dts1/image-pack-system-archecture.png   |  Bin 154684 -> 0 bytes
 assets/images/dts1/image-pack.png                  |  Bin 37824 -> 0 bytes
 assets/images/dts1/image-saga.png                  |  Bin 67689 -> 0 bytes
 assets/images/dts1/image-tcc-cancel.png            |  Bin 65674 -> 0 bytes
 assets/images/dts1/image-tcc-confirm.png           |  Bin 62165 -> 0 bytes
 .../images/dts1/image-transactions-correlation.png |  Bin 35672 -> 0 bytes
 assets/images/dts2/image-tcc-cancel.png            |  Bin 65674 -> 0 bytes
 assets/images/dts2/image-tcc-confirm.png           |  Bin 62165 -> 0 bytes
 assets/images/dts2/image2-DT-introduction.png      |  Bin 53568 -> 0 bytes
 assets/images/dts2/image2-Tcc-cancel.png           |  Bin 96621 -> 0 bytes
 assets/images/dts2/image2-Tcc-confirm.png          |  Bin 88421 -> 0 bytes
 assets/images/dts2/image2-Tcc-exception.png        |  Bin 98410 -> 0 bytes
 assets/images/dts2/image2-Tcc-timeout-2.png        |  Bin 97569 -> 0 bytes
 assets/images/dts2/image2-Tcc-timeout.png          |  Bin 93795 -> 0 bytes
 assets/images/dts2/image2-Tcc-timeout2.png         |  Bin 100954 -> 0 bytes
 assets/images/dts2/image2-saga-exception.png       |  Bin 91260 -> 0 bytes
 assets/images/dts2/image2-saga-exception2.png      |  Bin 100679 -> 0 bytes
 assets/images/dts2/image2-saga-introduction.png    |  Bin 156754 -> 0 bytes
 assets/images/dts2/image2-saga-sq1.png             |  Bin 78767 -> 0 bytes
 assets/images/dts2/image2-saga-timeout-2.png       |  Bin 102380 -> 0 bytes
 assets/images/dts2/image2-saga-timeout.png         |  Bin 98727 -> 0 bytes
 assets/images/fibonaccitree.gif                    |  Bin 6671 -> 0 bytes
 assets/images/filter.png                           |  Bin 77889 -> 0 bytes
 assets/images/find-features-by-example.png         |  Bin 32917 -> 0 bytes
 assets/images/flow-control-result.png              |  Bin 52518 -> 0 bytes
 assets/images/fork-repo.jpg                        |  Bin 196174 -> 0 bytes
 assets/images/gitbox/apache-auth.png               |  Bin 21794 -> 0 bytes
 assets/images/gitbox/apache-post-auth.png          |  Bin 45778 -> 0 bytes
 assets/images/gitbox/apache-pre-auth.png           |  Bin 34160 -> 0 bytes
 assets/images/gitbox/github-2fa.png                |  Bin 26957 -> 0 bytes
 assets/images/gitbox/github-auth.png               |  Bin 24938 -> 0 bytes
 assets/images/gitbox/link-apache-github-id.png     |  Bin 14242 -> 0 bytes
 assets/images/github.png                           |  Bin 3200 -> 0 bytes
 assets/images/governance.png                       |  Bin 182536 -> 0 bytes
 assets/images/hc2018/1.jpeg                        |  Bin 96542 -> 0 bytes
 assets/images/hc2018/2.jpeg                        |  Bin 66569 -> 0 bytes
 assets/images/hc2018/3.jpeg                        |  Bin 47382 -> 0 bytes
 assets/images/hc2018/4.jpeg                        |  Bin 76497 -> 0 bytes
 assets/images/hc2018/5.jpeg                        |  Bin 50664 -> 0 bytes
 assets/images/hc2018/6.jpeg                        |  Bin 59197 -> 0 bytes
 assets/images/hc2018/7.jpeg                        |  Bin 107950 -> 0 bytes
 assets/images/hc2019/apache.jpg                    |  Bin 573121 -> 0 bytes
 assets/images/hc2019/efficiency.jpg                |  Bin 301847 -> 0 bytes
 assets/images/hc2019/incubation.jpg                |  Bin 337251 -> 0 bytes
 assets/images/hc2019/innovative.jpg                |  Bin 410155 -> 0 bytes
 assets/images/hc2019/introduction.jpg              |  Bin 377299 -> 0 bytes
 assets/images/hc2019/process.jpg                   |  Bin 379040 -> 0 bytes
 assets/images/hc2019/servicecomb.jpg               |  Bin 516515 -> 0 bytes
 assets/images/home-page.png                        |  Bin 1972853 -> 0 bytes
 assets/images/huaweicloud_dependencies.png         |  Bin 148652 -> 0 bytes
 assets/images/hybrid-arch.jpg                      |  Bin 22772 -> 0 bytes
 assets/images/hybrid-consumer-result.png           |  Bin 13916 -> 0 bytes
 assets/images/hybrid-mesher-process.jpg            |  Bin 17217 -> 0 bytes
 assets/images/hybrid-servicecenter-result.png      |  Bin 49970 -> 0 bytes
 assets/images/hybrid-sidecar-injector.jpg          |  Bin 19811 -> 0 bytes
 assets/images/image-upload-1.png                   |  Bin 88013 -> 0 bytes
 assets/images/image-upload-2.png                   |  Bin 98355 -> 0 bytes
 assets/images/import-project.png                   |  Bin 52237 -> 0 bytes
 assets/images/init-data.png                        |  Bin 585320 -> 0 bytes
 assets/images/intellij.code.style.1.png            |  Bin 45433 -> 0 bytes
 assets/images/intellij.code.style.2.png            |  Bin 8646 -> 0 bytes
 assets/images/intellij.code.style.3.png            |  Bin 5153 -> 0 bytes
 assets/images/intellij.code.style.4.png            |  Bin 4845 -> 0 bytes
 assets/images/intellij.code.style.5.png            |  Bin 11831 -> 0 bytes
 assets/images/issue.png                            |  Bin 38823 -> 0 bytes
 assets/images/jira/assist.png                      |  Bin 13574 -> 0 bytes
 assets/images/jira/create-issue.png                |  Bin 34511 -> 0 bytes
 assets/images/jira/jira-kanban.png                 |  Bin 112669 -> 0 bytes
 assets/images/jira/jira.board.png                  |  Bin 79408 -> 0 bytes
 assets/images/jira/jira.board.profile.png          |  Bin 13452 -> 0 bytes
 assets/images/jira/jira.board.selection.png        |  Bin 20183 -> 0 bytes
 assets/images/jira/jira.epic.png                   |  Bin 43065 -> 0 bytes
 assets/images/jira/jira.fix.version.png            |  Bin 60784 -> 0 bytes
 assets/images/jira/jira.good.first.issue.png       |  Bin 13552 -> 0 bytes
 assets/images/jira/jira.profile.png                |  Bin 14124 -> 0 bytes
 assets/images/jira/jira.signup.png                 |  Bin 47809 -> 0 bytes
 assets/images/jira/jira.status.update.png          |  Bin 97155 -> 0 bytes
 assets/images/jira/jira.story.assignment.png       |  Bin 55894 -> 0 bytes
 assets/images/jira/jira.story.png                  |  Bin 73380 -> 0 bytes
 assets/images/jira/pr.png                          |  Bin 82705 -> 0 bytes
 assets/images/jira/proposal-pack.png               |  Bin 13679 -> 0 bytes
 assets/images/jira/public.png                      |  Bin 17587 -> 0 bytes
 assets/images/jmeter-collector.png                 |  Bin 55774 -> 0 bytes
 assets/images/kanban.png                           |  Bin 85657 -> 0 bytes
 assets/images/kubernetes-company-cn.PNG            |  Bin 131640 -> 0 bytes
 assets/images/kubernetes-company.png               |  Bin 130256 -> 0 bytes
 assets/images/lc3-workshop/1.jpg                   |  Bin 134577 -> 0 bytes
 assets/images/lc3-workshop/10.jpg                  |  Bin 98890 -> 0 bytes
 assets/images/lc3-workshop/11.jpg                  |  Bin 3970424 -> 0 bytes
 assets/images/lc3-workshop/12.jpg                  |  Bin 81987 -> 0 bytes
 assets/images/lc3-workshop/13.jpg                  |  Bin 40138 -> 0 bytes
 assets/images/lc3-workshop/14.jpg                  |  Bin 103833 -> 0 bytes
 assets/images/lc3-workshop/15.jpg                  |  Bin 93202 -> 0 bytes
 assets/images/lc3-workshop/16.jpg                  |  Bin 124066 -> 0 bytes
 assets/images/lc3-workshop/2.jpg                   |  Bin 115214 -> 0 bytes
 assets/images/lc3-workshop/3.jpg                   |  Bin 116975 -> 0 bytes
 assets/images/lc3-workshop/4.jpg                   |  Bin 102449 -> 0 bytes
 assets/images/lc3-workshop/5.jpg                   |  Bin 5071954 -> 0 bytes
 assets/images/lc3-workshop/6.jpg                   |  Bin 129586 -> 0 bytes
 assets/images/lc3-workshop/7.jpg                   |  Bin 73699 -> 0 bytes
 assets/images/lc3-workshop/8.jpg                   |  Bin 68157 -> 0 bytes
 assets/images/lc3-workshop/9.jpg                   |  Bin 114938 -> 0 bytes
 assets/images/legacy_system_reform_strategy.jpeg   |  Bin 12452 -> 0 bytes
 assets/images/load-balance-result.png              |  Bin 56794 -> 0 bytes
 assets/images/local_develop_test.png               |  Bin 36062 -> 0 bytes
 assets/images/local_develop_test_en.png            |  Bin 20494 -> 0 bytes
 assets/images/login-gitter.PNG                     |  Bin 263969 -> 0 bytes
 assets/images/login-gitter1.PNG                    |  Bin 20445 -> 0 bytes
 assets/images/login-gitter2.PNG                    |  Bin 265187 -> 0 bytes
 assets/images/login-gitter3.PNG                    |  Bin 72881 -> 0 bytes
 assets/images/login-gitter4.PNG                    |  Bin 20680 -> 0 bytes
 ...age_springcloud_application_using_sc_and_gs.png |  Bin 16479 -> 0 bytes
 .../mesher/mesher-circuitbreaker-ret-nil.png       |  Bin 7302 -> 0 bytes
 assets/images/mesher/mesher-circuitbreaker-ret.png |  Bin 9028 -> 0 bytes
 assets/images/mesher/mesher-circuitbreaker.png     |  Bin 30583 -> 0 bytes
 assets/images/mesher/mesher-deployment-simple.png  |  Bin 51664 -> 0 bytes
 assets/images/mesher/mesher-deployment.png         |  Bin 78448 -> 0 bytes
 assets/images/mesher/mesher-flow-control-fail.png  |  Bin 6958 -> 0 bytes
 assets/images/mesher/mesher-flow-control-log.png   |  Bin 36063 -> 0 bytes
 assets/images/mesher/mesher-flowchart-simple.png   |  Bin 23925 -> 0 bytes
 assets/images/mesher/mesher-flowchart.png          |  Bin 26262 -> 0 bytes
 assets/images/mesher/mesher-intro.png              |  Bin 14916 -> 0 bytes
 assets/images/mesher/mesher-ser-manage-ver.png     |  Bin 16442 -> 0 bytes
 assets/images/mesher/mesher-servercenter.png       |  Bin 28075 -> 0 bytes
 assets/images/mesher/mesher-testgohttp.png         |  Bin 28156 -> 0 bytes
 assets/images/mesher/mesher-testinit.png           |  Bin 30550 -> 0 bytes
 assets/images/mesher/mesher-testpythonhttp.png     |  Bin 28040 -> 0 bytes
 assets/images/mesher/mesher-testpythonhttp2.png    |  Bin 31215 -> 0 bytes
 assets/images/mesher/mesher-tracing-30108.png      |  Bin 42437 -> 0 bytes
 assets/images/mesher/mesher-tracing-30111.png      |  Bin 48084 -> 0 bytes
 assets/images/mesher/mesher-tracing-func.png       |  Bin 30824 -> 0 bytes
 assets/images/metrics-output.png                   |  Bin 69354 -> 0 bytes
 assets/images/micro-service-design.png             |  Bin 73039 -> 0 bytes
 assets/images/micro-service-structure.PNG          |  Bin 134466 -> 0 bytes
 .../microservice_definition_by_martin_folwer.jpeg  |  Bin 35559 -> 0 bytes
 assets/images/microservice_reform_strategy.jpeg    |  Bin 25947 -> 0 bytes
 assets/images/new-pr.jpg                           |  Bin 117898 -> 0 bytes
 assets/images/onStartup.PNG                        |  Bin 28938 -> 0 bytes
 ...n-design-integrate-with-running-environment.png |  Bin 63190 -> 0 bytes
 assets/images/open-design-running-arch.png         |  Bin 124071 -> 0 bytes
 assets/images/open-design-third-party-plugin.png   |  Bin 79598 -> 0 bytes
 assets/images/pack/exception_scenario.png          |  Bin 114741 -> 0 bytes
 assets/images/pack/id_flow.png                     |  Bin 47939 -> 0 bytes
 assets/images/pack/omega_internal.png              |  Bin 23090 -> 0 bytes
 assets/images/pack/pack.png                        |  Bin 10227 -> 0 bytes
 assets/images/pack/successful_scenario.png         |  Bin 106122 -> 0 bytes
 assets/images/pack/timeout_scenario.png            |  Bin 102750 -> 0 bytes
 ...mance-test-on-seckill-with-jmeter-latencies.png |  Bin 44665 -> 0 bytes
 ...formance-test-on-seckill-with-jmeter-script.png |  Bin 66895 -> 0 bytes
 ...ance-test-on-seckill-with-jmeter-statistics.png |  Bin 38466 -> 0 bytes
 ...est-on-seckill-with-jmeter-time-percentiles.png |  Bin 19030 -> 0 bytes
 ...ormance-test-on-seckill-with-jmeter-tps-all.png |  Bin 42952 -> 0 bytes
 ...rmance-test-on-seckill-with-jmeter-tps-less.png |  Bin 35508 -> 0 bytes
 assets/images/pom-dependence.png                   |  Bin 268981 -> 0 bytes
 assets/images/pr.png                               |  Bin 82705 -> 0 bytes
 assets/images/progress.png                         |  Bin 63089 -> 0 bytes
 assets/images/proposed_architecture.png            |  Bin 25418 -> 0 bytes
 assets/images/quick-start-sample-workflow-en.png   |  Bin 16798 -> 0 bytes
 assets/images/quick-start-sample-workflow.png      |  Bin 20604 -> 0 bytes
 assets/images/rapid_development_framework.png      |  Bin 152219 -> 0 bytes
 assets/images/saga-demo.png                        |  Bin 17483 -> 0 bytes
 assets/images/saga.2pc.phase1.png                  |  Bin 45832 -> 0 bytes
 assets/images/saga.2pc.phase2.png                  |  Bin 42803 -> 0 bytes
 assets/images/saga.centralized.png                 |  Bin 39138 -> 0 bytes
 assets/images/saga.commutative.png                 |  Bin 25037 -> 0 bytes
 assets/images/saga.death.star.png                  |  Bin 391053 -> 0 bytes
 assets/images/saga.decentralized.png               |  Bin 23912 -> 0 bytes
 assets/images/saga.design.png                      |  Bin 43931 -> 0 bytes
 assets/images/saga.event.coupling.png              |  Bin 23660 -> 0 bytes
 assets/images/saga.event.driven.request.png        |  Bin 61206 -> 0 bytes
 assets/images/saga.event.driven.response.png       |  Bin 62796 -> 0 bytes
 assets/images/saga.events.png                      |  Bin 62501 -> 0 bytes
 assets/images/saga.graph.png                       |  Bin 20742 -> 0 bytes
 assets/images/saga.monolithic.png                  |  Bin 11933 -> 0 bytes
 assets/images/saga.service.boundary.png            |  Bin 21268 -> 0 bytes
 assets/images/saga.tcc.confirm.png                 |  Bin 46579 -> 0 bytes
 assets/images/saga.tcc.try.png                     |  Bin 44272 -> 0 bytes
 assets/images/saga.transactions.png                |  Bin 29722 -> 0 bytes
 assets/images/saga/Saga.001.jpeg                   |  Bin 319155 -> 0 bytes
 assets/images/saga/Saga.002.jpeg                   |  Bin 675865 -> 0 bytes
 assets/images/saga/Saga.003.jpeg                   |  Bin 246642 -> 0 bytes
 assets/images/saga/Saga.004.jpeg                   |  Bin 326993 -> 0 bytes
 assets/images/saga/Saga.005.jpeg                   |  Bin 293862 -> 0 bytes
 assets/images/saga/Saga.006.jpeg                   |  Bin 465302 -> 0 bytes
 assets/images/saga/Saga.007.jpeg                   |  Bin 409611 -> 0 bytes
 assets/images/saga/Saga.008.jpeg                   |  Bin 380229 -> 0 bytes
 assets/images/saga/Saga.009.jpeg                   |  Bin 352629 -> 0 bytes
 assets/images/saga/Saga.010.jpeg                   |  Bin 597661 -> 0 bytes
 assets/images/saga/Saga.011.jpeg                   |  Bin 326110 -> 0 bytes
 assets/images/saga/Saga.012.jpeg                   |  Bin 444034 -> 0 bytes
 assets/images/saga/Saga.013.jpeg                   |  Bin 616205 -> 0 bytes
 assets/images/saga/Saga.014.jpeg                   |  Bin 498739 -> 0 bytes
 assets/images/saga/Saga.015.jpeg                   |  Bin 427262 -> 0 bytes
 assets/images/saga/Saga.016.jpeg                   |  Bin 190895 -> 0 bytes
 assets/images/saga/Saga.017.jpeg                   |  Bin 350239 -> 0 bytes
 assets/images/saga/Saga.018.jpeg                   |  Bin 361280 -> 0 bytes
 assets/images/saga/Saga.019.jpeg                   |  Bin 521182 -> 0 bytes
 assets/images/saga/Saga.020.jpeg                   |  Bin 442858 -> 0 bytes
 assets/images/saga/Saga.021.jpeg                   |  Bin 388123 -> 0 bytes
 assets/images/saga/Saga.022.1.jpeg                 |  Bin 846565 -> 0 bytes
 assets/images/saga/Saga.022.2.jpeg                 |  Bin 928172 -> 0 bytes
 assets/images/saga/Saga.023.jpeg                   |  Bin 557129 -> 0 bytes
 assets/images/saga/Saga.024.jpeg                   |  Bin 382396 -> 0 bytes
 assets/images/saga/Saga.025.jpeg                   |  Bin 439982 -> 0 bytes
 assets/images/saga/Saga.026.jpeg                   |  Bin 402878 -> 0 bytes
 assets/images/saga/Saga.027.jpeg                   |  Bin 604510 -> 0 bytes
 assets/images/saga/Saga.028.jpeg                   |  Bin 539536 -> 0 bytes
 assets/images/saga/Saga.029.jpeg                   |  Bin 382007 -> 0 bytes
 assets/images/saga/Saga.030.jpeg                   |  Bin 369148 -> 0 bytes
 assets/images/saga/Saga.031.jpeg                   |  Bin 367758 -> 0 bytes
 assets/images/saga/Saga.032.jpeg                   |  Bin 426635 -> 0 bytes
 assets/images/saga/Saga.033.jpeg                   |  Bin 386171 -> 0 bytes
 assets/images/saga/Saga.034.jpeg                   |  Bin 489305 -> 0 bytes
 assets/images/saga/Saga.035.jpeg                   |  Bin 504637 -> 0 bytes
 assets/images/saga/Saga.036.jpeg                   |  Bin 705870 -> 0 bytes
 assets/images/saga/Saga.037.jpeg                   |  Bin 239481 -> 0 bytes
 assets/images/saga/Saga.038.jpeg                   |  Bin 424147 -> 0 bytes
 assets/images/saga/Saga.039.jpeg                   |  Bin 358646 -> 0 bytes
 assets/images/scaffold/ACL.png                     |  Bin 88182 -> 0 bytes
 assets/images/scaffold/ArchetypeProjects.png       |  Bin 105537 -> 0 bytes
 assets/images/scaffold/ArchetypesCreate.png        |  Bin 55622 -> 0 bytes
 assets/images/scaffold/AuthSuccess.png             |  Bin 100204 -> 0 bytes
 assets/images/scaffold/BoundedContext.png          |  Bin 81453 -> 0 bytes
 assets/images/scaffold/DirectInvoke.png            |  Bin 7713 -> 0 bytes
 assets/images/scaffold/EdgeAuth.png                |  Bin 31684 -> 0 bytes
 .../scaffold/EdgeOnlySupportConsumerHandler.png    |  Bin 14500 -> 0 bytes
 assets/images/scaffold/ErrorAuthHeader.png         |  Bin 106784 -> 0 bytes
 assets/images/scaffold/EventStorming.png           |  Bin 28699 -> 0 bytes
 assets/images/scaffold/EventStormingResult.png     |  Bin 210690 -> 0 bytes
 assets/images/scaffold/FilterChain.png             |  Bin 22932 -> 0 bytes
 assets/images/scaffold/InvokeViaEdge.png           |  Bin 19978 -> 0 bytes
 assets/images/scaffold/LoginFirst.png              |  Bin 108269 -> 0 bytes
 assets/images/scaffold/LoginViaEdge.png            |  Bin 108503 -> 0 bytes
 assets/images/scaffold/LogonViaEdge.png            |  Bin 99103 -> 0 bytes
 assets/images/scaffold/MicroserviceDesign1.png     |  Bin 2999 -> 0 bytes
 assets/images/scaffold/MicroserviceDesign2.png     |  Bin 6771 -> 0 bytes
 assets/images/scaffold/MicroserviceDesign3.png     |  Bin 16885 -> 0 bytes
 assets/images/scaffold/MicroserviceDesign4.png     |  Bin 22324 -> 0 bytes
 assets/images/scaffold/NoAuthHeader.png            |  Bin 104790 -> 0 bytes
 assets/images/scaffold/OutputHello.png             |  Bin 19140 -> 0 bytes
 assets/images/scaffold/PerformanceTestDeploy.png   |  Bin 9400 -> 0 bytes
 assets/images/scaffold/RBAC.png                    |  Bin 59287 -> 0 bytes
 assets/images/scaffold/Scaffold.jpg                |  Bin 59191 -> 0 bytes
 assets/images/scaffold/SpringInitializr.png        |  Bin 101642 -> 0 bytes
 assets/images/scaffold/StartServiceComb.io.png     |  Bin 75973 -> 0 bytes
 assets/images/scaffold/SystemComponents.png        |  Bin 22529 -> 0 bytes
 assets/images/scaffold/TestLogin.png               |  Bin 98681 -> 0 bytes
 assets/images/scaffold/TestLogon.png               |  Bin 88931 -> 0 bytes
 assets/images/scaffold/UserServiceInit.png         |  Bin 102862 -> 0 bytes
 assets/images/scaling.png                          |  Bin 65030 -> 0 bytes
 .../seckill-develop-course-part-I-arth-en.png      |  Bin 21909 -> 0 bytes
 .../images/seckill-develop-course-part-I-arth.png  |  Bin 23204 -> 0 bytes
 .../seckill-develop-course-part-I-command-en.png   |  Bin 25951 -> 0 bytes
 .../seckill-develop-course-part-I-command.png      |  Bin 25800 -> 0 bytes
 ...seckill-develop-course-part-I-query-coupons.png |  Bin 128161 -> 0 bytes
 ...ckill-develop-course-part-I-request-seckill.png |  Bin 124635 -> 0 bytes
 .../seckill-develop-course-part-I-spring.png       |  Bin 19061 -> 0 bytes
 .../seckill-develop-course-part-II-arth-en.png     |  Bin 34682 -> 0 bytes
 .../images/seckill-develop-course-part-II-arth.png |  Bin 34570 -> 0 bytes
 ...ill-develop-course-part-II-create-promotion.png |  Bin 114762 -> 0 bytes
 ...velop-course-part-II-query-active-promotion.png |  Bin 126713 -> 0 bytes
 ...evelop-course-part-II-reject-duplicate-grab.png |  Bin 127963 -> 0 bytes
 .../seckill-develop-course-part-III-arch-en.png    |  Bin 70177 -> 0 bytes
 .../seckill-develop-course-part-III-arch.png       |  Bin 72624 -> 0 bytes
 .../seckill-develop-course-part-III-cqrs.png       |  Bin 160103 -> 0 bytes
 ...-develop-course-part-III-seckill-all-in-one.png |  Bin 141258 -> 0 bytes
 assets/images/servcie-center.png                   |  Bin 23366 -> 0 bytes
 assets/images/service-center-start-success.png     |  Bin 104402 -> 0 bytes
 assets/images/service-consumer.png                 |  Bin 189249 -> 0 bytes
 assets/images/service-deploy.png                   |  Bin 300286 -> 0 bytes
 assets/images/service-management-result.png        |  Bin 47582 -> 0 bytes
 assets/images/service-monitor-1.png                |  Bin 101730 -> 0 bytes
 assets/images/service-monitor-2.png                |  Bin 63001 -> 0 bytes
 assets/images/service_registry.png                 |  Bin 132845 -> 0 bytes
 assets/images/servicecomb-banner-s.png             |  Bin 525078 -> 0 bytes
 .../images/servicecomb-feature-multiLanguage.png   |  Bin 8482 -> 0 bytes
 assets/images/servicecomb-feature-openapi.png      |  Bin 13126 -> 0 bytes
 assets/images/servicecomb-feature-quickstart.png   |  Bin 8668 -> 0 bytes
 assets/images/servicecomb-models.png               |  Bin 18771 -> 0 bytes
 assets/images/servicecomb-wechat-qrcode.jpg        |  Bin 52906 -> 0 bytes
 assets/images/servicecomb_mode_en.png              |  Bin 33217 -> 0 bytes
 assets/images/sign-up.png                          |  Bin 33557 -> 0 bytes
 assets/images/spring-demo.jpg                      |  Bin 25204 -> 0 bytes
 assets/images/start-booking.png                    |  Bin 238937 -> 0 bytes
 assets/images/start-customer.png                   |  Bin 193084 -> 0 bytes
 assets/images/start-website.png                    |  Bin 149814 -> 0 bytes
 .../submit-issues/find-issues-by-example.png       |  Bin 40730 -> 0 bytes
 .../images/submit-issues/find-issues-comment.png   |  Bin 114798 -> 0 bytes
 assets/images/submit-issues/find-issues-write.png  |  Bin 45753 -> 0 bytes
 assets/images/subscribe-mail-list-step1.png        |  Bin 8831 -> 0 bytes
 assets/images/subscribe-mail-list-step2.png        |  Bin 65335 -> 0 bytes
 assets/images/subscribe-mail-list-step3.png        |  Bin 48503 -> 0 bytes
 assets/images/subscribe-mail-list-step4.png        |  Bin 57022 -> 0 bytes
 assets/images/summer2020/summer2020_detail.png     |  Bin 59001 -> 0 bytes
 .../images/summer2020/summer2020_introduction.png  |  Bin 485781 -> 0 bytes
 assets/images/task.png                             |  Bin 31168 -> 0 bytes
 assets/images/tcc-trans.png                        |  Bin 340551 -> 0 bytes
 assets/images/thread-model-en.png                  |  Bin 28527 -> 0 bytes
 assets/images/thread-model.png                     |  Bin 50478 -> 0 bytes
 assets/images/tracing.1.png                        |  Bin 18510 -> 0 bytes
 assets/images/tracing.2.png                        |  Bin 22816 -> 0 bytes
 assets/images/tracing.3.png                        |  Bin 17477 -> 0 bytes
 assets/images/tracing.4.png                        |  Bin 23750 -> 0 bytes
 assets/images/tracing.5.png                        |  Bin 17049 -> 0 bytes
 assets/images/website-microservice-yaml.png        |  Bin 193079 -> 0 bytes
 assets/images/why_microservice_show_up.jpeg        |  Bin 32684 -> 0 bytes
 assets/images/workshop-company-structure.png       |  Bin 44646 -> 0 bytes
 assets/images/workshop-spring-starter.png          |  Bin 43372 -> 0 bytes
 assets/images/zipkin/demo-bmi-run-error.png        |  Bin 30764 -> 0 bytes
 assets/images/zipkin/demo-bmi-run.png              |  Bin 33940 -> 0 bytes
 assets/images/zipkin/error-message.png             |  Bin 8615 -> 0 bytes
 .../images/zipkin/zipkin-customized-track-bmi.png  |  Bin 25986 -> 0 bytes
 assets/images/zipkin/zipkin-track-bmi-error.png    |  Bin 20772 -> 0 bytes
 assets/images/zipkin/zipkin-track-bmi.png          |  Bin 12027 -> 0 bytes
 assets/images/zipkin/zipkin-track-span.png         |  Bin 23570 -> 0 bytes
 assets/images/zuul/demo-dir.png                    |  Bin 36874 -> 0 bytes
 assets/images/zuul/demo-helloservice-start.png     |  Bin 17393 -> 0 bytes
 assets/images/zuul/demo-run.png                    |  Bin 6726 -> 0 bytes
 assets/images/zuul/demo-servicecenter-console1.png |  Bin 2720 -> 0 bytes
 assets/images/zuul/demo-servicecenter-console2.png |  Bin 5976 -> 0 bytes
 assets/images/zuul/demo-theory.png                 |  Bin 22188 -> 0 bytes
 assets/images/zuul/demo-zuulservice-start.jpg      |  Bin 9933 -> 0 bytes
 assets/js/_main.js                                 |   78 -
 assets/js/custom.js                                |    8 -
 assets/js/main.min.js                              |   13 -
 assets/js/plugins/jquery.fitvids.js                |   82 -
 assets/js/plugins/jquery.greedy-navigation.js      |   78 -
 assets/js/plugins/jquery.magnific-popup.js         | 2049 ---------------
 assets/js/plugins/jquery.smooth-scroll.min.js      |    8 -
 .../slides/20170619/LinuxCon-Workshop-company.pdf  |  Bin 2199135 -> 0 bytes
 assets/slides/20170619/MSAPrinciple&EcoSystem.pdf  |  Bin 6968425 -> 0 bytes
 assets/slides/20170619/ServiceCombIntroduction.pdf |  Bin 3367260 -> 0 bytes
 assets/slides/20170619/ServiceCombRoadMap.pdf      |  Bin 471515 -> 0 bytes
 .../slides/20171026/ServiceCombIntroduce1026.pdf   |  Bin 1322666 -> 0 bytes
 .../slides/20171102/ServiceComb_PastAndPresent.pdf |  Bin 1522795 -> 0 bytes
 ...ticeOfHuaweiConsumerCloudBasedOnServiceComb.pdf |  Bin 1456205 -> 0 bytes
 .../20171124/LiveCodingServiceCombQuickStart.zip   |  Bin 191093 -> 0 bytes
 .../slides/20171207/Uncover_ServiceComb_Design.pdf |  Bin 851729 -> 0 bytes
 .../PracticeOfServiceMeshOnHuaweiPublicCloud.pdf   |  Bin 4580129 -> 0 bytes
 assets/slides/20171221/data.consistency.live.pdf   |  Bin 4486355 -> 0 bytes
 .../20180111/ServiceComb_Metrics_Introduction.pdf  |  Bin 961428 -> 0 bytes
 .../20180125/Service_Center_Introduction.pdf       |  Bin 876823 -> 0 bytes
 assets/slides/20180127/ServiceComb_Overview.pdf    |  Bin 1607557 -> 0 bytes
 .../Communications_Inside_Java_Chassis.pdf         |  Bin 2323621 -> 0 bytes
 ...che_ServiceComb_using_Apache_Skywalking_APM.pdf |  Bin 2985574 -> 0 bytes
 assets/slides/20180322/ServiceComb-OSCAR.pdf       |  Bin 4192319 -> 0 bytes
 .../20180421/Introduction_to_ServiceComb.pdf       |  Bin 684862 -> 0 bytes
 assets/slides/20180422/QConBeijing2018-Saga.pdf    |  Bin 2912841 -> 0 bytes
 assets/slides/20180627/1_How_Apache_works_jb.pdf   |  Bin 2004826 -> 0 bytes
 .../2_ServiceComb-introduction-jiangning.pdf       |  Bin 898638 -> 0 bytes
 ...rviced_Based_on_ServiceComb_from_iSoftStone.pdf |  Bin 1145259 -> 0 bytes
 .../slides/20180627/4_Java_sdk_details_wujimin.pdf |  Bin 1210729 -> 0 bytes
 ...rvices_from_Huawei_Consumer_Cloud_lilinfeng.pdf |  Bin 1202574 -> 0 bytes
 .../20180627/6_DDD_in_Microservics_wanglei.pdf     |  Bin 1931297 -> 0 bytes
 ..._Consistency_Solution_from_ServiceComb-Saga.pdf |  Bin 2491895 -> 0 bytes
 ...8_Thinking_about_ServiceMesh_in_ServiceComb.pdf |  Bin 1628684 -> 0 bytes
 assets/slides/20181012/1_The_Apache_Way.pdf        |  Bin 6573795 -> 0 bytes
 ...cheServiceComb(Incubating)Community_Roadmap.pdf |  Bin 8510739 -> 0 bytes
 ...d_Those_Based_on_a_Traditional_Architecture.pdf |  Bin 12453400 -> 0 bytes
 ...b\342\200\231s_Exploration_of_Service_Mesh.pdf" |  Bin 8892696 -> 0 bytes
 .../20181012/5_My_Participation_in_ServiceComb.pdf |  Bin 2383244 -> 0 bytes
 ...Experience_on_Fast_Microservice_Programming.pdf |  Bin 2804264 -> 0 bytes
 assets/slides/20181012/EN/1_The_Apache_Way.pdf     |    1 -
 ...cheServiceComb(Incubating)Community_Roadmap.pdf |  Bin 8339351 -> 0 bytes
 ...d_Those_Based_on_a_Traditional_Architecture.pdf |  Bin 12330512 -> 0 bytes
 ...b\342\200\231s_Exploration_of_Service_Mesh.pdf" |  Bin 8723055 -> 0 bytes
 .../EN/5_My_Participation_in_ServiceComb.pdf       |  Bin 2335160 -> 0 bytes
 ...Experience_on_Fast_Microservice_Programming.pdf |  Bin 2680240 -> 0 bytes
 .../1_ApacheServiceComb_Community_Introduction.pdf |  Bin 2998566 -> 0 bytes
 .../20190624/1_ServiceComb_Opensource_Way.pdf      |  Bin 3269465 -> 0 bytes
 .../20190624/2_NTTDATA_Microservice_Practices.pdf  |  Bin 2357118 -> 0 bytes
 .../3_Enterprise_PaaS_Microservice_Pratices.pdf    |  Bin 3588282 -> 0 bytes
 .../20190624/4_Innovation_New_Project_Release.pdf  |  Bin 3099495 -> 0 bytes
 ...dingSphere_Distributed_Transaction_Solution.pdf |  Bin 4378680 -> 0 bytes
 ...Microservice_High_Performance_Communication.pdf |  Bin 1652676 -> 0 bytes
 ...Cloud_Distributed_Transaction_DTM_Practices.pdf |  Bin 3255228 -> 0 bytes
 ...Apache_ServiceComb-Innovative_Microservices.pdf |  Bin 1301002 -> 0 bytes
 ...Apache_ServiceComb-Innovative_Microservices.pdf |  Bin 1183552 -> 0 bytes
 ...ervice_Tool_Improves_Development_Efficiency.pdf |  Bin 814514 -> 0 bytes
 assets/slides/20190920/EN/The_Apache_Way_En.pdf    |  Bin 4722734 -> 0 bytes
 ...ervice_Tool_Improves_Development_Efficiency.pdf |  Bin 1610634 -> 0 bytes
 assets/slides/20190920/The_Apache_Way_En.pdf       |  Bin 5130050 -> 0 bytes
 .../2.Apache_ServiceComb_builds_online_store.pdf   |  Bin 1535268 -> 0 bytes
 assets/slides/20191120/Apache_ServiceComb.pdf      |  Bin 2013045 -> 0 bytes
 .../20191211/A_day_of_open_source_developer.pdf    |  Bin 2114600 -> 0 bytes
 ...rchitecture_and_Apache_serviceComb_practice.pdf |  Bin 2135764 -> 0 bytes
 assets/vendor/font-awesome/FontAwesome.otf         |  Bin 134808 -> 0 bytes
 assets/vendor/font-awesome/fontawesome-webfont.eot |  Bin 165742 -> 0 bytes
 assets/vendor/font-awesome/fontawesome-webfont.svg | 2671 --------------------
 assets/vendor/font-awesome/fontawesome-webfont.ttf |  Bin 165548 -> 0 bytes
 .../vendor/font-awesome/fontawesome-webfont.woff   |  Bin 98024 -> 0 bytes
 .../vendor/font-awesome/fontawesome-webfont.woff2  |  Bin 77160 -> 0 bytes
 assets/vendor/prism/prism.css                      |  367 ---
 assets/vendor/prism/prism.js                       |   24 -
 banner.js                                          |   21 -
 licenses/LICENSE-fitvids                           |   13 -
 licenses/LICENSE-font-awesome                      |   34 -
 licenses/LICENSE-greedynav                         |   22 -
 licenses/LICENSE-jekyll-group-by-array             |   22 -
 licenses/LICENSE-jquery-smooth-scroll              |   20 -
 licenses/LICENSE-magnific-popup                    |   20 -
 licenses/LICENSE-minimal-mistakes                  |   63 -
 licenses/LICENSE-prism                             |   21 -
 licenses/LICENSE-susy                              |   28 -
 script/bootstrap                                   |   14 -
 script/deploy                                      |   10 -
 script/release                                     |    7 -
 script/start-server                                |    4 -
 979 files changed, 1 insertion(+), 55423 deletions(-)

diff --git a/CNAME b/CNAME
deleted file mode 100644
index 115fa88..0000000
--- a/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-servicecomb.io
\ No newline at end of file
diff --git a/DISCLAIMER b/DISCLAIMER
deleted file mode 100644
index 2e9ded2..0000000
--- a/DISCLAIMER
+++ /dev/null
@@ -1 +0,0 @@
-Apache ServiceComb(incubating)is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that  [...]
diff --git a/Gemfile b/Gemfile
deleted file mode 100644
index eb2c849..0000000
--- a/Gemfile
+++ /dev/null
@@ -1,14 +0,0 @@
-source "https://rubygems.org"
-
-gem "github-pages", group: :jekyll_plugins
-
-gem "wdm", "~> 0.1.0" if Gem.win_platform?
-
-# If you have any plugins, put them here!
-group :jekyll_plugins do
-   gem "jekyll-paginate"
-   gem "jekyll-sitemap"
-   gem "jekyll-gist"
-   gem "jekyll-feed"
-   gem "jemoji"
-end
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index aad9cbf..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,295 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-=======================================================================
-Apache ServiceComb Website Subcomponents:
-
-The Apache ServiceComb Website project contains subcomponents with
-seperate copyright notices and license terms. Your use of the source code
-for the these subcomponents is subject to the terms and conditions of the
-following licenses.
-
-
-=======================================================================
-For minimal mistakes(the based theme of this website):
-=======================================================================
-This product bundles `minimal mistakes` which is licensed under the
-MIT License.
-For details, see https://github.com/mmistakes/minimal-mistakes
-You can find a copy of the License at licenses/LICENSE-minimal-mistakes
-
-=======================================================================
-For assets/vendor/prism:
-=======================================================================
-This product bundles `prism` which is licensed under the
-MIT License.
-For details, see https://github.com/PrismJS/prism
-You can find a copy of the License at licenses/LICENSE-prism
-
-=======================================================================
-For assets/vendor/font-awesome and
-_sass/minimal-mistakes/vendor/font-awesome:
-=======================================================================
-This product bundles `Font-awesome` fonts which is licensed under the
-SIL Open Font License (OFL) 1.1
-For details, see http://fontawesome.io/
-You can find a copy of the License at licenses/LICENSE-font-awesome
-
-=======================================================================
-For _sass/minimal-mistakes/vendor/breakpoint:
-=======================================================================
-This product bundles 'breakpoint' which is licensed under the MIT/GPL
-License.
-For details, see https://github.com/at-import/breakpoint
-You can find a copy of the License at
-MIT license: http://www.opensource.org/licenses/mit-license.php
-GPL2 license: http://www.gnu.org/licenses/gpl-2.0.html
-
-=======================================================================
-For _sass/minimal-mistakes/vendor/magnific-popup and
-assets/js/plugins/jquery.magnific-popup.js:
-=======================================================================
-This product bundles `magnific popup` which is licensed under the
-MIT License.
-For details, see https://github.com/dimsemenov/Magnific-Popup
-You can find a copy of the License at licenses/LICENSE-magnific-popup
-
-=======================================================================
-For _sass/minimal-mistakes/vendor/susy:
-=======================================================================
-This product bundles `magnific popup` which is licensed under the BSD
-3-Clause License.
-For details, see https://github.com/oddbird/susy
-You can find a copy of the License at licenses/LICENSE-susy
-
-=======================================================================
-For assets/js/plugins/jquery.fitvids.js:
-=======================================================================
-This product bundles "fitvids" which is licensed under the the WTFPL
-License.
-For details, see https://github.com/davatron5000/FitVids.js
-You can find a copy of the License at licenses/LICENSE-fitvids
-
-=======================================================================
-For assets/js/plugins/jquery.greedy-navigation.js:
-=======================================================================
-This product bundles "greedy navigation" which is licensed under the
-MIT License.
-For details, see https://github.com/lukejacksonn/GreedyNav
-You can find a copy of the License at licenses/LICENSE-greedynav
-
-=======================================================================
-For assets/js/plugins/jquery.smooth-scroll.min.js:
-=======================================================================
-This product bundles "smooth scroll" which is licensed under the
-MIT License.
-For details, see https://github.com/kswedberg/jquery-smooth-scroll
-You can find a copy of the License at licenses/LICENSE-jquery-smooth-scroll
-
-=======================================================================
-For _includes/group-by-array:
-=======================================================================
-This product bundles "group-by-array" which is licensed under the
-MIT License.
-For details, see https://github.com/mushishi78/jekyll-group-by-array
-You can find a copy of the License at licenses/LICENSE-jquery-group-by-array
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index dfbbc71..0000000
--- a/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache ServiceComb Website
-Copyright 2017-2018 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
diff --git a/README.md b/README.md
index fd1f5ef..239e50c 100644
--- a/README.md
+++ b/README.md
@@ -1,93 +1,3 @@
 # ServiceComb Website
-The Web Site of ServiceComb is based on [Minimal Mistakes Jekyll Theme](https://mmistakes.github.io/minimal-mistakes/).
 
-# NOTE for PR
-As this website is using the [gitpubsub](https://www.apache.org/dev/project-site.html) and we use Jekyll to generate the site.
-We choose master branch to hold all the site source change and asf-site for apache gitpubsub.
-Please sent your PR to the master branch instead of asf-site.
-
-# How to run the site locally   
-*  Change to non-root user  
-
-*  Install [Ruby](https://www.ruby-lang.org/en/downloads/) and [Gem](https://rubygems.org/)   
-
-*  Install Jekyll and Bundler   
-
-   `sudo gem install jekyll bundler`  
-
-*  Clone the site files
-
-   `git clone https://github.com/apache/incubator-servicecomb-website.git`
-
-* cd incubator-servicecomb-website
-
-*  Install the gems with bundle
-
-   `sudo bundle install`
-
-*  Start the jekyll server
-
-   `sudo bundle exec jekyll server`
-
-*  Start web browser to access `http://localhost:4000` 
-
-# How to push the change to apache website
-
-* Switch to asf-site branch
-
-  `git checkout asf-site`
-  
-* Merge the changes of master branch
-
-  `git merge master`
-  
-* Generate the website static pages
-
-  `bundle exec jekyll build`
-  
-* Commit the changes into git repo
-
-  `git add content `
-  `git commit -m "publish website"`
-
-**Note that tested versions of the tools covered in this section are as following,**    
-
-*  Ruby 2.3  
-*  Gem 2.7.6   
-*  Bundler 2.3   
-
-# Multiple language support
-The website supports English now and English is used as the default language.
-
-Things to be **cautious**:
-
-There are two language labels: *en* and *cn*.
-
-1. When you write a post, add the following front matters under the title(if you write an Chinese post):
-   ```yml
-   lang: cn
-   ref: unique_post_ref_just_like_the_url
-   ```
-   And remember to add the prefix **/cn** to your permalink, e.g.
-   before:
-   ```yml
-   permalink: /about/me/
-   ```
-   after:    
-   ```yml
-   permalink: /cn/about/me/
-   ```
-   Besides, if contents of your post contains links to the Chinese version of pages, remember to add the
-   prefix **/cn** before the link. e.g. */about/community/* becomes */cn/about/community/*
-   *Notes*: English Posts do not need to add any prefixes as it's the default language.
-2. When you add items in *_data/navigation.yml* file, remember to add both English and Chinese version of that links.
-3. If you want to provide both English and Chinese versions of your *bio* in your blogs, add *biocn* property in *_data/authors.yml*.
-4. Posts of Chinese Language please put under the *cn* folder. It is just a good convention and won't affect what your posts suppose to be whether or not you obey this rule.
-
-# Add caption to image
-Add the annotation `{: .figure-caption}` below the *Image Caption* line as follows:
-```markdown
-![image alt text](image_path)
-Image Caption
-{: .figure-caption}
-```
+This branch hosts the compiled website contents of ServiceComb. See `master` branch for details.
\ No newline at end of file
diff --git a/Rakefile b/Rakefile
deleted file mode 100644
index e50d89f..0000000
--- a/Rakefile
+++ /dev/null
@@ -1,75 +0,0 @@
-require "bundler/gem_tasks"
-require "jekyll"
-require "listen"
-
-def listen_ignore_paths(base, options)
-  [
-    /_config\.ya?ml/,
-    /_site/,
-    /\.jekyll-metadata/
-  ]
-end
-
-def listen_handler(base, options)
-  site = Jekyll::Site.new(options)
-  Jekyll::Command.process_site(site)
-  proc do |modified, added, removed|
-    t = Time.now
-    c = modified + added + removed
-    n = c.length
-    relative_paths = c.map{ |p| Pathname.new(p).relative_path_from(base).to_s }
-    print Jekyll.logger.message("Regenerating:", "#{relative_paths.join(", ")} changed... ")
-    begin
-      Jekyll::Command.process_site(site)
-      puts "regenerated in #{Time.now - t} seconds."
-    rescue => e
-      puts "error:"
-      Jekyll.logger.warn "Error:", e.message
-      Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information."
-    end
-  end
-end
-
-task :preview do
-  base = Pathname.new('.').expand_path
-  options = {
-    "source"        => base.join('test').to_s,
-    "destination"   => base.join('test/_site').to_s,
-    "force_polling" => false,
-    "serving"       => true,
-    "theme"         => "minimal-mistakes-jekyll"
-  }
-
-  options = Jekyll.configuration(options)
-
-  ENV["LISTEN_GEM_DEBUGGING"] = "1"
-  listener = Listen.to(
-    base.join("_includes"),
-    base.join("_layouts"),
-    base.join("_sass"),
-    base.join("assets"),
-    options["source"],
-    :ignore => listen_ignore_paths(base, options),
-    :force_polling => options['force_polling'],
-    &(listen_handler(base, options))
-  )
-
-  begin
-    listener.start
-    Jekyll.logger.info "Auto-regeneration:", "enabled for '#{options["source"]}'"
-
-    unless options['serving']
-      trap("INT") do
-        listener.stop
-        puts "     Halting auto-regeneration."
-        exit 0
-      end
-
-      loop { sleep 1000 }
-    end
-  rescue ThreadError
-    # You pressed Ctrl-C, oh my!
-  end
-
-  Jekyll::Commands::Serve.process(options)
-end
diff --git a/_config.yml b/_config.yml
deleted file mode 100644
index 76b26f3..0000000
--- a/_config.yml
+++ /dev/null
@@ -1,332 +0,0 @@
-# Welcome to Jekyll!
-#
-# This config file is meant for settings that affect your entire site, values
-# which you are expected to set up once and rarely need to edit after that.
-# For technical reasons, this file is *NOT* reloaded automatically when you use
-# `jekyll serve`. If you change this file, please restart the server process.
-
-# Site Settings
-locale                   : "en"
-title                    : "Apache ServiceComb"
-title_separator          : "-"
-name                     : "Apache ServiceComb" # &name is a YAML anchor which can be *referenced later
-description              : "The homepage of ServiceComb"
-url                      :
-baseurl                  : # the subpath of your site, e.g. "/blog"
-destination              : content
-repository               : "apache/incubator-servicecomb-website"
-teaser                   : # path of fallback teaser image, e.g. "/assets/images/500x300.png"
-# breadcrumbs            : false # true, false (default)
-words_per_minute         : 200
-comments:
-  provider               : "staticman" # false (default), "disqus", "discourse", "facebook", "google-plus", "staticman", "custom"
-  disqus:
-    shortname            :
-  discourse:
-    server               : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org
-  facebook:
-    # https://developers.facebook.com/docs/plugins/comments
-    appid                :
-    num_posts            : # 5 (default)
-    colorscheme          : # "light" (default), "dark"
-staticman:
-  allowedFields          : ['name', 'email', 'url', 'message']
-  branch                 : "master"
-  commitMessage          : "New comment."
-  filename               : comment-{@timestamp}
-  format                 : "yml"
-  moderation             : true
-  path                   : "_data/comments/{options.slug}"
-  requiredFields         : ['name', 'email', 'message']
-  transforms:
-    email                : "md5"
-  generatedFields:
-    date:
-      type               : "date"
-      options:
-        format           : "iso8601" # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds"
-atom_feed:
-  path                   : # blank (default) uses feed.xml
-
-# SEO Related
-google_site_verification : "HvJjNd7vvJ-yjSTHlBiIWEYxp_Hrz-PYEY5Idz9LRcA"
-bing_site_verification   :
-alexa_site_verification  :
-yandex_site_verification :
-
-# Social Sharing
-twitter:
-  username               : ServiceComb
-facebook:
-  username               :
-  app_id                 :
-  publisher              :
-og_image                 :  # Open Graph/Twitter default site image
-# For specifying social profiles, used in _includes/seo.html
-# - https://developers.google.com/structured-data/customize/social-profiles
-social:
-  type                   : # Person or Organization (defaults to Person)
-  name                   : # If the user or organization name differs from the site's name
-  links: # An array of links to social media profiles
-
-
-# Analytics
-analytics:
-  provider               : "google-universal" # false (default), "google", "google-universal", "custom"
-  google:
-    tracking_id          : UA-101622733-1
-
-
-# Site Author
-author:
-  name             : *name # *name is a YAML reference pointing to the &anchor earlier
-  avatar           : "/assets/images/ServiceComb-logo-3.jpg"
-  bio              : "ServiceComb is a microservice framework that provides service registration, discovery, configuration and management utilities."
-  biocn            : "ServiceComb提供了一套关于服务注册,服务发现,服务配置以及管理功能的微服务框架"
-  location         : "China"
-  locationcn       : "中国"
-  email            : dev@servicecomb.apache.org
-  uri              :
-  bitbucket        :
-  codepen          :
-  dribbble         :
-  flickr           :
-  facebook         :
-  foursquare       :
-  github           : ServiceComb
-  google_plus      :
-  keybase          :
-  instagram        :
-  lastfm           :
-  linkedin         :
-  pinterest        :
-  soundcloud       :
-  stackoverflow    : # http://stackoverflow.com/users/123456/username
-  steam            :
-  tumblr           :
-  twitter          :
-  vine             :
-  weibo            :
-  xing             :
-  youtube          :
-
-
-# Reading Files
-include:
-  - .htaccess
-  - _pages
-  - _developers
-  - _docs
-  - _users
-  - _faqs
-  - _release
-exclude:
-  - "*.sublime-project"
-  - "*.sublime-workspace"
-  - vendor
-  - .asset-cache
-  - .bundle
-  - .jekyll-assets-cache
-  - .sass-cache
-  - assets/js/plugins
-  - assets/js/_main.js
-  - assets/js/vendor
-  - Capfile
-  - CHANGELOG
-  - config
-  - Gemfile
-  - Gruntfile.js
-  - gulpfile.js
-  - LICENSE
-  - log
-  - node_modules
-  - package.json
-  - Rakefile
-  - README
-  - tmp
-keep_files:
-  - .git
-  - .svn
-encoding: "utf-8"
-markdown_ext: "markdown,mkdown,mkdn,mkd,md"
-
-
-# Conversion
-markdown: kramdown
-highlighter: rouge
-lsi: false
-excerpt_separator: "\n\n"
-incremental: false
-
-
-# Markdown Processing
-kramdown:
-  input: GFM
-  hard_wrap: false
-  auto_ids: true
-  footnote_nr: 1
-  entity_output: as_char
-  toc_levels: 1..3
-  smart_quotes: lsquo,rsquo,ldquo,rdquo
-  enable_coderay: false
-
-
-# Collections
-#collections:
-#  users:
-#    output: true
-#    permalink: /:collection/:path/
-
-# Defaults
-defaults:
-  # _posts
-  - scope:
-      path: ""
-      type: posts
-    values:
-      layout: single
-      author_profile: true
-      read_time: true
-      comments: true
-      share: true
-      related: true
-      is_post: true
-  # _pages
-  - scope:
-      path: "_pages"
-      type: pages
-    values:
-      layout: single
-      author_profile: false
-  # _about
-  - scope:
-      path: ""
-      type: pages
-    values:
-      layout: single
-      author_profile: false
-      sidebar:
-        nav: "about"
-  # _developers
-  - scope:
-      path: ""
-      type: pages
-    values:
-      layout: single
-      author_profile: false
-      sidebar:
-        nav: "developers"
-  # _users
-  - scope:
-      path: "_users"
-      type: pages
-    values:
-      layout: single
-      read_time: false
-      author_profile: false
-      share: false
-      comments: false
-      sidebar:
-        nav: "users"
-  # _docs
-  - scope:
-      path: "_docs"
-      type: pages
-    values:
-      layout: single
-      read_time: false
-      author_profile: false
-      share: false
-      comments: false
-      sidebar:
-        nav: "docs"
-  # _release
-  - scope:
-      path: "_release"
-      type: pages
-    values:
-      layout: single
-      read_time: false
-      author_profile: false
-      share: false
-      comments: false
-      sidebar:
-        nav: "release"
-  # _faqs
-  - scope:
-      path: "_faqs"
-      type: pages
-    values:
-      layout: single
-      read_time: false
-      author_profile: false
-      share: false
-      comments: false
-      sidebar:
-        nav: "faqs"
-
-# Sass/SCSS
-sass:
-  sass_dir: _sass
-  style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style
-
-
-# Outputting
-permalink: /:categories/:title/
-paginate: 5 # amount of posts to show
-paginate_path: /page:num/
-timezone: # http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
-
-
-# Plugins
-plugins:
-  - jekyll-paginate
-  - jekyll-sitemap
-  - jekyll-gist
-  - jekyll-feed
-  - jemoji
-
-# mimic GitHub Pages with --safe
-whitelist:
-  - jekyll-paginate
-  - jekyll-sitemap
-  - jekyll-gist
-  - jekyll-feed
-  - jemoji
-
-
-# Archives
-#  Type
-#  - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default)
-#  - Jekyll Archives plugin archive pages ~> type: jekyll-archives
-#  Path (examples)
-#  - Archive page should exist at path when using Liquid method or you can
-#    expect broken links (especially with breadcrumbs enabled)
-#  - <base_path>/tags/my-awesome-tag/index.html ~> path: /tags/
-#  - <base_path/categories/my-awesome-category/index.html ~> path: /categories/
-#  - <base_path/my-awesome-category/index.html ~> path: /
-category_archive:
-  type: liquid
-  path: /categories/
-tag_archive:
-  type: liquid
-  path: /tags/
-# https://github.com/jekyll/jekyll-archives
-# jekyll-archives:
-#   enabled:
-#     - categories
-#     - tags
-#   layouts:
-#     category: archive-taxonomy
-#     tag: archive-taxonomy
-#   permalinks:
-#     category: /categories/:name/
-#     tag: /tags/:name/
-
-
-# HTML Compression
-# - http://jch.penibelst.de/
-compress_html:
-  clippings: all
-  ignore:
-    envs: development
diff --git a/_data/authors.yml b/_data/authors.yml
deleted file mode 100755
index b8787b6..0000000
--- a/_data/authors.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-Sean Yin:
-  name: "Sean Yin"
-  uri: "http://seanyinx.github.io"
-  email: "seanyinx@gmail.com"
-  bio: "Nothing but speed is indestructible"
-  twitter: "seanyinx"
-Tank Tian:
-  name: "Tank Tian"
-  uri: "https://tanktian.github.io/"
-  email: "chd.tianming@gmail.com"
-  bio: "How lucky we are. To be free."
-Asif Siddiqui:
-  name: "Mohammad Asif Siddiqui"
-  uri: "http://asifdxtreme.github.io"
-  email: "mohammad.asif.siddiqui1@huawei.com"
-  bio: "Gopher, PaaS and Microservice"
-  twitter: "asifdxtreme"
-Zen Lin:
-  name: "Zen Lin"
-  uri: "http://zenlintechnofreak.github.io"
-  email: "zenlintechnofreak@gmail.com"
-  bio: "To enjoy in opensource community."
-Eric Lee:
-  name: "Eric Lee"
-  uri: "https://eric-lee-ltk.github.io"
-  email: "eric.lee.ltk@gmail.com"
-  bio: "Winter is coming, arm ourself with code"
-Yangyong Zheng:
-  name: "Yangyong Zheng"
-  uri: "https://zhengyangyong.github.io"
-  email: "yangyong.zheng@huawei.com"
-  bio: "Fast Action, do not ask"
-Wang Lei:
-  name: "Wang Lei"
-  uri: "https://wldandan.github.io"
-  email: "wanglei177@huawei.com"
-  bio: "Happy Coding, Happy Life"
-Yang Bo:
-  name: "Yang Bo"
-  email: "yangbo12@huawei.com"
-  bio: "Simplicity is beauty"
-Li Bo:
-  name: "Li Bo"
-  email: "libo75@huawei.com"
-  bio: "It works, but it hasn’t been tested."
-Wang Kirin:
-  name: "Wang Qilin"
-  email: "wangqilintech@gmail.com"
-  uri: "https://github.com/wangkirin"
-  bio: "I like opensource!!"
-Zhen Ju:
-  name: "Zhen Ju"
-  email: "juzhenatpku@gmail.com"
-  uri: "https://github.com/crystaldust"
-  bio: "Curious about everything~"
-Willem Jiang:
-  name: "Willem Jiang"
-  uri: "http://willemjiang.github.io"
-  email: "willemjiang@gmail.com"
-  bio: "Apache member, open source addict."
-  twitter: "willemjiang"
-Lei Zhang:
-  name: "Zhang Lei"
-  uri: "http://github.com/coolbeevip"
-  email: "coolbeevip@gmail.com"
-  bio: "Enjoy sharing, Enjoy living"
-Daniel Qian:
-  name: "Qian Jia"
-  uri: "https://github.com/chanjarster"
-  email: "chanjarster@gmail.com"
-  bio: "Opensource change the world"
\ No newline at end of file
diff --git a/_data/navigation.yml b/_data/navigation.yml
deleted file mode 100755
index 0d42db7..0000000
--- a/_data/navigation.yml
+++ /dev/null
@@ -1,390 +0,0 @@
-# main links
-t:
-  en:
-    main:
-      - title: "Home"
-        url: /
-        group: "home"
-      - title: "Projects"
-        url: /developers/
-        group: "projects"
-      - title: "Documentation"
-        url: /docs/users/
-        group: "users"
-        children:
-          - title: "Getting started"
-            url: /docs/getting-started/
-            group: "users"
-          - title: "Docs"
-            url: /docs/users/
-            group: "users"
-          - title: "Video"
-            url: /slides/
-            group: "users"
-          - title: "FAQ"
-            url: /faqs/
-            group: "users"
-      - title: "Community"
-        url: /developers/contributing
-        group: "developers"
-      - title: "Blogs"
-        url: /year-archive/
-        group: "year-archive"
-      - title: "Downloads"
-        url: /release/
-        group: "release"
-
-    docs:
-      - title: "Getting Started"
-        url: /docs/getting-started/
-      - title: "Introduction"
-        url: /docs/introduction/
-      - title: "Service Center"
-        children:
-          - title: "Install"
-            url: /docs/products/service-center/install/
-          - title: "Registration&Discovery"
-            url: /docs/products/service-center/registration-discovery/
-      - title: "Java Chassis"
-        children:
-          - title: "getting started"
-            url: /docs/products/java-chassis/quick-start/
-          - title: "Develop microservice application in minutes"
-            url: /docs/products/java-chassis/bmi/
-          - title: "Advance microservice development"
-            url: /docs/products/java-chassis/advance/
-          - title: Load Balance
-            url: /docs/products/java-chassis/load-balance/
-          - title: Flow Control
-            url: /docs/products/java-chassis/flow-control/
-          - title: Service Management
-            url: /docs/products/java-chassis/service-management/
-          - title: Distributed Tracing
-            url: /docs/products/java-chassis/distributed-tracing/
-      - title: "Mesher"
-        children:
-          - title: "getting started"
-            url: /docs/products/mesher/quick-start/
-          - title: "mesher Advance"
-            url: /docs/products/mesher/advance/
-          - title: "mesher balance"
-            url: /docs/products/mesher/load-balance/
-          - title: "mesher Flow Control"
-            url: /docs/products/mesher/flow-control/
-          - title: "mesher Service Management"
-            url: /docs/products/mesher/service-management/
-          - title: "mesher Distributed Tracing"
-            url: /docs/products/mesher/distributed-tracing/
-      - title: "Toolkit"
-        children:
-          - title: "Quick Start"
-            url: /docs/products/toolkit/quick-start/
-          - title: "OpenAPI V3 Spec validation tools"
-            url: /docs/products/toolkit/oas-validator/
-      - title: "Syncer"
-        children:
-          - title: "Quick Start"
-            url: /docs/products/syncer/quick-start/
-          - title: "Different service centers communicate with each other"
-            url: /docs/products/syncer/multi-servicecenters/
-    users:
-      - title: Java Chassis User Guide
-        children:
-          - title: 2.x
-            url: https://huaweicse.github.io/servicecomb-java-chassis-doc/java-chassis/en_US/
-
-      - title: Pack User Guide
-        children:
-          - title: 0.5.0
-            url: https://github.com/apache/servicecomb-pack/blob/master/docs/user_guide.md
-
-      - title: ServiceCenter User Guide
-        children:
-          - title: 2.0.0
-            url: https://service-center.readthedocs.io/en/latest/user-guides.html
-
-      - title: Kie User Guide
-        children:
-          - title: 0.2.0
-            url: https://kie.readthedocs.io/en/latest/
-
-      - title: Mesher User Guide
-        children:
-          - title: 1.6.3
-            url: https://mesher.readthedocs.io/en/latest/
-    developers:
-      - title: "Projects"
-        url: /developers/
-      - title: "Team"
-        url: /developers/team/
-      - title: "Contributing to Apache ServiceComb"
-        url: /developers/contributing
-      - title: "Becoming A Committer of Apache ServiceComb"
-        url: /developers/becomming-a-commiter
-      - title: "Develop Environment Setup"
-        url: /developers/setup-develop-environment/
-      - title: "Code Submit Guide"
-        url: /developers/submit-codes/
-      - title: "How to Use JIRA"
-        url: /developers/use-jira/
-      - title: "Set Up Write Access for Committer"
-        url: /developers/setup-committer-rights/
-      - title: "How to Release in Apache"
-        url: /developers/release-guide/
-      - title: "How to verify Apache Release"
-        url: /developers/release-validation-guide/
-      - title: "How to Use SonarCloud"
-        url: /developers/sonarcloud-how-to/
-
-
-    faqs:
-      - title: "FAQ"
-        url: /faqs/
-
-    release:
-      - title: "Service-Center"
-        children:
-          - title: "Release Notes"
-            url: /release/service-center-release-notes/
-          - title: "Downloads"
-            url: /release/service-center-downloads/
-      - title: "Kie"
-        children:
-          - title: "Release Notes"
-            url: /release/kie-release-notes/
-          - title: "Downloads"
-            url: /release/kie-downloads/
-      - title: "Java-Chassis"
-        children:
-          - title: "Release Notes"
-            url: /release/java-chassis-release-notes/
-          - title: "Downloads"
-            url: /release/java-chassis-downloads/
-      - title: "Mesher"
-        children:
-          - title: "Release Notes"
-            url: /release/mesher-release-notes/
-          - title: "Downloads"
-            url: /release/mesher-downloads/
-      - title: "Pack"
-        children:
-          - title: "Release Notes"
-            url: /release/pack-release-notes/
-          - title: "Downloads"
-            url: /release/pack-downloads/
-      - title: "Toolkit"
-        children:
-          - title: "Release Notes"
-            url: /release/toolkit-release-notes/
-          - title: "Downloads"
-            url: /release/toolkit-downloads/
-      - title: "Saga Actuator"
-        children:
-          - title: "Release Notes"
-            url: /release/saga-actuator-release-notes/
-          - title: "Downloads"
-            url: /release/saga-actuator-downloads/
-      - title: "Saga"
-        children:
-          - title: "Release Notes"
-            url: /release/saga-release-notes/
-          - title: "Downloads"
-            url: /release/saga-downloads/
-
-  cn:
-    main:
-      - title: "首页"
-        url: /cn/
-        group: "home"
-      - title: "项目"
-        url: /cn/developers/
-        group: "projects"
-      - title: "文档"
-        url: /cn/docs/users/
-        group: "users"
-        children:
-        - title: "入门指南"
-          url: /cn/docs/getting-started/
-          group: "users"
-        - title: "用户手册"
-          url: /cn/docs/users/
-          group: "users"
-        - title: "大咖视频"
-          url: /cn/slides/
-          group: "users"
-        - title: "常见问题"
-          url: /cn/faqs/
-          group: "users"
-      - title: "社区"
-        url: /cn/developers/contributing
-        group: "developers"
-      - title: "博文"
-        url: /cn/year-archive/
-        group: "year-archive"
-      - title: "下载"
-        url: /cn/release/
-        group: "release"
-
-    docs:
-      - title: "入门指南"
-        url: /cn/docs/getting-started/
-      - title: "项目介绍"
-        url: /cn/docs/introduction/
-      - title: "Service Center"
-        children:
-          - title: "环境安装"
-            url: /cn/docs/products/service-center/install/
-          - title: "服务注册发现"
-            url: /cn/docs/products/service-center/registration-discovery/
-      - title: "Java Chassis"
-        children:
-          - title: "入门指南"
-            url: /cn/docs/products/java-chassis/quick-start/
-          - title: "体质指数微服务应用快速开发"
-            url: /cn/docs/products/java-chassis/bmi/
-          - title: "微服务开发进阶"
-            url: /cn/docs/products/java-chassis/advance/
-          - title: "负载均衡"
-            url: /cn/docs/products/java-chassis/load-balance/
-          - title: "流量控制"
-            url: /cn/docs/products/java-chassis/flow-control/
-          - title: "服务治理"
-            url: /cn/docs/products/java-chassis/service-management/
-          - title: "分布式调用链追踪"
-            url: /cn/docs/products/java-chassis/distributed-tracing/
-      - title: "Mesher"
-        children:
-          - title: "入门指南"
-            url: /cn/docs/products/mesher/quick-start/
-          - title: "mesher进阶"
-            url: /cn/docs/products/mesher/advance/
-          - title: "mesher负载均衡"
-            url: /cn/docs/products/mesher/load-balance/
-          - title: "mesher流量控制"
-            url: /cn/docs/products/mesher/flow-control/
-          - title: "mesher服务治理"
-            url: /cn/docs/products/mesher/service-management/
-          - title: "mesher分布式调用链追踪"
-            url: /cn/docs/products/mesher/distributed-tracing/
-      - title: "Toolkit"
-        children:
-          - title: "入门指南"
-            url: /cn/docs/products/toolkit/quick-start/
-          - title: "OpenAPI V3 Spec校验工具"
-            url: /cn/docs/products/toolkit/oas-validator/
-      - title: "Syncer"
-        children:
-          - title: "入门指南"
-            url: /cn/docs/products/syncer/quick-start/
-          - title: "异构服务中心通讯"
-            url: /cn/docs/products/syncer/multi-servicecenters/
-
-    users:
-      - title: Java-chassis用户手册
-        children:
-          - title: 2.x
-            url: https://huaweicse.github.io/servicecomb-java-chassis-doc/java-chassis/zh_CN/
-
-      - title: Pack用户手册
-        children:
-          - title: 0.5.0(英文版)
-            url: https://github.com/apache/servicecomb-pack/blob/master/docs/user_guide.md
-
-      - title: ServiceCenter用户手册
-        children:
-          - title: 2.0.0(英文版)
-            url: https://service-center.readthedocs.io/en/latest/user-guides.html
-
-      - title: Kie 用户手册
-        children:
-          - title: 0.2.0(英文版)
-            url: https://kie.readthedocs.io/en/latest/
-
-      - title: Mesher 用户手册
-        children:
-          - title: 1.6.3(英文版)
-            url: https://mesher.readthedocs.io/en/latest/
-
-    developers:
-      - title: "项目列表"
-        url: /cn/developers/
-      - title: "开发团队"
-        url: /cn/developers/team/
-      - title: "如何做贡献"
-        url: /cn/developers/contributing
-      - title: "成为Committer"
-        url: /cn/developers/becomming-a-commiter
-      - title: "开发环境准备"
-        url: /cn/developers/setup-develop-environment/
-      - title: "发现问题"
-        url: /cn/developers/submit-issues/
-      - title: "代码提交指南"
-        url: /cn/developers/submit-codes/
-      - title: "邮件列表订阅指南"
-        url: /cn/developers/subscribe-mail-list/
-      - title: "JIRA使用方法"
-        url: /cn/developers/use-jira/
-      - title: "Gitter 使用方法"
-        url: /cn/developers/use-gitter/
-      - title: "设置代码仓库写权限"
-        url: /cn/developers/setup-committer-rights/
-      - title: "Servicecomb发版指南"
-        url: /cn/developers/release-guide/
-      - title: "ServiceComb发版验证指南"
-        url: /cn/developers/release-validation-guide/
-      - title: "SonarCloud集成指南"
-        url: /cn/developers/sonarcloud-how-to/
-
-    faqs:
-      - title: "常见问题"
-        url: /cn/faqs/
-
-    release:
-      - title: "Service-Center"
-        children:
-          - title: "发布说明"
-            url: /cn/release/service-center-release-notes/
-          - title: "发布包"
-            url: /cn/release/service-center-downloads/
-      - title: "Kie"
-        children:
-          - title: "发布说明"
-            url: /cn/release/kie-release-notes/
-          - title: "发布包"
-            url: /cn/release/kie-downloads/
-      - title: "Java-Chassis"
-        children:
-          - title: "发布说明"
-            url: /cn/release/java-chassis-release-notes/
-          - title: "发布包"
-            url: /cn/release/java-chassis-downloads/
-      - title: "Mesher"
-        children:
-          - title: "发布说明"
-            url: /cn/release/mesher-release-notes/
-          - title: "发布包"
-            url: /cn/release/mesher-downloads/
-      - title: "Pack"
-        children:
-          - title: "发布说明"
-            url: /cn/release/pack-release-notes/
-          - title: "发布包"
-            url: /cn/release/pack-downloads/
-      - title: "Toolkit"
-        children:
-          - title: "发布说明"
-            url: /cn/release/toolkit-release-notes/
-          - title: "发布包"
-            url: /cn/release/toolkit-downloads/
-      - title: "Saga Actuator"
-        children:
-          - title: "发布说明"
-            url: /cn/release/saga-actuator-release-notes/
-          - title: "发布包"
-            url: /cn/release/saga-actuator-downloads/
-      - title: "Saga"
-        children:
-          - title: "发布说明"
-            url: /cn/release/saga-release-notes/
-          - title: "发布包"
-            url: /cn/release/saga-downloads/
diff --git a/_data/ui-text.yml b/_data/ui-text.yml
deleted file mode 100644
index 169aa67..0000000
--- a/_data/ui-text.yml
+++ /dev/null
@@ -1,756 +0,0 @@
-# User interface text and labels
-
-# English (default)
-# -----------------
-en: &DEFAULT_EN
-  resources		     : "Resources"
-  quick_start		     : "Getting started"
-  user_guide		     : "User Guide"
-  blogs                      : "Blogs"
-  faqs                       : "FAQ"
-  faq			     : "Common Questions"
-  contribute		     : "Contribute"
-  report_issue		     : "Report a Doc Issue"
-  edit_page                  : "Edit This Page on Github"
-  code_submit_guide          : "Code Submit Guide"
-  community                  : "Community"
-  mailing_list               : "Mailing List"
-  slides                     : "Slides"
-  page                       : "Page"
-  pagination_previous        : "Previous"
-  pagination_next            : "Next"
-  breadcrumb_home_label      : "Home"
-  breadcrumb_separator       : "/"
-  menu_label                 : "Toggle Menu"
-  toc_label                  : "On This Page"
-  ext_link_label             : "Direct Link"
-  less_than                  : "less than"
-  minute_read                : "minute read"
-  share_on_label             : "Share on"
-  meta_label                 :
-  tags_label                 : "Tags:"
-  categories_label           : "Categories:"
-  date_label                 : "Updated:"
-  comments_label             : "Leave a Comment"
-  comments_title             : "Comments"
-  more_label                 : "Learn More"
-  related_label              : "You May Also Enjoy"
-  follow_label               : "Follow:"
-  feed_label                 : "Feed"
-  powered_by                 : "Powered by"
-  website_label              : "Website"
-  email_label                : "Email"
-  recent_posts               : "Recent Posts"
-  undefined_wpm              : "Undefined parameter words_per_minute at _config.yml"
-  comment_form_info          : "Your email address will not be published. Required fields are marked"
-  comment_form_comment_label : "Comment"
-  comment_form_md_info       : "Markdown is supported."
-  comment_form_name_label    : "Name"
-  comment_form_email_label   : "Email address"
-  comment_form_website_label : "Website (optional)"
-  comment_btn_submit         : "Submit Comment"
-  comment_btn_submitted      : "Submitted"
-  comment_success_msg        : "Thanks for your comment! It will show on the site once it has been approved."
-  comment_error_msg          : "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again."
-  loading_label              : "Loading..."
-  security                   : "Security"
-  foundation                 : "Foundation"
-  licenses                   : "License"
-  events                     : "Events"
-  sponsorship                : "Sponsorship"
-  thanks                     : "Thanks"
-  connect_us                  : "Connect Us"
-en-US:
-  <<: *DEFAULT_EN
-en-CA:
-  <<: *DEFAULT_EN
-en-GB:
-  <<: *DEFAULT_EN
-en-AU:
-  <<: *DEFAULT_EN
-
-# Spanish
-# --------------
-es: &DEFAULT_ES
-  page                       : "Página"
-  pagination_previous        : "Anterior"
-  pagination_next            : "Siguiente"
-  breadcrumb_home_label      : "Inicio"
-  breadcrumb_separator       : "/"
-  menu_label                 :
-  toc_label                  : "Contenidos"
-  ext_link_label             : "Enlace"
-  less_than                  : "menos de"
-  minute_read                : "minuto de lectura"
-  share_on_label             : "Compartir"
-  meta_label                 :
-  tags_label                 : "Etiquetas:"
-  categories_label           : "Categorías:"
-  date_label                 : "Actualizado:"
-  comments_label             : "Comentar"
-  comments_title             :
-  more_label                 : "Ver más"
-  related_label              : "Podrías ver también"
-  follow_label               : "Seguir:"
-  feed_label                 : "Feed"
-  powered_by                 : "Powered by"
-  website_label              : "Sitio web"
-  email_label                : "Email"
-  recent_posts               : "Entradas recientes"
-  undefined_wpm              : "Parametro words_per_minute (Palabras por minuto) no definido en _config.yml"
-  comment_form_info          :
-  comment_form_comment_label :
-  comment_form_md_info       :
-  comment_form_name_label    :
-  comment_form_email_label   :
-  comment_form_website_label :
-  comment_btn_submit         :
-  comment_btn_submitted      :
-  comment_success_msg        :
-  comment_error_msg          :
-  loading_label              :
-es-ES:
-  <<: *DEFAULT_ES
-es-CO:
-  <<: *DEFAULT_ES
-
-# French
-# -----------------
-fr: &DEFAULT_FR
-  page                       : "Page"
-  pagination_previous        : "Précédent"
-  pagination_next            : "Suivant"
-  breadcrumb_home_label      : "Accueil"
-  breadcrumb_separator       : "/"
-  menu_label                 :
-  toc_label                  : "Sur cette page"
-  ext_link_label             : "Lien direct"
-  less_than                  : "moins de"
-  minute_read                : "minute de lecture"
-  share_on_label             : "Partager sur"
-  meta_label                 :
-  tags_label                 : "Tags :"
-  categories_label           : "Catégories :"
-  date_label                 : "Mis à jour :"
-  comments_label             : "Laisser un commentaire"
-  comments_title             :
-  more_label                 : "Lire plus"
-  related_label              : "Vous pourriez aimer aussi"
-  follow_label               : "Contact"
-  feed_label                 : "Flux"
-  powered_by                 : "Propulsé par"
-  website_label              : "Site"
-  email_label                : "Email"
-  recent_posts               : "Posts récents"
-  undefined_wpm              : "Le paramètre words_per_minute n'est pas défini dans _config.yml"
-  comments_title             : "Commentaires"
-  comment_form_info          : "Votre adresse email ne sera pas visible. Les champs obligatoires sont marqués"
-  comment_form_comment_label : "Commentaire"
-  comment_form_md_info       : "Markdown est supporté."
-  comment_form_name_label    : "Nom"
-  comment_form_email_label   : "Adresse mail"
-  comment_form_website_label : "Site web (optionnel)"
-  comment_btn_submit         : "Envoyer"
-  comment_btn_submitted      : "Envoyé"
-  comment_success_msg        : "Merci pour votre commentaire, il sera visible sur le site une fois approuvé."
-  comment_error_msg          : "Désolé, une erreur est survenue lors de la soumission. Vérifiez que les champs obligatoires ont été remplis et réessayez."
-  loading_label              : "Chargement..."
-fr-FR:
-  <<: *DEFAULT_FR
-fr-BE:
-  <<: *DEFAULT_FR
-fr-CH:
-  <<: *DEFAULT_FR
-
-# Turkish
-# -----------------
-tr: &DEFAULT_TR
-  page                       : "Sayfa"
-  pagination_previous        : "Önceki"
-  pagination_next            : "Sonraki"
-  breadcrumb_home_label      : "Ana Sayfa"
-  breadcrumb_separator       : "/"
-  menu_label                 :
-  toc_label                  : "İçindekiler"
-  ext_link_label             : "Doğrudan Bağlantı"
-  less_than                  : "Şu süreden az: "
-  minute_read                : "dakika tahmini okuma süresi"
-  share_on_label             : "Paylaş"
-  meta_label                 :
-  tags_label                 : "Etiketler:"
-  categories_label           : "Kategoriler:"
-  date_label                 : "Güncelleme tarihi:"
-  comments_label             : "Yorum yapın"
-  comments_title             : "Yorumlar"
-  more_label                 : "Daha fazlasını öğrenin"
-  related_label              : "Bunlar ilginizi çekebilir:"
-  follow_label               : "Takip et:"
-  feed_label                 : "RSS"
-  powered_by                 : "Emeği geçenler: "
-  website_label              : "Web sayfası"
-  email_label                : "E-posta"
-  recent_posts               : "Son yazılar"
-  undefined_wpm              : "_config.yml dosyasında tanımlanmamış words_per_minute parametresi"
-  comment_form_info          : "Email adresiniz gösterilmeyecektir. Zorunlu alanlar işaretlenmiştir"
-  comment_form_comment_label : "Yorumunuz"
-  comment_form_md_info       : "Markdown desteklenmektedir."
-  comment_form_name_label    : "Adınız"
-  comment_form_email_label   : "Email adresiniz"
-  comment_form_website_label : "Websiteniz (opsiyonel)"
-  comment_btn_submit         : "Yorum Yap"
-  comment_btn_submitted      : "Gönderildi"
-  comment_success_msg        : "Yorumunuz için teşekkürler! Yorumunuz onaylandıktan sonra sitede gösterilecektir."
-  comment_error_msg          : "Maalesef bir hata oluştu. Lütfen zorunlu olan tüm alanları doldurduğunuzdan emin olun ve sonrasında tekrar deneyin."
-  loading_label              : "Yükleniyor..."
-tr-TR:
-  <<: *DEFAULT_TR
-
-# Portuguese
-# -----------------
-pt: &DEFAULT_PT
-  page                       : "Página"
-  pagination_previous        : "Anterior"
-  pagination_next            : "Seguinte"
-  breadcrumb_home_label      : "Início"
-  breadcrumb_separator       : "/"
-  menu_label                 :
-  toc_label                  : "Nesta Página"
-  ext_link_label             : "Link Direto"
-  less_than                  : "menos de"
-  minute_read                : "minutos de leitura"
-  share_on_label             : "Partilhar no"
-  meta_label                 :
-  tags_label                 : "Etiquetas:"
-  categories_label           : "Categorias:"
-  date_label                 : "Atualizado:"
-  comments_label             : "Deixe um Comentário"
-  comments_title             : "Comentários"
-  more_label                 : "Saber mais"
-  related_label              : "Também pode gostar de"
-  follow_label               : "Siga:"
-  feed_label                 : "Feed"
-  powered_by                 : "Feito com"
-  website_label              : "Site"
-  email_label                : "Email"
-  recent_posts               : "Artigos Recentes"
-  undefined_wpm              : "Parâmetro words_per_minute não definido em _config.yml"
-  comment_form_info          : "O seu endereço email não será publicado. Os campos obrigatórios estão assinalados"
-  comment_form_comment_label : "Comentário"
-  comment_form_md_info       : "Markdown é suportado."
-  comment_form_name_label    : "Nome"
-  comment_form_email_label   : "Endereço Email"
-  comment_form_website_label : "Site (opcional)"
-  comment_btn_submit         : "Sumbeter Comentário"
-  comment_btn_submitted      : "Submetido"
-  comment_success_msg        : "Obrigado pelo seu comentário! Será visível no site logo que aprovado."
-  comment_error_msg          : "Lamento, ocorreu um erro na sua submissão. Por favor verifique se todos os campos obrigatórios estão corretamente preenchidos e tente novamente."
-  loading_label              : "A carregar..."
-# Brazilian Portuguese
-pt-BR:
-  page                       : "Página"
-  pagination_previous        : "Anterior"
-  pagination_next            : "Próxima"
-  breadcrumb_home_label      : "Home"
-  breadcrumb_separator       : "/"
-  menu_label                 :
-  toc_label                  : "Nesta página"
-  ext_link_label             : "Link direto"
-  less_than                  : "meno que"
-  minute_read                : "minutos de leitura"
-  share_on_label             : "Compartilhe em"
-  meta_label                 :
-  tags_label                 : "Tags:"
-  categories_label           : "Categorias:"
-  date_label                 : "Atualizado em:"
-  comments_label             : "Deixe um comentário"
-  comments_title             :
-  more_label                 : "Aprenda Mais"
-  related_label              : "Você Talvez Goste Também"
-  follow_label               : "Acompanhe em"
-  feed_label                 : "Feed"
-  powered_by                 : "Feito com"
-  website_label              : "Site"
-  email_label                : "Email"
-  recent_posts               : "Postagens recentes"
-  undefined_wpm              : "Parâmetro indefinido em word_per_minute no _config.yml"
-  comment_form_info          :
-  comment_form_comment_label :
-  comment_form_md_info       :
-  comment_form_name_label    :
-  comment_form_email_label   :
-  comment_form_website_label :
-  comment_btn_submit         :
-  comment_btn_submitted      :
-  comment_success_msg        :
-  comment_error_msg          :
-  loading_label              :
-pt-PT:
-  <<: *DEFAULT_PT
-
-# Italian
-# -----------------
-it: &DEFAULT_IT
-  page                       : "Pagina"
-  pagination_previous        : "Precedente"
-  pagination_next            : "Prossima"
-  breadcrumb_home_label      : "Home"
-  breadcrumb_separator       : "/"
-  menu_label                 :
-  toc_label                  : "Indice della pagina"
-  ext_link_label             : "Link"
-  less_than                  : "meno di"
-  minute_read                : "minuto/i di lettura"
-  share_on_label             : "Condividi"
-  meta_label                 :
-  tags_label                 : "Tags:"
-  categories_label           : "Categorie:"
-  date_label                 : "Aggiornato:"
-  comments_label             : "Scrivi un commento"
-  comments_title             :
-  more_label                 : "Scopri di più"
-  related_label              : "Potrebbe Piacerti Anche"
-  follow_label               : "Segui:"
-  feed_label                 : "Feed"
-  powered_by                 : "Powered by"
-  website_label              : "Website"
-  email_label                : "Email"
-  recent_posts               : "Articoli Recenti"
-  undefined_wpm              : "Parametro words_per_minute non definito in _config.yml"
-  comment_form_info          : "Il tuo indirizzo email non sarà pubblicato. Sono segnati i campi obbligatori"
-  comment_form_comment_label : "Commenta"
-  comment_form_md_info       : "Il linguaggio Markdown è supportato"
-  comment_form_name_label    : "Nome"
-  comment_form_email_label   : "Indirizzo email"
-  comment_form_website_label : "Sito Web (opzionale)"
-  comment_btn_submit         : "Invia commento"
-  comment_btn_submitted      : "Inviato"
-  comment_success_msg        : "Grazie per il tuo commento! Verrà visualizzato nel sito una volta che sarà approvato."
-  comment_error_msg          : "C'è stato un errore con il tuo invio. Assicurati che tutti i campi richiesti siano stati completati e riprova."
-  loading_label              : "Caricamento..."
-it-IT:
-  <<: *DEFAULT_IT
-
-# Chinese  (zh-CN Chinese - China)
-# -----------------
-zh: &DEFAULT_ZH
-  page                       : "页面"
-  pagination_previous        : "向前"
-  pagination_next            : "向后"
-  breadcrumb_home_label      : "首页"
-  breadcrumb_separator       : "/"
-  menu_label                 : "切换菜单"
-  toc_label                  : "在本页上"
-  ext_link_label             : "直接链接"
-  less_than                  : "少于"
-  minute_read                : "分钟 阅读"
-  share_on_label             : "分享"
-  meta_label                 :
-  tags_label                 : "标签:"
-  categories_label           : "分类:"
-  date_label                 : "最新的:"
-  comments_label             : "留下评论"
-  comments_title             : "评论"
-  more_label                 : "了解更多"
-  related_label              : "猜您还喜欢"
-  follow_label               : "关注:"
-  feed_label                 : "Feed"
-  powered_by                 : "技术来自于"
-  website_label              : "网站"
-  email_label                : "电子邮箱"
-  recent_posts               : "最新文章"
-  undefined_wpm              : "_config.yml配置中words_per_minute字段未定义"
-  comment_form_info          : "您的电子邮箱地址并不会被展示。请填写标记为必须的字段。"
-  comment_form_comment_label : "评论"
-  comment_form_md_info       : "Markdown语法已支持。"
-  comment_form_name_label    : "姓名"
-  comment_form_email_label   : "电子邮箱"
-  comment_form_website_label : "网站(可选)"
-  comment_btn_submit         : "提交评论"
-  comment_btn_submitted      : "已提交"
-  comment_success_msg        : "感谢您的评论!被批准后它会立即在此站点展示。"
-  comment_error_msg          : "很抱歉,您的提交存在错误。请确保所有必填字段都已填写正确,然后再试一次。"
-  loading_label              : "正在加载..."
-  resources		     : "资源"
-  quick_start		     : "入门指南"
-  user_guide		     : "用户指南"
-  blogs                      : "博客"
-  faqs                       : "常见问题"
-  faq			     : "常见问题"
-  contribute		     : "贡献"
-  report_issue		     : "报告本网页问题"
-  edit_page                  : "在Github上编辑此页"
-  code_submit_guide          : "代码提交指南"
-  community                  : "社区"
-  mailing_list               : "邮件列表"
-  slides                     : "资料"
-  security                   : "安全"
-  foundation                 : "基金会"
-  licenses                   : "许可证"
-  events                     : "活动"
-  sponsorship                : "赞助"
-  thanks                     : "鸣谢"
-  connect_us                 : "联系我们"
-cn:
-  <<: *DEFAULT_ZH
-zh-CN:
-  <<: *DEFAULT_ZH
-zh-HK:
-  <<: *DEFAULT_ZH
-zh-SG:
-  <<: *DEFAULT_ZH
-# Taiwan (Traditional Chinese)
-zh-TW:
-  page                       : "頁面"
-  pagination_previous        : "較舊"
-  pagination_next            : "較新"
-  breadcrumb_home_label      : "首頁"
-  breadcrumb_separator       : "/"
-  menu_label                 : "切換選單"
-  toc_label                  : "本頁"
-  ext_link_label             : "外部連結"
-  less_than                  : "少於"
-  minute_read                : "分鐘閱讀"
-  share_on_label             : "分享到"
-  meta_label                 :
-  tags_label                 : "標籤:"
-  categories_label           : "分類:"
-  date_label                 : "更新時間:"
-  comments_label             : "留言"
-  comments_title             : "留言內容"
-  more_label                 : "了解更多"
-  related_label              : "猜您有與趣"
-  follow_label               : "追蹤:"
-  feed_label                 : "RSS Feed"
-  powered_by                 : "Powered by"
-  website_label              : "網站"
-  email_label                : "電子信箱"
-  recent_posts               : "最新文章"
-  undefined_wpm              : "_config.yml 中未定義 words_per_minute"
-  comment_form_info          : "您的電子信箱不會被公開. 必填部份已標記"
-  comment_form_comment_label : "留言內容"
-  comment_form_md_info       : "支援Markdown語法。"
-  comment_form_name_label    : "名字"
-  comment_form_email_label   : "電子信箱帳號"
-  comment_form_website_label : "網頁 (可選填)"
-  comment_btn_submit         : "送出留言"
-  comment_btn_submitted      : "已送出"
-  comment_success_msg        : "感謝您的留言! 審核後將會顯示在站上。"
-  comment_error_msg          : "抱歉,部份資料輸入有問題。請確認資料填寫正確後再試一次。"
-  loading_label              : "載入中..."
-
-# German / Deutsch
-# -----------------
-de: &DEFAULT_DE
-  page                       : "Seite"
-  pagination_previous        : "Vorherige"
-  pagination_next            : "Nächste"
-  breadcrumb_home_label      : "Home"
-  breadcrumb_separator       : "/"
-  menu_label                 :
-  toc_label                  : "Auf dieser Seite"
-  ext_link_label             : "Direkter Link"
-  less_than                  : "weniger als"
-  minute_read                : "Minuten zum lesen"
-  share_on_label             : "Teilen auf"
-  meta_label                 :
-  tags_label                 : "Tags:"
-  categories_label           : "Kategorien:"
-  date_label                 : "Aktualisiert:"
-  comments_label             : "Hinterlassen sie einen Kommentar"
-  comments_title             : "Kommentare"
-  more_label                 : "Mehr anzeigen"
-  related_label              : "Ihnen gefällt vielleicht auch"
-  follow_label               : "Folgen:"
-  feed_label                 : "Feed"
-  powered_by                 : "Powered by"
-  website_label              : "Webseite"
-  email_label                : "E-Mail"
-  recent_posts               : "Aktuelle Beiträge"
-  undefined_wpm              : "Undefinierter Parameter words_per_minute in _config.yml"
-  comment_form_info          : "Ihre E-Mail Adresse wird nicht veröffentlicht. Benötigte Felder sind markiert"
-  comment_form_comment_label : "Kommentar"
-  comment_form_md_info       : "Markdown wird unterstützt."
-  comment_form_name_label    : "Name"
-  comment_form_email_label   : "E-Mail Addresse"
-  comment_form_website_label : "Webseite (optional)"
-  comment_btn_submit         : "Kommentar absenden"
-  comment_btn_submitted      : "Versendet"
-  comment_success_msg        : "Danke für ihren Kommentar! Er wird auf der Seite angezeigt, nachdem er geprüft wurde."
-  comment_error_msg          : "Entschuldigung, es gab einen Fehler. Bitte füllen sie alle benötigten Felder aus und versuchen sie es erneut."
-  loading_label              : "Lade..."
-de-DE:
-  <<: *DEFAULT_DE
-de-AT:
-  <<: *DEFAULT_DE
-de-CH:
-  <<: *DEFAULT_DE
-de-BE:
-  <<: *DEFAULT_DE
-de-LI:
-  <<: *DEFAULT_DE
-de-LU:
-  <<: *DEFAULT_DE
-
-# Nepali (Nepal)
-# -----------------
-ne: &DEFAULT_NE
-  page                       : "पृष्‍ठ"
-  pagination_previous        : "अघिल्लो"
-  pagination_next            : "अर्को"
-  breadcrumb_home_label      : "गृह"
-  breadcrumb_separator       : "/"
-  menu_label                 : "टगल मेनु"
-  toc_label                  : "यो पृष्‍ठमा"
-  ext_link_label             : "सिधा सम्पर्क"
-  less_than                  : "कम्तिमा"
-  minute_read                : "मिनेट पढ्नुहोस्"
-  share_on_label             : "शेयर गर्नुहोस्"
-  meta_label                 :
-  tags_label                 : "ट्यागहरू:"
-  categories_label           : "वर्गहरु:"
-  date_label                 : "अद्यावधिक:"
-  comments_label             : "टिप्पणी दिनुहोस्"
-  comments_title             : "टिप्पणीहरू"
-  more_label                 : "अझै सिक्नुहोस्"
-  related_label              : "तपाईं रुचाउन सक्नुहुन्छ "
-  follow_label               : "पछ्याउनुहोस्:"
-  feed_label                 : "फिड"
-  powered_by                 : "Powered by"
-  website_label              : "वेबसाइट"
-  email_label                : "इमेल"
-  recent_posts               : "ताजा लेखहरु"
-  undefined_wpm              : "अपरिभाषित प्यारामिटर शब्दहरू_प्रति_मिनेट at _config.yml"
-  comment_form_info          : "तपाइँको इमेल ठेगाना प्रकाशित गरिने छैन।आवश्यक जानकारीहरुमा चिन्ह लगाइको छ"
-  comment_form_comment_label : "टिप्पणी"
-  comment_form_md_info       : "मार्कडाउन  समर्थित छ।"
-  comment_form_name_label    : "नाम"
-  comment_form_email_label   : "इमेल ठेगाना"
-  comment_form_website_label : "वेबसाइट (वैकल्पिक)"
-  comment_btn_submit         : "टिप्पणी दिनुहोस् "
-  comment_btn_submitted      : "टिप्पणी भयो"
-  comment_success_msg        : "तपाईंको टिप्पणीको लागि धन्यवाद! एक पटक यो अनुमोदन गरेपछी यो साइटमा देखाउनेछ।"
-  comment_error_msg          : "माफ गर्नुहोस्, तपाईंको टिप्पणी त्रुटि थियो।सबै आवश्यक जानकारीहरु पूरा गरिएको छ भने निश्चित गर्नुहोस् र फेरि प्रयास गर्नुहोस्।"
-  loading_label              : "लोड हुँदैछ ..."
-ne-NP:
-  <<: *DEFAULT_NE
-
-# Korean
-# --------------
-ko: &DEFAULT_KO
-  page                       : "페이지"
-  pagination_previous        : "이전"
-  pagination_next            : "다음"
-  breadcrumb_home_label      : "Home"
-  breadcrumb_separator       : "/"
-  menu_label                 : "토글 메뉴"
-  toc_label                  : "On This Page"
-  ext_link_label             : "직접 링크"
-  less_than                  : "최대"
-  minute_read                : "분 소요"
-  share_on_label             : "공유하기"
-  meta_label                 :
-  tags_label                 : "태그:"
-  categories_label           : "카테고리:"
-  date_label                 : "업데이트:"
-  comments_label             : "댓글남기기"
-  comments_title             : "댓글"
-  more_label                 : "더 보기"
-  related_label              : "참고"
-  follow_label               : "팔로우:"
-  feed_label                 : "피드"
-  powered_by                 : "Powered by"
-  website_label              : "웹사이트"
-  email_label                : "이메일"
-  recent_posts               : "최근 포스트"
-  undefined_wpm              : "Undefined parameter words_per_minute at _config.yml"
-  comment_form_info          : "이메일은 공개되지 않습니다. 작성 필요 필드:"
-  comment_form_comment_label : "댓글"
-  comment_form_md_info       : "마크다운을 지원합니다."
-  comment_form_name_label    : "이름"
-  comment_form_email_label   : "이메일"
-  comment_form_website_label : "웹사이트(선택사항)"
-  comment_btn_submit         : "댓글 등록"
-  comment_btn_submitted      : "등록됨"
-  comment_success_msg        : "감사합니다! 댓글이 머지된 후 확인하실 수 있습니다."
-  comment_error_msg          : "댓글 등록에 문제가 있습니다. 필요 필드를 작성했는지 확인하고 다시 시도하세요."
-  loading_label              : "로딩중..."
-ko-KR:
-  <<: *DEFAULT_KO
-
-# Russian / Русский
-# -----------------
-ru: &DEFAULT_RU
-  page                       : "Страница"
-  pagination_previous        : "Предыдущая"
-  pagination_next            : "Следующая"
-  breadcrumb_home_label      : "Главная"
-  breadcrumb_separator       : "/"
-  menu_label                 : "Выпадающее меню"
-  toc_label                  : "Содержание"
-  ext_link_label             : "Прямая ссылка"
-  less_than                  : "менее"
-  minute_read                : "мин на чтение"
-  share_on_label             : "Поделиться"
-  meta_label                 :
-  tags_label                 : "Метки:"
-  categories_label           : "Разделы:"
-  date_label                 : "Дата изменения:"
-  comments_label             : "Оставить комментарий"
-  comments_title             : "Комментарии"
-  more_label                 : "Читать далее"
-  related_label              : "Вам также может понравиться"
-  follow_label               : "Связаться со мной:"
-  feed_label                 : "RSS-лента"
-  powered_by                 : "Сайт работает на"
-  website_label              : "Сайт"
-  email_label                : "Электронная почта"
-  recent_posts               : "Свежие записи"
-  undefined_wpm              : "Не определён параметр words_per_minute в _config.yml"
-  comment_form_info          : "Ваш адрес электронной почты не будет опубликован. Обязательные поля помечены"
-  comment_form_comment_label : "Комментарий"
-  comment_form_md_info       : "Поддерживается синтаксис Markdown."
-  comment_form_name_label    : "Имя"
-  comment_form_email_label   : "Электронная почта"
-  comment_form_website_label : "Ссылка на сайт (необязательно)"
-  comment_btn_submit         : "Оставить комментарий"
-  comment_btn_submitted      : "Отправлено"
-  comment_success_msg        : "Спасибо за Ваш комментарий! Он будет опубликован на сайте после проверки."
-  comment_error_msg          : "К сожалению, произошла ошибка с отправкой комментария. Пожалуйста, убедитесь, что все обязательные поля заполнены и попытайтесь снова."
-  loading_label              : "Отправка..."
-ru-RU:
-  <<: *DEFAULT_RU
-
-# Lithuanian / Lietuviškai
-# -----------------
-lt: &DEFAULT_LT
-  page                       : "Puslapis"
-  pagination_previous        : "Ankstesnis"
-  pagination_next            : "Sekantis"
-  breadcrumb_home_label      : "Pagrindinis"
-  breadcrumb_separator       : "/"
-  menu_label                 : "Meniu rodymas"
-  toc_label                  : "Turinys"
-  ext_link_label             : "Tiesioginė nuoroda"
-  less_than                  : "mažiau nei"
-  minute_read                : "min. skaitymo"
-  share_on_label             : "Pasidalinti"
-  meta_label                 :
-  tags_label                 : "Žymės:"
-  categories_label           : "Kategorijos:"
-  date_label                 : "Atnaujinta:"
-  comments_label             : "Palikti komentarą"
-  comments_title             : "Komentaras"
-  more_label                 : "Skaityti daugiau"
-  related_label              : "Taip pat turėtų patikti"
-  follow_label               : "Sekti:"
-  feed_label                 : "Šaltinis"
-  powered_by                 : "Sukurta su"
-  website_label              : "Tinklapis"
-  email_label                : "El. paštas"
-  recent_posts               : "Naujausi įrašai"
-  undefined_wpm              : "Nedeklaruotas parametras words_per_minute faile _config.yml"
-  comment_form_info          : "El. pašto adresas nebus viešinamas. Būtini laukai pažymėti."
-  comment_form_comment_label : "Komentaras"
-  comment_form_md_info       : "Markdown palaikomas."
-  comment_form_name_label    : "Vardas"
-  comment_form_email_label   : "El. paštas"
-  comment_form_website_label : "Tinklapis (nebūtina)"
-  comment_btn_submit         : "Komentuoti"
-  comment_btn_submitted      : "Įrašytas"
-  comment_success_msg        : "Ačiū už komentarą! Jis bus parodytas kai bus patvirtintas."
-  comment_error_msg          : "Atleiskite, įvyko netikėta klaida įrašant komentarą. Pasitikrinkite ar užpildėte visus būtinus laukus ir pamėginkite dar kartą."
-  loading_label              : "Kraunama..."
-lt-LT:
-  <<: *DEFAULT_LT
-
-# Greek
-# --------------
-gr: &DEFAULT_GR
-  page                       : "Σελίδα"
-  pagination_previous        : "Προηγούμενo"
-  pagination_next            : "Επόμενo"
-  breadcrumb_home_label      : "Κεντρική"
-  breadcrumb_separator       : "/"
-  menu_label                 :
-  toc_label                  : "Πίνακας Περιεχομένων"
-  ext_link_label             : "Εξωτερικός Σύνδεσμος"
-  less_than                  : "Λιγότερο από"
-  minute_read                : "λεπτά ανάγνωσης"
-  share_on_label             : "Μοιραστείτε το"
-  meta_label                 :
-  tags_label                 : "Ετικέτες:"
-  categories_label           : "Κατηγορίες:"
-  date_label                 : "Ενημερώθηκε:"
-  comments_label             : "Αφήστε ένα σχόλιο"
-  comments_title             : "Σχόλια"
-  more_label                 : "Μάθετε περισσότερα"
-  related_label              : "Θα σας ενδιέφερε ακόμη"
-  follow_label               : "Ακολουθήστε:"
-  feed_label                 : "Feed"
-  powered_by                 : "Powered by"
-  website_label              : "Ιστοσελίδα"
-  email_label                : "Email"
-  recent_posts               : "Τελευταίες ανακοινώσεις"
-  undefined_wpm              : "Undefined parameter words_per_minute at _config.yml"
-  comment_form_info          : "Your email address will not be published. Required fields are marked"
-  comment_form_comment_label : "Σχόλιο"
-  comment_form_md_info       : "Markdown is supported."
-  comment_form_name_label    : "Όνομα"
-  comment_form_email_label   : "Διεύθυνση email"
-  comment_form_website_label : "Ιστοσελίδα (προαιρετικό)"
-  comment_btn_submit         : "Υπέβαλε ένα σχόλιο"
-  comment_btn_submitted      : "Έχει υποβληθεί"
-  comment_success_msg        : "Ευχαριστούμε για το σχόλιό σας! Θα εμφανιστεί στην ιστοσελίδα αφού εγκριθεί."
-  comment_error_msg          : "Λυπούμαστε, παρουσιάστηκε σφάλμα με την υποβολή σας. Παρακαλούμε βεβαιωθείτε ότι έχετε όλα τα απαιτούμενα πεδία συμπληρωμένα και δοκιμάστε ξανά."
-  loading_label              : "Φόρτωση..."
-gr-GR:
-  <<: *DEFAULT_GR
-
-# Swedish
-# -----------------
-sv: &DEFAULT_SV
-  page                       : "Sidan"
-  pagination_previous        : "Föregående"
-  pagination_next            : "Nästa"
-  breadcrumb_home_label      : "Hem"
-  breadcrumb_separator       : "/"
-  menu_label                 : "Meny ridå"
-  toc_label                  : "På denna sida"
-  ext_link_label             : "Direkt länk"
-  less_than                  : "mindre än"
-  minute_read                : "minut läsning"
-  share_on_label             : "Dela på"
-  meta_label                 :
-  tags_label                 : "Taggar:"
-  categories_label           : "Kategorier:"
-  date_label                 : "Uppdaterades:"
-  comments_label             : "Lämna en kommentar"
-  comments_title             : "Kommentarer"
-  more_label                 : "Lär dig mer"
-  related_label              : "Du kanske vill även läsa:"
-  follow_label               : "Följ:"
-  feed_label                 : "Flöde"
-  powered_by                 : "Framställd med"
-  website_label              : "Webbsida"
-  email_label                : "E-post"
-  recent_posts               : "Senaste inlägg"
-  undefined_wpm              : "Odefinerade parametrar words_per_minute i _config.yml"
-  comment_form_info          : "Din e-post adress kommer inte att publiceras. Obligatoriska fält är markerade."
-  comment_form_comment_label : "Kommentar"
-  comment_form_md_info       : "Använd Markdown för text-formateringen."
-  comment_form_name_label    : "Namn"
-  comment_form_email_label   : "E-post adress"
-  comment_form_website_label : "Webdsida (valfritt)"
-  comment_btn_submit         : "Skicka en kommentar"
-  comment_btn_submitted      : "Kommentaren har tagits emot"
-  comment_success_msg        : "Tack för din kommentar! Den kommer att visas på sidan så fort den har godkännts."
-  comment_error_msg          : "Tyvärr det har blivit något fel i en av fälten, se till att du fyller i alla rutor och försök igen."
-  loading_label              : "Laddar..."
-sv-SE:
-  <<: *DEFAULT_SV
-sv-FI:
-  <<: *DEFAULT_SV
-
-# Another locale
-# --------------
-#
diff --git a/_developers/becomming-a-committer.md b/_developers/becomming-a-committer.md
deleted file mode 100644
index f8ffd66..0000000
--- a/_developers/becomming-a-committer.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: "Becomming a Committer"
-lang: en
-ref: becomming-a-committer
-permalink: /developers/becomming-a-commiter
-excerpt: "Becoming a committer of Apache ServiceComb"
-last_modified_at: 2018-06-19T09:46:01+08:00
----
-
-ServiceComb follows the Apache way to build the community. Anyone can become a committer once they have contributed sufficiently to the project and earned the trust.
-
-## Contribute and Earn The Trust
-
-* [Download the releases](/release)
-* [Join the mailing list](mailto:dev@servicecomb.apache.org)
-* [Report bugs and/or feature requests](https://issues.apache.org/jira/projects/SCB/)
-
-See the [contributing](/developers/contributing) guide on how to become a contributor.
-
-ServiceComb is a meritocracy the same as Apache. Once you have shown sufficient sustained commitment to the project and earned the trust, the PMC may invite you to be a committer.
-
-There are multiple actions other than coding to build the trust in the ServiceComb community, code review, design discussion, user support, community outreach, documentation, project management etc. 
-
-## New Committer Process
-
-The ServiceComb community follows the Apache Community's [process](http://community.apache.org/newcommitter.html) on accepting a new committer.
-
-* Start the vote in @private.
-* If the vote passes, send an offer to become a committer with @private CC'ed.
-* Add the committer to the [team page](/developers/team)
-* [Setup committer rights](/developers/setup-committer-rights/)
diff --git a/_developers/cn/becomming-a-committer.md b/_developers/cn/becomming-a-committer.md
deleted file mode 100755
index bfeed77..0000000
--- a/_developers/cn/becomming-a-committer.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: "成为Committer"
-lang: cn
-ref: becomming-a-committer
-permalink: /cn/developers/becomming-a-commiter
-excerpt: "成为committer"
-last_modified_at: 2018-06-19T09:46:01+08:00
----
-
-ServiceComb 是按照Apache的做事方式来构建社区的,任何人只要他为社区做出了足够的贡献并获取到足够的信任就可以成为代码提交者。
-
-## 参与社区贡献
-
-* [下载发行版](/release)
-* [参加邮件列表讨论](mailto:dev@servicecomb.apache.org)
-* [提交Bug或者提交新的功能需求](https://issues.apache.org/jira/projects/SCB/)
-
-参见 [贡献社区](/developers/contributing) 获取更多成为贡献者的指导建议。
-
-ServiceComb采用了与Apache基金会相同的精英治理模式。 一旦您对项目表现出足够的持续承诺并赢得了信任,PMC可能会邀请您成为提交者。
-
-除了编码之外,还有多种贡献方式可以在ServiceComb社区中建立信任。例如代码审查,设计讨论,用户支持,社区拓展,文档,项目管理等。
-
-## 新提交者流程
-
-ServiceComb社区参照Apache[发展新提交者流程](http://community.apache.org/newcommitter.html)来发展新的提交者。
-
-* 在 @private 中进行投票.
-* 如果投票通过,项目管理委员会将向新发展的代码提交者发送邀请邮件,邮件同时抄送 @private。
-* 将代码提交者信息刷新到[开发团队](/developers/team)
-* [设置提交权限信息](/developers/setup-committer-rights/)
diff --git a/_developers/cn/contributing.md b/_developers/cn/contributing.md
deleted file mode 100755
index 0022441..0000000
--- a/_developers/cn/contributing.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: "如何做贡献"
-lang: cn
-ref: ServiceComb-contributing
-permalink: /cn/developers/contributing
-excerpt: "如何做贡献"
-last_modified_at: 2018-05-20T19:18:43+08:00
----
-{% include toc %}
-## 为Apache ServiceComb做贡献
-您可以通过很多方式帮助ServiceComb成长为更优秀的微服务框架——非常欢迎伸出援手!
-
-* 浏览文档,这样可以加深您对ServiceComb的了解,学习到知识,一旦发现文档写得不清晰或逻辑混乱的地方,请通知我们;
-* 下载代码,试一试我们介绍的功能,看看它是否与您预想的一样工作;
-* 分析源代码,如果希望了解更多技术细节,请在[Gitter](http://servicecomb.apache.org/cn/developers/use-gitter/)上提问,大家会尽快解答;
-* 希望炫一把黑科技体现您的实力?看看我们的 [issue tracker](https://issues.apache.org/jira/browse/SCB) 吧,欢迎您承接Open状态的Issues和未完成的特性,提交[PR](http://servicecomb.apache.org/cn/developers/submit-codes/),成为贡献者之一;
-* 如果您接触 ServiceComb不久并且很希望帮助我们,您可以先从[简单的任务](https://issues.apache.org/jira/browse/SCB-333?jql=project%20%3D%20SCB%20AND%20status%20%3D%20Open%20AND%20fixVersion%20in%20(EMPTY%2C%20java-chassis-1.0.0-m2)%20AND%20labels%20%3D%20newbie)入手,循序渐进,甚至成长为Committer;
-* 如果在使用ServiceComb的过程中发现有功能无法满足您的需求或出现问题,请在Issues中记录,并Watch项目,这样一旦这个问题有进展,都会第一时间通知到您。
-
-## 初次接触
-有下面的方式加入ServcieComb社区:
-
-- 订阅我们的[邮件列表](http://servicecomb.apache.org/cn/developers/subscribe-mail-list),并为您关注的话题发表意见;
-- 来[Gitter](https://gitter.im/ServiceCombUsers/Lobby)和大家打个招呼吧!
-
-## 改进文档
-文档是用户了解Apache ServiceComb最主要的方式,也是我们最需要帮助的地方!
-
-因此如果您对改进文档的质量感兴趣,不论是修订一个页面的地址、更正一个链接、以及写一篇更优秀的入门文档,我们都非常欢迎!
-
-我们的文档大多数是使用markdown格式编写的,您需要同步我们的[Website](https://github.com/apache/servicecomb-website)项目,直接在 github上编辑后提交PR即可。
-
-## 如果发现了一个Bug或问题
-
-请提交一个新的Issue在我们的[issue tracker](https://issues.apache.org/jira/browse/SCB)上,如果您能够提供一个JUnit测试用例来复现这个问题,那么我们就能够更快的解决它,例如已经有的[例子](https://github.com/apache/servicecomb-pack/tree/master/alpha/alpha-core/src/test/java/org/apache/servicecomb/pack/alpha/core),并且我们还能够持续的确认这个问题不会再次出现在未来的版本中。
-
-## 编写代码
-
-ServiceComb的所有项目都在 [Github](https://github.com/search?q=org%3Aapache+servicecomb)上,包含下面几个子项目:
-
-| 项目名                                                                        | 项目简介                   | 编程语言 |
-|-------------------------------------------------------------------------------|----------------------------|----------|
-| [servicecomb-java-chassis](https://github.com/apache/servicecomb-java-chassis)       | Java微服务框架(SDK)      | Java     |
-| [servicecomb-service-center](https://github.com/apache/servicecomb-service-center)               | 服务中心(服务注册及发现) | Golang       |
-| [servicecomb-pack](https://github.com/apache/servicecomb-pack)                                   | 支持Saga/TCC等多协议的分布式事务方案   | Java     |
-| [servicecomb-mesher](https://github.com/apache/servicecomb-Mesher)       | 微服务网格      | Golang    |
-| [servicecomb-kie](https://github.com/apache/servicecomb-kie)                                   |  微服务配置管理中心  | Golang    |
-| [servicecomb-toolkit](https://github.com/apache/servicecomb-toolkit)               | 基于契约的微服务开发工具 | Java       |
-| [servicecomb-samples](https://github.com/apache/servicecomb-samples)                                   | 提供了微服务示例   | Java     |
-| [servicecomb-fence](https://github.com/apache/servicecomb-fence)               | ServiceComb Java-chassis安全认证解决方案 | Java       |
-| [servicecomb-docs](https://github.com/apache/servicecomb-docs) | ServiceComb用户手册            | CSS |
-| [servicecomb-website](https://github.com/apache/servicecomb-website) | ServiceComb网站            | HTML |
-| [servicecomb-saga-actuator](https://github.com/apache/servicecomb-saga-actuator)                                   | 集中式Saga事务协调器 (归档)   | Java     |
-
-如果希望给ServiceComb提交代码,您需要从github上fork对应的项目至您的项目空间下,为您提交的代码创建一个新的分支,添加源项目为upstream,并提交PR,更详细的步骤可以参考[这篇文档](http://servicecomb.apache.org/cn/developers/submit-codes/)。
diff --git a/_developers/cn/developer-guide.md b/_developers/cn/developer-guide.md
deleted file mode 100755
index 0f30a7e..0000000
--- a/_developers/cn/developer-guide.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: "项目列表"
-lang: cn
-ref: developer-guide
-permalink: /cn/developers/
-excerpt: "项目列表"
-last_modified_at: 2017-06-24T19:18:43+08:00
----
-{% include toc %}
-
-**ServiceComb** 项目托管在[Github](https://github.com/apache?q=servicecomb)上,其各子项目如下表所示:
-
-| 项目名                                                                        | 项目简介                   | 编程语言 |
-|-------------------------------------------------------------------------------|----------------------------|----------|
-| [servicecomb-java-chassis](https://github.com/apache/servicecomb-java-chassis)       | Java微服务框架(SDK)      | Java     |
-| [servicecomb-service-center](https://github.com/apache/servicecomb-service-center)               | 服务中心(服务注册及发现) | Golang       |
-| [servicecomb-pack](https://github.com/apache/servicecomb-pack)                                   | 支持Saga/TCC等多协议的分布式事务方案   | Java     |
-| [servicecomb-mesher](https://github.com/apache/servicecomb-Mesher)       | 微服务网格      | Golang    |
-| [servicecomb-kie](https://github.com/apache/servicecomb-kie)                                   |  微服务配置管理中心  | Golang    |
-| [servicecomb-toolkit](https://github.com/apache/servicecomb-toolkit)               | 基于契约的微服务开发工具 | Java       |
-| [servicecomb-samples](https://github.com/apache/servicecomb-samples)                                   | 提供了微服务示例   | Java     |
-| [servicecomb-fence](https://github.com/apache/servicecomb-fence)               | ServiceComb Java-chassis安全认证解决方案 | Java       |
-| [servicecomb-docs](https://github.com/apache/servicecomb-docs) | ServiceComb用户手册            | CSS |
-| [servicecomb-website](https://github.com/apache/servicecomb-website) | ServiceComb网站            | HTML |
-| [servicecomb-saga-actuator](https://github.com/apache/servicecomb-saga-actuator)                                   | 集中式Saga事务协调器 (归档)   | Java     |
-
-参与 ServiceComb 项目并为其作出贡献的方法有很多:代码实现、测试编写、流程工具改进、文档完善等。您可以选择上述任何一个或多个感兴趣的项目进行贡献。具体贡献事宜可参考以下指南:
-
-* [开发环境准备](/cn/developers/setup-develop-environment/):主要介绍git,JDK,Maven以及IDE的安装及配置。
-* [代码提交指南](/cn/developers/submit-codes/):主要介绍功能特性需求及现有bug的获取途径,提交代码前的测试事宜,如何提交PR以及如何解决冲突等。
-
-同时,也欢迎您订阅[ServiceComb邮件列表](mailto:dev-subscribe@servicecomb.apache.org)了解 ServiceComb 项目的开发动态以及进行话题讨论。订阅的方法可参阅[邮件列表订阅指南](/cn/developers/subscribe-mail-list/)。
diff --git a/_developers/cn/release_guide.md b/_developers/cn/release_guide.md
deleted file mode 100755
index 57e9ed8..0000000
--- a/_developers/cn/release_guide.md
+++ /dev/null
@@ -1,327 +0,0 @@
----
-title: "ServiceComb发版指南"
-lang: cn
-ref: release_guide
-permalink: /cn/developers/release-guide/
-excerpt: "ServiceComb发版指南 介绍如何在Apache发版"
-last_modified_at:  2018-05-08T09:55:44+08:00
-author: Asif Siddiqui
-tags: [发版]
-redirect_from:
-  - /theme-setup/
----
-
-{% include toc %}
-
-本文向大家介绍如何在Apache上进行ServiceComb项目发版.
-
-## 前期准备
-
-1. 项目CI应该是正常的(绿色的)。
-2. 确定发布版本号。
-3. 因为发版的过程中需要使用[密钥](https://www.apache.org/dev/openpgp.html#generate-key)对[发布版本进行签名](https://www.apache.org/dev/release-signing),请确保密钥中的公钥已经[发布](https://www.apache.org/dev/openpgp.html#publish-in-web-space)到公钥服务器。
-4. 熟悉maven版本发行相关的设置。
-
-## 配置Maven
-ServiceComb Java-Chassis和Saga使用Maven进行版本发布,我们需要在发布前对Maven进行一些配置。
-
-在使用Maven把发行包发布到仓库之前,参考了Maven项目的设定[指南](http://maven.apache.org/developers/committer-settings.html)。请特别注意[加密密码](http://maven.apache.org/guides/mini/guide-encryption.html)。
-
-```
-<settings>
-  ...
-  <servers>
-    <!-- Per http://maven.apache.org/developers/committer-settings.html -->
-
-    <!-- To stage a release of some part of Maven -->
-    <server>
-      <id>apache.releases.https</id>
-      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
-      <password> <!-- YOUR APACHE LDAP PASSWORD --> </password>
-    </server>
-  </servers>
-  ...
-  <profiles>
-    <profile>
-      <id>apache-release</id>
-      <properties>
-        <gpg.useagent>false</gpg.useagent>
-        <gpg.passphrase><!-- YOUR GPG PASSPHRASE --></gpg.passphrase>
-        <test>false</test>
-      </properties>
-    </profile>
-  </profiles>
-...
-</settings>
-```
-
-## 发行Service-Center
-
-***准备和校验发行包***
-
-1. 克隆service-center代码。
-```
-git clone https://github.com/apache/servicecomb-service-center.git
-cd servicecomb-service-center
-gvt restore
-```
-
-2. 在master分支上打上准备发布版本的标签。
-
-3. 运行RAT工具,检查所有源文件头都有合法的ASF声明, 请参考[该文档](https://github.com/apache/servicecomb-service-center/tree/master/docs/release)。
-
-4. 运行`make_release.sh`脚本,请参考[该文档](https://github.com/apache/servicecomb-service-center/tree/master/scripts/release)。
-
-5. 上一步将会在根目录下生成发行包。
-
-6. 在Linux与Windows环境下运行前端与service-center。
-
-7. 进行[集成测试](https://github.com/apache/servicecomb-service-center/tree/master/integration)。
-
-8. 如果以上全部测试都通过了,将发行包分发给同事在不同机器上进行验证。
-
-9. 将标签推送到主仓库。
-
-***给发行包签名***
-
-10. 从Github下载要发行版本[标签](https://github.com/apache/servicecomb-service-center/tags)的源码包。
-
-11. 生成Linux发行包,Windows发行包和源码包的签名和校验和。
-
-12. 上传发行版到[Apache发行开发仓库](https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-service-center/).
-
-13. 从SVN下载发行包,验证签名和校验。
-
-***PMC批准***
-
-14. 发送投票邮件至 ***dev@servicecomb.apache.org***, 发起PMC批准.
-
-15. 等待72小时,或者获得3票+1并且没有-1。如果有-1票,修正问题并从***第1步***重新开始。
-
-16. 将投票结果发布到dev@servicecomb.apache.org。
-
-***通告***
-
-20. 上传发行包至[Apache发行仓库](https://dist.apache.org/repos/dist/release/servicecomb/servicecomb-service-center/)。
-
-21. 等待24小时,让所有镜像同步。
-
-22. 将[dev](https://dist.apache.org/repos/dist/dev)的文件移动到[release](https://dist.apache.org/repos/dist/release)目录中,同时确认已经被存档,同时更新网站上相关链接。
-
-23. 上传发行页面至ServiceComb网站。
-
-24. 发送发行通告邮件到dev@servicecomb.apache.org, announce@apache.org。
-
-
-## 发行Java-Chassis
-
-发布版本前,首先确定该版本所有的 apache issues 都已经关闭, 并且
-登录 [apache issue 网站](https://issues.apache.org/jira/projects/SCB), 点击发布, 生成该版本的 release notes。 
-
-* ***准备待发布版本***
-
-  clone 需要发布版本的分支到开发环境(比如 master), 修改版本号, 并提交代码到仓库。
-  假设当前版本为 `2.0.0-SNAPSHOT`,发布版本为 `2.0.0`。 执行:
-
-        ```
-        mvn versions:set -DgenerateBackupPoms=false -DnewVersion=2.0.0
-        ```
-        
-  然后执行:
-
-        ```
-        mvn clean install -Pit
-        ```
-        
-  如果编译成功,可以提交PR,代码检视通过后合入仓库。
-
-* ***进行软件包发布***
-
-  需要准备 Linux 开发环境,并确保网络能够往 maven 中央库上传文件。
-
-1. 如果 `~/.gnupg` 中没有GPG密钥文件,则将GPG密钥文件拷贝至 `~/.gnupg` 文件夹。 文件列表如下:
-
-        ```
-        gpg.conf
-        pubring.gpg
-        random_seed
-        secring.gpg
-        trustdb.gpg
-        ```
-
-2. 更新 `~/.m2/settings.xml` 文件中的GPG密码。
-
-3. 更新 `~/.m2/settings.xml` 文件中的Apache帐户用户名和密码。
-
-4. 克隆java-chassis代码
-
-        ```
-        git clone https://github.com/apache/servicecomb-java-chassis.git
-        ```
-   
-5. 运行以下命令。运行过程中可能需要输入 gpg 密码,
-
-        ```
-        mvn clean deploy -DskipTests -Prelease -Pdistribution
-        ```
-        
-    如果提示 gpg 失败, 尝试执行下面的命令后,重新执行上面的命令:
-
-        ```
-        export GPG_TTY=$(tty)
-        ```
-
-6. 如果执行失败,需要解决问题。 并参考第7步`drop`临时仓库,重新执行第5步。
-
-7. 如果步骤5命令执行成功,则所有的jar包都已经成功上传至maven临时仓库。  
-    使用apache帐号登录到 [Apache Nexus](https://repository.apache.org/) ,点击 “Staging Repositories”, 搜索 “servicecomb”,
-    根据时间找到最近的java-chassis相关的记录,close该条记录,得到maven临时仓库的链接,例
-    如:`https://repository.apache.org/content/repositories/orgapacheservicecomb-1385`。
-
-8. 在 servicecomb-java-chassis 的 github 的 release 页面,点击 release, 发布 pre release 版本, 打上 tag 。
-
-* ***给发行包签名***
-
-1. 从临时仓库下载二进制包及签名, 例如:
- 
-        ```
-        https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip  
-        https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip.asc
-        ``` 
-
-2. 从临时仓库下载源码包及签名,例如:
-
-        ```
-        https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-src.zip
-        https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-src.zip.asc
-        ```  
-
-3. 生成二进制包和源码包的校验和,例如:
-
-        ```
-        sha512sum -b apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip > apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip.sha512  
-        sha512sum -b apache-servicecomb-java-chassis-distribution-1.2.0-src.zip > apache-servicecomb-java-chassis-distribution-1.2.0-src.zip.sha512  
-        ```  
-
-4. 将上述步骤相关的文件,上传到 [Apache开发仓库](https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-java-chassis/) 。 SVN命令:
-
-        ```
-        svn co https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-java-chassis
-        cd serviecomb-java-chassis
-        mkdir -p 1.2.0/rc01
-        cp xxx/* 1.2.0/rc01
-        svn add 1.2.0
-        svn ci 1.2.0
-        ```
-
-5. 从SVN下载发行包,验证签名和校验。
-
-* ***PMC批准***
-
-1. 发送投票邮件至 ***dev@servicecomb.apache.org***, 发起PMC批准.
-
-2. 等待72小时,或者获得3票+1并且没有-1。如果有-1票,修正问题,重新开始版本发布流程(视具体的失败情况,可能
-    需要重新生成 release notes,删除svn临时文件,删除临时`Staging repositories`等)。
-
-3. 将投票结果发布到dev@servicecomb.apache.org。
-
-* ***更新文档和通告***
-
-1. 在 servicecomb-java-chassis 的 github 的 release 页面,将 pre release 修改为正式 release。完成 release notes书写。
-
-2. 将 [dev](https://dist.apache.org/repos/dist/dev) 的文件移动到 [release](https://dist.apache.org/repos/dist/release) 目录中。
-
-        ```
-        cp dev/servicecomb/servicecomb-java-chassis/2.0.0/* release/servicecomb/servicecomb-java-chassis/2.0.0/
-        cd release/servicecomb/servicecomb-java-chassis/
-        svn add 2.0.0
-        svn ci 2.0.0
-        ```
-
-    同时删除 [dev](https://dist.apache.org/repos/dist/dev) 的临时内容。
-
-        ```
-        svn rm 1.2.0
-        svn ci .
-        ```
-
-3. 使用apache帐号登录到 [Apache Nexus](https://repository.apache.org/),点击 “Staging Repositories” ,搜索 “servicecomb” ,
-    找到需要发布的 java-chassis 记录,点击 “Release” 。 如果由其他临时 “Staging Repositories” ,可以点击 “Drop” 一并删除。
-
-4. 等待24小时,让所有镜像同步。
-
-5. 更新官网发布信息。 修改内容可以参考 [1.3.0 RP](https://github.com/apache/servicecomb-website/pull/210)
-    或者 [2.0.0 RP](https://github.com/apache/servicecomb-website/pull/240)
-
-6. 发送发行通告邮件到 `dev@servicecomb.apache.org`, `announce@apache.org`。
-
-
-## 发行Pack
-
-***准备和校验发行包***
-
-1. 如果`~/.gnupg`中没有GPG密钥文件,则将GPG密钥文件拷贝至`~/.gnupg`文件夹。
-  ```
-  gpg.conf
-  pubring.gpg
-  random_seed
-  secring.gpg
-  trustdb.gpg
-  ```
-
-2. 更新`~/.m2/settings.xml`文件中的GPG密码。
-
-3. 更新`~/.m2/settings.xml`文件中的Apache帐户用户名和密码。
-
-4. 克隆Pack代码。
-```
-git clone https://github.com/apache/servicecomb-pack.git
-```
-
-5. 使用以下perl命令,替换所有pom.xml文件中的版本号并提交改动至本地。
-```
-find . -name 'pom.xml'|xargs perl -pi -e 's/1.0.0-m2-SNAPSHOT/1.0.0-m2/g'
-```
-6. 在需要release的分支上打上准备发布版本的标签。
-
-7. 运行以下命令。
-```
-mvn deploy -DskipTests -Prelease -Pdistribution -Ppassphrase
-```
-
-8. 上述命令执行成功,所有的jar包都成功上传至临时仓库后,运行门槛测试以验证基本功能, 如果执行失败,需要解决问题,从步骤7重新开始。
-
-9. 如果步骤7命令执行成功,则所有的jar包都已经成功上传至maven临时仓库。  
-   使用apache帐号登录到[Apache Nexus](https://repository.apache.org/),点击“Staging Repositories”,搜索“servicecomb-pack”,根据时间找到最近的pack相关的记录,close该条记录,得到maven临时仓库的链接,例如:`https://repository.apache.org/content/repositories/orgapacheservicecomb-1385`
-
-10. 将release分支以及标签分别push至主仓库。
-
-***给发行包签名***
-
-13. 从临时仓库下载二进制包和源码包。
-
-14. 生成二进制包和源码包的签名和校验和。
-
-15. 上传发行包到[Apache发行开发仓库](https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-pack/).
-
-16. 从SVN下载发行包,验证签名和校验。
-
-***PMC批准***
-
-17. 发送投票邮件至 ***dev@servicecomb.apache.org***, 发起PMC批准.
-
-18. 等待72小时,或者获得3票+1并且没有-1。如果有-1票,修正问题并从***第1步***重新开始。
-
-19. 将投票结果发布到dev@servicecomb.apache.org。
-
-***通告***
-
-20. 上传发行包至[Apache发行仓库](https://dist.apache.org/repos/dist/release/servicecomb/servicecomb-pack/)。
-
-21. 等待24小时,让所有镜像同步。
-
-22. 将[dev](https://dist.apache.org/repos/dist/dev)的文件移动到[release](https://dist.apache.org/repos/dist/release)目录中,同时确认已经被存档,同时更新网站上相关链接。
-
-23. 上传发行页面至ServiceComb网站。
-
-24. 发送发行通告邮件到dev@servicecomb.apache.org, announce@apache.org。
diff --git a/_developers/cn/release_validation_guide.md b/_developers/cn/release_validation_guide.md
deleted file mode 100644
index 8863ee9..0000000
--- a/_developers/cn/release_validation_guide.md
+++ /dev/null
@@ -1,186 +0,0 @@
----
-title: "ServiceComb发版验证指南"
-lang: cn
-ref: release_validation_guide
-permalink: /cn/developers/release-validation-guide/
-excerpt: "ServiceComb发版验证指南"
-last_modified_at:  2018-06-12T00:00:00+08:00
-author: Yangyong Zheng
-tags: [发版,验证]
-redirect_from:
-  - /theme-setup/
----
-
-{% include toc %}
-
-ServiceComb项目发新版本时,会发起投票邀请大家验证新版本的代码和Repo是否正确,本文向大家介绍如何进行验证工作。
-
-## 验证Java Chassis
-### 环境准备
-1. 请确保网络通畅;
-2. 请检查依赖软件已经正确安装:
-* [JDK1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
-* [Maven 3.x](https://maven.apache.org/download.cgi)
-* [Docker](https://www.docker.com/get-docker)
-
->提示:如果验证环境操作系统是Windows,需要安装[Docker Machine](https://docs.docker.com/machine/install-machine/)
-
-### 验证源代码包Hash和签名正确
-请在Vote邮件中找到**Release Candidate**的URL,例如:
-
-```text
-Release Candidate : https://dist.apache.org/repos/dist/dev/incubator/servicecomb/incubator-servicecomb-java-chassis/1.0.0-m2/rc-01/
-```
-
-在浏览器中打开,下载`src.zip`结尾的源代码压缩包,以及同名的`src.zip.asc`签名文件和`src.zip.sha512`哈希文件,保持三个文件在同一目录下。
-
-请在Vote邮件中找到**Key**的URL:
-
-```text
-Keys to verify the Release Candidate : https://dist.apache.org/repos/dist/dev/incubator/servicecomb/KEYS
-```
-
-在浏览器中打开,保存内容为KEYS文件并导入:
-
-```bash
-gpg --import KEYS
-```
-
-提示`Mohammad Asif Siddiqui (ServiceComb Code Signing Key) <as...@apache.org>`成功导入或未变化(已导入过)
-
-验证签名:
-
-```bash
-gpg --verify xxx-src.zip.asc xxx-src.zip
-```
-
-提示`Good signature from "Mohammad Asif Siddiqui (ServiceComb Code Signing Key) <as...@apache.org>"`代表签名正确。
-
-验证Hash:
-
-```bash
-sha512sum -c xxx-src.zip.sha512
-```
-
-提示`OK`代表Hash正确。
-
-### 验证源代码功能正确
-解压源代码:
-
-```bash
-unzip xxx-src.zip
-```
-
-使用`cd`命令切换到解压出来的源代码根目录下,执行:
-
-```bash
-mvn clean install -Pdocker -Pit -Pdemo-run-release
-```
-
->提示:如果验证环境操作系统是Windows:
->```bash
->mvn clean install -Pdocker -Pit -Pdocker-machine -Pdemo-run-release
->```
-
-等待所有的测试通过,依据配置环境不同,约耗时10~30分钟。
-
-### 验证Staging Repository内的库正确
-首先删除本地Repo中ServiceComb的全部缓存:
-
-```bash
-rm -rf /root/.m2/repository/org/apache/servicecomb/
-```
-
->提示:如果不是root用户,请修改对应的路径
-
-请在Vote邮件中找到**Staging Repository**的URL:
-
-```text
-Staging Repository : https://repository.apache.org/content/repositories/orgapacheservicecomb-xxxx/
-```
-
-之后在maven的`settings.xml`中添加Staging Repository地址配置:
-
-```xml
-<settings>
-	<profiles>
-	   <profile>
-		  <repositories>
-			<repository>
-			  <releases />
-			  <snapshots>
-				<enabled>false</enabled>
-			  </snapshots>
-			  <id>repo.apache.staging</id>
-			  <url>{Vote邮件中的Staging Repository URL}</url>
-			</repository>
-		  </repositories>
-		  <pluginRepositories>
-			<pluginRepository>
-			  <releases />
-			  <snapshots>
-				<enabled>false</enabled>
-			  </snapshots>
-			  <id>repo.apache.staging</id>
-			  <url>{Vote邮件中的Staging Repository URL}</url>
-			</pluginRepository>
-		  </pluginRepositories>
-		  <id>staging</id>
-		</profile>
-	</profiles>
-</settings>
-```
-
-一切就绪后,使用`cd`命令切换到**源代码demo目录(注意不是根目录)下**,执行:
-
-```bash
-mvn clean install -Pdocker -Pstaging -Pit -Pdemo-run-release
-```
-
->提示:如果验证环境操作系统是Windows:
->```bash
->mvn clean install -Pdocker -Pstaging -Pdocker-machine  -Pit -Pdemo-run-release
->```
-
-**测试过程中可以观察到Java Chassis的依赖将从我们之前指定的Apache Staging Repository下载:**
-
-```text
-Downloading: https://repository.apache.org/content/repositories/orgapacheservicecomb-xxxx/xxxx.pom
-```
-
-等待所有的测试通过,依据配置环境不同,约耗时5~15分钟。
-
-### 验证Spring Cloud集成功能正确
-从https://github.com/ServiceComb/ServiceComb-Company-WorkShop Clone最新Company示例项目代码,切换到`1.x`分支:
-
-```bash
-git clone https://github.com/ServiceComb/ServiceComb-Company-WorkShop.git
-git checkout 1.x
-```
-
-修改项目根目录中的`pom.xml`,更改其中的`<java-chassis.version>`配置为当前发版版本,例如1.0.0-m2:
-
-```xml
-<properties>
-  <java-chassis.version>1.0.0-m2</java-chassis.version>
-</properties>
-```
-
-在项目根目录下执行:
-
-```bash
-mvn clean verify -Pdocker -Pstaging
-```
-
->提示:如果验证环境操作系统是Windows:
->```bash
->mvn clean verify -Pdocker -Pstaging -Pdocker-machine
->```
-
-等待所有的测试通过,依据配置环境不同,约耗时5~10分钟。
-
-### 验证Samples是否正确(可选)
-
-下载 [samples 代码](https://github.com/apache/servicecomb-samples), 由于 samples 较多, 可以选择部分
-进行验证, 详细参考每一个 sample 提供的 README 文件。
- 
diff --git a/_developers/cn/setup-committer-rights.md b/_developers/cn/setup-committer-rights.md
deleted file mode 100644
index 38b53e8..0000000
--- a/_developers/cn/setup-committer-rights.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: "Committer权限设置"
-lang: cn
-ref: setup-committer-rights
-permalink: /cn/developers/setup-committer-rights/
-excerpt: "How to set up repo write rights for committer"
-last_modified_at: 2018-05-08T14:49:00
----
-
-{% include toc %}
-
-恭喜您成为Apache ServiceComb 项目宝贵的 committer !
-
-本文将指导您设置对 Github 上托管的 Apache ServiceComb 仓库的权限。
-
-如果您已经是Apache ServiceComb 项目的 committer,需要完成下面三个简单的步骤才能获得这些权限:
-
-* 对 Apache 账号授权
-* 对 Github 账号授权
-* 加入 Apache Github 组织
-
-在您喜欢的浏览器中打开 [https://gitbox.apache.org/setup/](https://gitbox.apache.org/setup/) ,您应该能看到如下所示的页面
-
-![pre authorization]({{ site.url }}{{ site.baseurl }}/assets/images/gitbox/apache-pre-auth.png){: .align-center}
-
-接下来开始授权!
-
-## 授权 Apache 账户
-点击 `Start ASF Oauth` 链接并按照页面上的说明使用您的 Apache 账号登录。
-
-![apache account authorization]({{ site.url }}{{ site.baseurl }}/assets/images/gitbox/apache-auth.png){: .align-center}
-
-## 授权 Github 账户
-首先需要在 Github 账号上[启用2FA](https://github.com/settings/security) 安全设置。
-
-如果2FA成功设置,您的Github账号安全设置页面应如下图所示。
-
-![github 2FA]({{ site.url }}{{ site.baseurl }}/assets/images/gitbox/github-2fa.png){: .align-center}
-
-更多安全设置资料请参考 [Github 2FA 资料](https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/)。
-
-设置好 Github 2FA后,点击 `Auth on GitHub` 并按照说明授权Github 账号。
-
-![github account authorization]({{ site.url }}{{ site.baseurl }}/assets/images/gitbox/github-auth.png){: .align-center}
-
-## 加入 Apache Github 组织
-打开 [https://id.apache.org/](https://id.apache.org/) 并登陆到您的 Apache 账户。
-
-登陆后,填写您的 github 账户用户名并保存:
-
-![github account linking]({{ site.url }}{{ site.baseurl }}/assets/images/gitbox/link-apache-github-id.png){: .align-center}
-
-此后不久(30分钟内)将向您发送组织邀请,您可以在 Github 上访问 [Apache](https://github.com/apache/) 看看是否有待处理的邀请。这可能需要30分钟。
-
-然后接受邀请并等待您添加为 Apache ServiceComb 项目的 committer (您将通过电子邮件获取通知)。
-
-一旦您被授予权限,您将看到如下图所示的内容:
-
-![post authorization]({{ site.url }}{{ site.baseurl }}/assets/images/gitbox/apache-post-auth.png){: .align-center}
-
-恭喜!现在您可以访问 Apache ServiceComb 项目,在该项目下您将有权限Merge开发者的PR。
diff --git a/_developers/cn/setup-develop-environment.md b/_developers/cn/setup-develop-environment.md
deleted file mode 100755
index 2615230..0000000
--- a/_developers/cn/setup-develop-environment.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: "开发环境准备"
-lang: cn
-ref: setup-develop-environment
-permalink: /cn/developers/setup-develop-environment/
-excerpt: "开发环境准备"
-last_modified_at: 2017-06-24T18:48:43+08:00
----
-
-{% include toc %}
-
-## 基本环境准备
-在您开始前,请确保以下应用已安装:
-* **Git**,安装详情可参考[Git安装教程](https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git){:target="_blank"}
-* **JDK 1.8**,安装详情可参考[JDK安装教程](https://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html){:target="_blank"}
-* **Maven 3.x**,安装详情可参考[Maven安装教程](https://maven.apache.org/install.html){:target="_blank"}
-* **Docker**,安装详情可参考[Docker 安装教程](https://docs.docker.com/engine/installation/){:target="_blank"}
-* **Service Center**, 安装详情可参考[Service Center安装教程](/cn/docs/products/service-center/install)
-* **IntelliJ Idea IDE**(可选,您可以使用其他心仪的IDE,如eclipse),安装详情可参考[IntelliJ安装教程](https://www.jetbrains.com/help/idea/installing-and-launching.html){:target="_blank"}
-
-## Git配置
-1. 注册Github。由于ServiceComb的代码是托管在Github上的,所以您需要有一个Github的帐号,可前往 [https://github.com/join?source=header-home](https://github.com/join?source=header-home) 进行注册,如您已有Github帐号,则可跳过此步。注册完成后直接在 [https://github.com/login?return_to=%2Fjoin%3Fsource%3Dheader-home](https://github.com/login?return_to=%2Fjoin%3Fsource%3Dheader-home) 进行登录即可。
-2. 配置Git。主要配置Git的个人信息和设置免密码提交代码。个人信息可通过以下指令进行配置:
-
-   ```bash
-   git config --global user.name <your-user-name>
-   git config --global user.email <your-email-address>
-   ```
-
-   其中,请将\<your-user-name\>和\<your-email-address\>替换为您在Github上注册用到的用户名和邮箱信息。设置免密码提交代码可参考[Git免密码提交代码教程](https://stackoverflow.com/a/8588786){:target="_blank"}。
-3. 获取项目代码。以 [ServiceComb-Java-Chassis](https://github.com/apache/servicecomb-java-chassis) 项目为例,可直接执行以下指令获取代码:
-
-   ```bash
-   git clone https://github.com/apache/servicecomb-java-chassis.git
-   ```
-
-## IDE 环境配置
-现有支持Java开发的IDE很多,如Eclipse, IntelliJ IDEA和STS等。我们在此推荐使用IntelliJ IDEA,对于日常开发,其社区版的功能已经足够了。在安装完IntelliJ IDEA后,您可以根据[初始化设置教程](https://www.jetbrains.com/help/idea/installing-and-launching.html#d325787e291)对IntelliJ IDEA进行配置,随后可通过阅读[必备快捷键](https://www.jetbrains.com/help/idea/keyboard-shortcuts-you-cannot-miss.html)了解常用的快捷键。
-
-Java Chassis和Saga项目使用了[Google Code Style](https://github.com/google/styleguide)作为代码风格,配置文件可以在本项目 `etc` 目录下找到。其中,目录中也有Eclipse的代码风格,读者可以直接导入使用。
-
-![code style files]({{ site.url }}{{ site.baseurl }}/assets/images/intellij.code.style.3.png){: .align-center}
-
-{% include toc %}
-
-### IntelliJ IDEA 配置
-[IntelliJ IDEA](https://www.jetbrains.com/idea/download/)的配置方法如下
-
-1. 打开IntelliJ配置
-![IntelliJ Settings]({{ site.url }}{{ site.baseurl }}/assets/images/intellij.code.style.4.png){: .align-center}
-
-1. Import 配置文件 `etc/intellij-java-google-style.xml`
-![import code style]({{ site.url }}{{ site.baseurl }}/assets/images/intellij.code.style.1.png){: .align-center}
-
-1. 打开已修改而未提交的文件,并打开格式化文件对话框
-![reformat file dialog]({{ site.url }}{{ site.baseurl }}/assets/images/intellij.code.style.5.png){: .align-center}
-
-1. 选择只格式化修改部分
-![reformat options]({{ site.url }}{{ site.baseurl }}/assets/images/intellij.code.style.2.png){: .align-center}
-
-配置完成后,后续按快捷键 (Ctrl+Alt+i) 格式化修改文件即可。更多关于IntelliJ的使用技巧可阅读[IntelliJ教程](https://www.jetbrains.com/help/idea/tutorials.html)。
-
-## 下一步
-
-* 阅读[代码提交指南](/cn/developers/submit-codes/)
diff --git a/_developers/cn/sonarcloud-how-to.md b/_developers/cn/sonarcloud-how-to.md
deleted file mode 100755
index 7d6b926..0000000
--- a/_developers/cn/sonarcloud-how-to.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: "SonarCloud集成指南"
-lang: cn
-ref: sonarcloud-how-to
-permalink: /cn/developers/sonarcloud-how-to/
-excerpt: "SonarCloud集成指南"
-last_modified_at:  2019-11-15T16:55:44+08:00
-author: Daniel Qian
-redirect_from:
-  - /theme-setup/
----
-
-{% include toc %}
-
-本文向大家介绍如何在Apache ServiceComb中集成SonarCloud。
-
-## 步骤
-
-1. 首先你是Github的Apache组织的成员。
-2. 用你的Github账号登录 [sonarcloud.io](https://sonarcloud.io)。
-3. 在 [Jira Infrastructure ](https://issues.apache.org/jira/projects/INFRA/) 创建一个JIRA请求在SonarCloud中创建项目,样式可参考[这个](https://issues.apache.org/jira/browse/INFRA-19444)。在这个JIRA中要提供仓库的Github地址,project-key(在SonarCloud中唯一表示你项目的ID),作为项目Admin的Github账号,一般来说就是你自己。
-4. 等待INFRA团队替你创建项目。然后你能在SonarCloud中看到了。
-5. 根据SonarCloud中的指示修改你的`.travis.yml`
-
-### 关于浅克隆
-
-Travis[默认使用浅克隆](https://docs.travis-ci.com/user/customizing-the-build/#git-clone-depth),而 SonarCloud需要commit信息,因此你需要禁用浅克隆:
-
-```yaml
-git:
-  depth: false
-```
-
-### 关于PR
-
-因为Travis不支持在PR中启用SonarCloud集成,因此你需要对构建脚本做类似下面的改动:
-
-```bash
-echo "TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST"
-if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
-  echo "Not a pull request build, running build with sonar"
-  mvn ... sonar:sonar -Dsonar.projectKey=<project-key>
-else
-  echo "Pull request build or local build"
-  mvn ...
-fi;
-```
-
-## 参考资料
-
-* [Apache CWiki - SonarQube Analysis](https://cwiki.apache.org/confluence/display/INFRA/SonarQube+Analysis)
-* [Travis - SonarCloud](https://docs.travis-ci.com/user/sonarcloud/)
-
diff --git a/_developers/cn/submit-codes.md b/_developers/cn/submit-codes.md
deleted file mode 100755
index bbf35a4..0000000
--- a/_developers/cn/submit-codes.md
+++ /dev/null
@@ -1,123 +0,0 @@
----
-title: "代码提交指南"
-lang: cn
-ref: submit-codes
-permalink: /cn/developers/submit-codes/
-excerpt: "介绍如何向 ServiceComb 项目提交代码"
-last_modified_at: 2017-09-08T20:26:43-20:46
----
-
-{% include toc %}
-
-## 贡献途径
-  ServiceComb正在不断成长中,也希望能找到更多志同道合的同伴一起成长和进步。向ServiceComb 贡献的途径有多种:
-* 完善文档。完善网站上的文档或者项目中的介绍文档和API说明文档。其中,网站文档的完善可通过网站最底端的**报告本网页问题**或**在Github上编辑此页**对文档内容进行完善。
-* 实现功能特性需求或修复BUG。项目的功能特性需求或者已发现但未修复的BUG都会在项目中的issue处看到,以[Saga](https://github.com/apache/servicecomb-saga/issues)项目为例,一般都会带有类似 **enhancement** 或类似 **bug** 的标签来说明这是功能需求还是BUG,读者可以结合自己的兴趣点来选择。此外,您也可以通过日常使用或阅读代码时发现BUG并以Issue的方式进行描述并针对该BUG提交PR,帮助我们进一步改进。同时,也欢迎您提出需求并在实现后提交PR。
-
-   ![寻觅功能需求示例](/assets/images/find-features-by-example.png){: .align-center}
-
-## 运行测试
-  在您提交代码前,请先按照项目README中说明的自动测试部分对代码的功能性和实现上的正确性进行验证。
-
-## PR指南
-  在 [Github](https://github.com/search?q=org%3Aapache+servicecomb) 上面可以很方便地提交 [Pull Request (PR)](https://help.github.com/articles/about-pull-requests/),下面将以本网站项目[apache/servicecomb-website](https://github.com/apache/servicecomb-website) 为例(如果是其他项目,请替换项目名servicecomb-website)。
-
-### Fork仓库
-
-  进入 apache/servicecomb-website 的 [github 页面](https://github.com/apache/servicecomb-website) ,点击右上角按钮 `Fork` 进行 Fork。
-
-![体质指数应用运行界面](/assets/images/fork-repo.jpg){: .align-center}
-
-### 配置git和提交修改
-
-- 将代码克隆到本地:
-
-  ```shell
-  git clone https://github.com/<your_github_name>/servicecomb-website.git
-  ```
-
-  注意:请将 \<your\_github\_name\> 替换为您的github名字。
-
-
-  clone完成后,origin会默认指向github上的远程fork地址。
-
-- 将 apache/servicecomb-website 添加为本地仓库的远程分支 upstream:
-
-  ```shell
-  cd  servicecomb-website
-  git remote add upstream https://github.com/apache/servicecomb-website.git
-  ```
-
-
-- 检查远程仓库设置:
-
-  ```shell
-  git remote -v
-  origin https://github.com/<your_github_name>/servicecomb-website.git (fetch)
-  origin    https://github.com/<your_github_name>/servicecomb-website.git (push)
-  upstream  https://github.com/apache/servicecomb-website.git (fetch)
-  upstream  https://github.com/apache/servicecomb-website.git (push)
-  ```
-
-
-- 新建分支以便在分支上做修改:
-
-  ```shell
-  git checkout -b <your_branch_name>
-  ```
-
-
-  注意: \<your\_branch\_name\> 为您自定义的分支名字。
-
-  创建完成后可进行代码更改。
-
-- 提交代码到远程分支:
-
-  ```shell
-  git commit -a -m "<you_commit_message>"
-  git push origin <your_branch_name>
-  ```
-
-  更多 git 使用方法请访问:[git 使用](https://www.atlassian.com/git/tutorials/setting-up-a-repository),这里不赘述。
-
-### 创建PR
-
-  在浏览器切换到自己的 github 页面,切换分支到提交的分支 \<your\_branch\_name\> ,依次点击 `New pull request` 和 `Create pull request` 按钮进行创建,如下图所示:
-
-![体质指数应用运行界面](/assets/images/new-pr.jpg){: .align-center}
-fig-1 New pull request
-{: .figure-caption}
-
-![体质指数应用运行界面](/assets/images/create-pr.jpg){: .align-center}
-fig-2 Create pull request
-{: .figure-caption}
-
-  至此,您的PR创建完成,更多关于 PR 请阅读 [collaborating-with-issues-and-pull-requests](https://help.github.com/categories/collaborating-with-issues-and-pull-requests/) 。
-
-### 冲突解决
-  提交PR时的代码冲突一般是由于多人编辑同一个文件引起的,解决冲突主要通过以下步骤即可:
-1. 切换至主分支
-   ```bash
-   git checkout master
-   ```
-2. 同步远端主分支至本地
-   ```bash
-   git pull upstream master
-   ```
-3. 切换回刚才的分支(假设分支名为fix)
-   ```bash
-   git checkout fix
-   ```
-4. 进行rebase
-   ```bash
-   git rebase -i master
-   ```
-   此时会弹出修改记录的文件,一般直接保存即可。然后会提示哪些文件出现了冲突,此时可打开冲突文件对冲突部分进行修改,将提示的所有冲突文件的冲突都解决后,执行
-   ```bash
-   git add .
-   git rebase --continue
-   ```
-   依此往复,直至屏幕出现类似 *rebase successful* 字样即可,此时您可以进行往提交PR的分支进行更新:
-   ```bash
-   git push -f origin fix
-   ```
diff --git a/_developers/cn/submit-issues.md b/_developers/cn/submit-issues.md
deleted file mode 100644
index 43f551c..0000000
--- a/_developers/cn/submit-issues.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: "发现问题"
-lang: cn
-ref: submit-issues
-permalink: /cn/developers/submit-issues/
-excerpt: "介绍如何向 ServiceComb 项目提交issue"
-last_modified_at: 2019-03-13T16:26:43-20:46
----
-
-{% include toc %}
-
-## 发现问题
-  ServiceComb正在不断成长中,用户可以通过在github上提交issue的方式描述自己的问题或建议并发起讨论,帮助社区进一步改进。可以在issue上提出bug,建议,疑问或者寻求帮助等等
-
-## 创建issue
-  在对应github项目页面上,如java-chassis,点击右上角按钮`New issue`创建issue
-   ![创建issue示例](/assets/images/submit-issues/find-issues-by-example.png){: .align-center}
-
-  issue内容推荐使用如下模板,建议先提供ServiceComb版本信息,程序运行环境信息,然后描述产生的bug和希望出现的结果,最后提供可以复现bug的操作步骤。这些信息都有助于其他人快速了解你的问题并参与解决。   
-​    ![issue模板](/assets/images/submit-issues/find-issues-write.png){: .align-center}   
-
-## 参与讨论
-  在issue下可以很方便地参与讨论,如下图   
-![参与讨论](/assets/images/submit-issues/find-issues-comment.png){: .align-center}
-
-## 关闭issue
-  通过讨论之后得出最终解决方案,issue将会被关闭,如有修改代码,需要提交PR,可参考[代码提交指南](http://servicecomb.apache.org/cn/developers/submit-codes/)
-
diff --git a/_developers/cn/subscribe-mail-list.md b/_developers/cn/subscribe-mail-list.md
deleted file mode 100755
index ecf99fd..0000000
--- a/_developers/cn/subscribe-mail-list.md
+++ /dev/null
@@ -1,67 +0,0 @@
----
-title: "如何订阅Apache ServiceComb的邮件列表"
-lang: cn 
-ref: subscribe-mail-list
-permalink: /cn/developers/subscribe-mail-list/
-excerpt: "如何订阅Apache ServiceComb的邮件列表"
-last_modified_at: 2017-09-08T20:26:43-20:46
----
-
-{% include toc %}
-
-
-## 0 前言
-
-​	邮件列表(Mail List)是一个成熟开源社区的“枢纽”。通常来说,开源社区的提问与解答、技术讨论、事务决策等都通过邮件列表来承载。邮件列表异步、广播的特性,也非常适合开源社区的沟通交流。那么,如何订阅Apache ServiceComb的邮件列表呢?
-
-
-
-## STEP 1:发送订阅邮件
-
-打开自己的邮箱,新建邮件,向`dev-subscribe@servicecomb.apache.org`发送一封邮件(邮件主题和内容任意)
-
-
-> ![step1](/assets/images/subscribe-mail-list-step1.png){: .align-center}
-
-
-
-## STEP 2:接收来自dev-help@servicecomb.apache.org的确认邮件
-
-​	执行完第一步之后,您将收到一封来自`dev-help@servicecomb.apache.org`的确认邮件,邮件内容如下图所示。(**如果长时间未能收到,请确认该邮件是否已被拦截,或已经被自动归入“订阅邮件”、“垃圾邮件”、“推广邮件”等文件夹**)
-
-
-> ![step2](/assets/images/subscribe-mail-list-step2.png){: .align-center}
-
-
-
-## STEP 3:  回复确认邮件
-
-​针对上一步接收到的邮件,
-
-​**a.直接回复该邮件**
-
-​***或***
-
-**b. 新建一封`收件人`为上一步中的`回复地址`的邮件**
-
-​均可,内容主题不限
-
-> ![step3](/assets/images/subscribe-mail-list-step3.png){: .align-center}
-
-
-
-## STEP 4:接收欢迎邮件
-
-​	完成第三步之后,将会受到一封标题为**WELCOME to dev@servicecomb.apache.org**的欢迎邮件。至此,订阅邮件列表的工作已经完成了,社区的动态都会通过邮件的方式通知您。
-
-
-
-> ![step4](/assets/images/subscribe-mail-list-step4.png){: .align-center}
-
-
-
-
-
-## STEP 5:  发起邮件讨论(可选)
-
-​	成功订阅邮件列表后,若想发起讨论,直接往`dev@servicecomb.apache.org`发送邮件即可。所有订阅了邮件列表的人都会收到邮件。
\ No newline at end of file
diff --git a/_developers/cn/team.md b/_developers/cn/team.md
deleted file mode 100644
index 037b028..0000000
--- a/_developers/cn/team.md
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: "ServiceComb开发团队"
-lang: cn
-ref: ServiceComb-Team
-permalink: /cn/developers/team/
-excerpt: "ServiceComb 开发团队"
-last_modified_at: 2018-06-01T19:18:43+08:00
----
-
-本页面展示了ServiceComb的开发团队。大家可以通过提PR的方式把自己的信息添加到列表上。注:名字是按照字母顺序进行排列的。
-
-* Committers
-
-| Apache ID         |         Name            |  Organization | PPMC |
-| ----------------- | ----------------------- | ------------- | ---- |
-| acsukesh          |  Sukesh A C             |  Huawei       |  *   |
-| asifdxtream       |  Mohammad Asif Siddiqui |  Huawei       |  *   |
-| chanjarster       |  Daniel Qian            |  NewCapec     |      |
-| cherrylzhao       |  Zhao Jun               |  JD.com       |      |
-| ericlee           |  Li Dagang (Eric)       |  Tencent      |  *   |
-| humingcheng       |  Hu Mingcheng           |  Huawei       |      |
-| jbonofre          |  Jean-Baptiste Onofre   |  Talend       |  *   |
-| liubao68          |  Liu Bao                |  Huawei       |  *   |
-| little-cui        |  Cui Yihua              |  Huawei       |  *   |
-| mabin             |  Ma Bin                 |  Huawei       |  *   |
-| ningjiang         |  Jiang Ning (Willem)    |  Huawei       |  *   |
-| rvs               |  Roman Shaposhnik       |  Stealth      |  *   |
-| seanyinx          |  Yin Xiang (Sean)       |  Syswin       |  *   |
-| tnachen           |  Timothy Chen           |  Hyperpilot   |  *   |
-| wujimin           |  Wu Jimin               |  Huawei       |  *   |
-| yaohaishi         |  Yao Haishi             |  Huawei       |  *   |
-| yangbor           |  Yang Bo                |  Huawei       |  *   |
-| zenlinTechnofreak |  Lin Zhinan             |  Huawei       |  *   |
-| zhangqi           |  Zhang qi               |  Huawei       |  *   |
-| zhaojun           |  Zhao Jun               |  JD.com       |      |
-| zhengyangyong     |  Zheng Yangyong         |               |  *   |
-| zhfeng            |  Feng Zheng             |  Redhat       |  *   |
-| zhanglei          |  Zhang Lei              |               |      |
-| sunlinsen         |  Sun lisen              |  Chinasofti   |      |
-| zhuchen           |  Chen Zhu               |  Chinasofti   |      |
-
-* Contributors:
-
-| Github ID         | Name                   | Organization |
-| ----------------- | ---------------------- | ------------ |
-| aseTo2016         |                        |              |
-| crystaldust       | Ju Zheng               | Huawei       |
-| imlidian          | Li Dian                | Huawei       |
-| imlijinting       | Li Jinting             | PICC         |
-| jeremyxu2010      | Xu Xinjie              | Tencent      |
-| jyseanl           | Sean Li                | Pactera      |
-| KomachiSion       | Yang Yi                | JD.com       |
-| laijianbin        | Lai Jianbin            |              |
-| lijasonvip        | Li bo                  |              |
-| Lionelpang        | Pang Mingshi           |              |
-| liuzhenyang       |                        |              |
-| maheshrajus       | Mahesh Raju Somalaraju |              |
-| mt-monster        |                        | Huawei       |
-| oliugian          | Fu Chungen             | Huawei       |
-| sjh0027           |                        |              |
-| SingleX           | Gao Xing               | CaiNiao      |
-| TankTian          | Tian Min               | Huawei       |
-| tuohai666         | Zhang Yonglun          | JD.com       |
-| vibakar           |                        |              |
-| weichao666        | Wei Chao               | ISoftStone   |
-| withLin           | Fu JinLin              |              |
-| wuzunqian         | Wu Zunqian             | Yongyou      |
-| xuyiyun0929       | Xu Yiyun               |              |
-| xiaoyimei         | Xiao Yimei             | Changhong    |
-| zhanglongchun     | Zhang LongChun         |              |
-| zhang2014         | Zhang Jian             | OneAPM       |
-| zhuhoudong        | Zhu Houdong            |              |
diff --git a/_developers/cn/use-gitter.md b/_developers/cn/use-gitter.md
deleted file mode 100644
index 3a0dcdf..0000000
--- a/_developers/cn/use-gitter.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: "Gitter 使用指南"
-lang: cn 
-ref: use-gitter
-permalink: /cn/developers/use-gitter/
-excerpt: "介绍如何使用Gitter参与到ServiceComb开源开发"
-last_modified_at: 2018-02-28T11:26:43-20:46
----
-
-{% include toc %}
-
-## Gitter简介   
-   
-Gitter 是一款可支持Markdown的针对开发者的即时通讯软件,可无缝关联到 github,可在聊天中关联Github上的PR,可留存讨论的相关历史记录,可查询历史记录,支持中英文。
-   
-ServiceComb 和很多其他的开源项目一样,使用 Gitter 作为技术交流和社区发展的即时通讯媒介,本文介绍如何使用 Gitter 参与到 ServiceComb 的开源开发和社区发展中。
-
-## 使用链接登录
-   
-在浏览器 输入 [https://gitter.im/ServiceCombUsers/Lobby](https://gitter.im/ServiceCombUsers/Lobby) ,会自动跳转到Gitter上ServiceComb社区的聊天室界面,如下:
-    
-![](/assets/images/login-gitter.PNG){: .align-center}
-    
-如上红圈所示,点击 `SIGN IN TO START TALKING` 进行登录,可支持两种登录方式,Github账号或Twitter账号,笔者使用 Github账号进行登录,如下:
-     
-![](/assets/images/login-gitter1.PNG){: .align-center}
-    
-点击红圈处后,输入Github账号和密码既可登录进聊天室,从此开始进行技术或社区讨论:
-      
-![](/assets/images/login-gitter2.PNG){: .align-center}
-       
-红圈1:当前社区的Github代码库上的最近的activity;
-      
-红圈2:当前社区Gitter聊天室已加入的所有人;
-   
-红圈3:搜索其他社区或者当前聊天室的相关话题记录;
-   
-红圈4:发送聊天消息。
-    
-至此,就可以像使用微信一样,使用Gitter,并获得比微信更加令开发者和技术人员舒服的功能,如,直接提及某个Activity进行讨论,直接搜索历史聊天记录等。
-   
-已经加入聊天室的伙伴别忘记点击右上角的五角星进行点赞,这样会让本聊天室更容易被您自己找到。
-   
-![](/assets/images/login-gitter3.PNG){: .align-center}
-
-   
-
-只是使用Gitter来进行技术讨论或咨询的伙伴,以上功能就足够了,从此可以像使用微信一样游刃有余地使用,如对Gitter有兴趣或者希望创建私有聊天室的伙伴,可以参考:
-   
-[http://www.gitter.net.cn/book/gitter/roomsettings-1.html](http://www.gitter.net.cn/book/gitter/roomsettings-1.html)
-
-    
-## 安装手机客户端
-   
-您可以下载Gitter的手机客户端,在手机上也随时随地的参与到技术讨论中,下载链接:
-   
-[https://gitter.im/home](https://gitter.im/home)
-   
-## 在Gitter上搜索并加入ServiceComb社区聊天室
-   
-已经在使用Gitter的伙伴,直接登录Gitter后,搜索 `ServiceComb` ,如下图:
-      
-![](/assets/images/login-gitter4.PNG){: .align-center}
-      
-点击`ServiceComb Users Community` 加入聊天室,其他的功能使用同上一章节,这里不赘述。
diff --git a/_developers/cn/use-jira.md b/_developers/cn/use-jira.md
deleted file mode 100644
index f1cc961..0000000
--- a/_developers/cn/use-jira.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: "JIRA使用指南"
-lang: cn 
-ref: use-jira
-permalink: /cn/developers/use-jira/
-excerpt: "介绍 ServiceComb 如何使用JIRA"
-last_modified_at: 2018-02-28T11:26:43-20:46
----
-
-{% include toc %}
-
-## JIRA使用简介
-  JIRA是Atlassian公司出品的项目与实务跟踪工具,被广泛应用于缺陷跟踪、客户实务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。ServiceComb使用JIRA进行缺陷和任务跟踪,本文将简单介绍在ServiceComb的开发过程中如何使用JIRA。
-
-## 注册并登陆到JIRA
-  在浏览器中打开[JIRA注册页面](https://issues.apache.org/jira/secure/Signup!default.jspa),填入个人邮箱,姓名等注册信息后即可注册。注册成功后登录并进入[ServiceComb项目](https://issues.apache.org/jira/projects/SCB/)
-
-## 查看issues
-​	登录到JIRA后左侧面板依次是Kanban, Releases, Reports, Issues, Components. Kanban内容如下图,展示了当前需要完成的任务(73 To Do),正在解决中任务(3 In Progress)和已经解决的任务(79 Done),所有任务的编号都以SCB(ServiceComb的简写)开头,可以点击任务栏查看每个任务的详细信息。
-
-![](/assets/images/kanban.png){: .align-center}
-
-​	点击左侧面板中Issues可以看到所有的任务并支持自定义过滤规则进行筛选查看,点击右上角View all issues and filters即可进行过滤,默认过滤规则包括任务类型、任务进度、负责人、当前状态等,也可以使用Advanced功能进行高级过滤筛选。
-
-![](/assets/images/filter.png){: .align-center}
-
-## 新建issue
-
-​	点击Create可以新建一个issue,创建的时候需要选择issue类型,包括Task, Bug, Feature, Improvement等,选择类型后在Summary中简单描述一下issue内容,需要详细说明的可以在Description中填写更多内容,需要注意的是ServiceComb包含四个子项目,分别是Java Chassis, Saga, Service-Center和website,所以创建issue的时候要选择具体对应的Component来指定issue属于哪个子项目。
-
-![](/assets/images/issue.png){: .align-center}
-
-​	创建好issue后可以将issue指定给自己,启动任务Start Progress,待问题解决后Resolve Issue或Close Issue即可,如下图:
-
-![](/assets/images/progress.png){: .align-center}
-
-​	通过提交代码解决该issue的时候需要在创建的PR的title上以issue的SCB编号开头,如下图中[SCB-327]
-
-![](/assets/images/pr.png){: .align-center}
-
-​	JIRA更多使用方法请参考[官方文档](https://confluence.atlassian.com/jiracoreserver076/getting-started-as-a-user-945112029.html)。
diff --git a/_developers/contributing.md b/_developers/contributing.md
deleted file mode 100755
index 739a585..0000000
--- a/_developers/contributing.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: "Contributing to Apache ServiceComb"
-lang: en
-ref: ServiceComb-contributing
-permalink: /developers/contributing
-excerpt: "Contributing to Apache ServiceComb"
-last_modified_at: 2018-05-20T19:18:43+08:00
----
-{% include toc %}
-## Contributing to Apache ServiceComb
-There are many ways that you can help make ServiceComb a better piece of solution for the Microservice - please dive in and help!
-* Try surf the documentations - if somethings confusing or not clear, let us know.
-* Download the code & try it out and see what you think.
-* Browse the source code. Ask question in the Gitter if you want to know more detail about the code.
-* Want to do some hacking? take a look at our  [issue tracker](https://issues.apache.org/jira/browse/SCB) for open issues or features that need to implemented, take ownership of an issue and try fix it.
-* If you are a new to ServiceComb and would like to help us,  you can also find [some easy to resolve issues](https://issues.apache.org/jira/browse/SCB-333?jql=project%20%3D%20SCB%20AND%20status%20%3D%20Open%20AND%20fixVersion%20in%20(EMPTY%2C%20java-chassis-1.0.0-m2)%20AND%20labels%20%3D%20newbie).
-* Leave a comment on the issue to let us know you are working on it and add yourself as a watcher to get informed about all modifications.
-
-## Getting in touch
-
-There are various ways of communicating with the ServiceComb community.
-- Join us on the [mailing list](http://servicecomb.apache.org/cn/developers/subscribe-mail-list) and take part in any conversations
-- Pop by on [Gitter](https://gitter.im/ServiceCombUsers/Lobby) and say hi
-
-## Improving the documentation
-
-Documentation is massively important to help users make the most of Apache ServiceComb and its probably the area that needs the most help!
-So if you are interested in helping the documentation effort; whether its just to fix a page here or there, correct a link or even write a tutorial or improve what documentation is already there please do dive in and help!
-Most of the documentation is stored as the markdown text, you can edit this page in the website from the below edit it link if you logined in the github, then you can send a PR for it.  
-
-## If you find a bug or problem
-
-Please raise a new issue in our [issue tracker](https://issues.apache.org/jira/browse/SCB)
-If you can create a JUnit test case then your issue is more likely to be resolved quicker.
-e.g. take a look at some of the existing [unit tests cases](https://github.com/apache/servicecomb-pack/tree/master/alpha/alpha-core/src/test/java/org/apache/servicecomb/pack/alpha/core)
-Then we can add your issue to git and then we'll know when its really fixed and we can ensure that the problem stays fixed in future releases.
-
-## Working on the code
-
-We recommend to work on the code from  [Github](https://github.com/search?q=org%3Aapache+servicecomb), it has the following sub-projects:
-| Project Name | Project Introduction | Programming Language |
-|-------------------------------------------------------------------------------|----------------------------|----------|
-| [servicecomb-java-chassis](https://github.com/apache/servicecomb-java-chassis) | Java Microservice Framework(SDK) | Java |
-| [servicecomb-service-center](https://github.com/apache/servicecomb-service-center) | Service registration and discovery | Golang |
-| [servicecomb-pack](https://github.com/apache/servicecomb-pack) | Distributed transaction schemes,support Saga and TCC | Java |
-| [servicecomb-mesher](https://github.com/apache/servicecomb-Mesher)       | Service Mesh implementation of ServiceComb     | Golang    |
-| [servicecomb-kie](https://github.com/apache/servicecomb-kie)                                   |  Microsevice configure center  | Golang    |
-| [servicecomb-toolkit](https://github.com/apache/servicecomb-toolkit)               | A contract-based Microservice development toolkit | Java       |
-| [servicecomb-samples](https://github.com/apache/servicecomb-samples)                                   | Microservice examples of ServiceComb  | Java     |
-| [servicecomb-fence](https://github.com/apache/servicecomb-fence)               | Apache ServiceComb security module for java-chassis | Java       |
-| [servicecomb-docs](https://github.com/apache/servicecomb-docs) | User manual | CSS |
-| [servicecomb-website](https://github.com/apache/servicecomb-website) | Website | HTML |
-| [servicecomb-saga-actuator](https://github.com/apache/servicecomb-saga-actuator) | Centralized Saga Transaction Coordinator *Archived* | Java |
-
-If you intend to work on the code and provide patches and other work you want to submit to the Apache ServiceComb projects, then you can fork the project on github and work on your own fork. The custom work you do should be done on branches you create, which can then be committed and pushed upstream, and then submitted to Apache ServiceComb as PRs (pull requests). You can find many resources online how to work on github projects and how to submit work to these projects.
diff --git a/_developers/developer-guide.md b/_developers/developer-guide.md
deleted file mode 100755
index 0509895..0000000
--- a/_developers/developer-guide.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: "Projects"
-lang: en
-ref: developer-guide
-permalink: /developers/
-excerpt: "Projects"
-last_modified_at: 2017-06-24T19:18:43+08:00
----
-{% include toc %}
-
-**ServiceComb** is hosted on [Github](https://github.com/apache?q=servicecomb), it has the following sub-projects:
-
-| Project Name | Project Introduction | Programming Language |
-|-------------------------------------------------------------------------------|----------------------------|----------|
-| [servicecomb-java-chassis](https://github.com/apache/servicecomb-java-chassis) | Java Microservice Framework(SDK) | Java |
-| [servicecomb-service-center](https://github.com/apache/servicecomb-service-center) | Service registration and discovery | Golang |
-| [servicecomb-pack](https://github.com/apache/servicecomb-pack) | Distributed transaction schemes,support Saga and TCC | Java |
-| [servicecomb-mesher](https://github.com/apache/servicecomb-Mesher)       | Service Mesh implementation of ServiceComb     | Golang    |
-| [servicecomb-kie](https://github.com/apache/servicecomb-kie)                                   |  Microsevice configure center  | Golang    |
-| [servicecomb-toolkit](https://github.com/apache/servicecomb-toolkit)               | A contract-based Microservice development toolkit | Java       |
-| [servicecomb-samples](https://github.com/apache/servicecomb-samples)                                   | Microservice examples of ServiceComb  | Java     |
-| [servicecomb-fence](https://github.com/apache/servicecomb-fence)               | Apache ServiceComb security module for java-chassis | Java       |
-| [servicecomb-docs](https://github.com/apache/servicecomb-docs) | User manual | CSS |
-| [servicecomb-website](https://github.com/apache/servicecomb-website) | Website | HTML |
-| [servicecomb-saga-actuator](https://github.com/apache/servicecomb-saga-actuator) | Centralized Saga Transaction Coordinator *Archived* | Java |
-
-There are many ways to get involved in ServiceComb and contribute to it, e.g. submit codes, submit tests, tools improvements, document improvements. You can contribute to one or more interested projects. You can refer to the following guide about how to contribute to this community.
-
-* [Setup Develop Environment](/developers/setup-develop-environment/). Introduce how to install and setup git, JDK, Maven and IDE(IntelliJ).
-* [Code Submit Guide](/developers/submit-codes/). Introduce how to get involved with development of ServiceComb and how to submit codes.
-
-In the meanwhile, welcome to subscribe the [ServiceComb mailing list](mailto:dev-subscribe@servicecomb.apache.org) to keep track of the development status of ServiceComb community and discuss with us.
diff --git a/_developers/release_guide.md b/_developers/release_guide.md
deleted file mode 100755
index 4c0bea5..0000000
--- a/_developers/release_guide.md
+++ /dev/null
@@ -1,350 +0,0 @@
----
-title: "Release guide for ServiceComb"
-lang: en
-ref: release_guide
-permalink: /developers/release-guide/
-excerpt: "Release guide for doing the releases in Apache"
-last_modified_at: 2018-04-03T18:33:43+08:00
-author: Asif Siddiqui
-tags: [release]
-redirect_from:
-  - /theme-setup/
----
-{% include toc %}
-
-This Guide helps you to do the release in Apache for ServiceComb projects.
-
-## Pre-Requisite
-To prepare or perform a released you MUST BE at least an Apache ServiceComb committer.
-
-1. The CI for the project should be green.
-2. Should have the version number for the project.
-3. Should have [Sign Key](https://www.apache.org/dev/openpgp.html#generate-key) for [signing the release](https://www.apache.org/dev/release-signing), the keys should be published to public key server.
-4. Get familiar with the release settings in the parent Apache POM
-
-## Maven 2 Setup
-As ServiceComb Java Chassis and Saga are using maven for the release, you should do some maven 2 setup before releasing these two projects.
-Before you deploy anything to the maven repository using Maven 2, you should configure your ~/.m2/settings.xml file so that the file permissions of the deployed artifacts are group writable. If you do not do this, other developers will not able to overwrite your SNAPSHOT releases with newer versions. The settings follow the [guidelines](http://maven.apache.org/developers/committer-settings.html) used by the Maven project. Please pay particular attention to the [password encryption recomm [...]
-
-```
-<settings>
-  ...
-  <servers>
-    <!-- Per http://maven.apache.org/developers/committer-settings.html -->
-
-    <!-- To publish a snapshot of some part of Maven -->
-    <server>
-      <id>apache.snapshots.https</id>
-      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
-      <password> <!-- YOUR APACHE LDAP PASSWORD --> </password>
-    </server>
-    <!-- To publish a website of some part of Maven -->
-    <server>
-      <id>apache.website</id>
-      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
-      <filePermissions>664</filePermissions>
-      <directoryPermissions>775</directoryPermissions>
-    </server>
-    <!-- To stage a release of some part of Maven -->
-    <server>
-      <id>apache.releases.https</id>
-      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
-      <password> <!-- YOUR APACHE LDAP PASSWORD --> </password>
-    </server>
-    <!-- To stage a website of some part of Maven -->
-    <server>
-      <id>stagingSite</id> <!-- must match hard-coded repository identifier in site:stage-deploy -->
-      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
-      <filePermissions>664</filePermissions>
-      <directoryPermissions>775</directoryPermissions>
-    </server>
-
-  </servers>
-  ...
-  <profiles>
-    <profile>
-      <id>apache-release</id>
-      <properties>
-        <gpg.useagent>false</gpg.useagent>
-        <gpg.passphrase><!-- YOUR GPG PASSPHRASE --></gpg.passphrase>
-        <test>false</test>
-      </properties>
-    </profile>
-
-  </profiles>
-...
-</settings>
-```
-
-## Major Steps for doing Service-Center Release
-
-***Make and Verify the Release***
-
-1. Clone the service-center code.
-```
-git clone https://github.com/apache/servicecomb-service-center.git
-cd servicecomb-service-center
-gvt restore
-```
-
-2. Create a Tag from the master branch based on the version number which needs to be released.
-
-3. Run RAT tool to ensure no license issues are there, follow the guide over [here](https://github.com/apache/servicecomb-service-center/tree/master/docs/release)
-
-4. Run the make_release.sh to make the release for windows and linux following the guide over [here](https://github.com/apache/servicecomb-service-center/tree/master/scripts/release).
-
-5. Last Step will make the releases in root folder.
-
-6. Run the releases of frontend and service-center in both linux and windows.
-
-7. Run the [integration test](https://github.com/apache/servicecomb-service-center/tree/master/integration) on the release.
-
-8. If all the test passes then send the release candidate to peers to test in different machines.
-
-9. Push the tag to master.
-
-***Sign the Release***
-
-1. Once the tag is pushed then using the tag download the source code from git [tag](https://github.com/apache/servicecomb-service-center/tags).
-
-2. Sign the 4 releases(linux, windows, darwin, src) and checksum.
-
-3. Create a new directory [Apache dev Release SVN](https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-service-center/) with release package name and release candidate number. (for example : if you want to release 1.0.0-m2 and this is the second attempt of the release then the folder structure will be `1.0.0-m2/rc02`)
-
-4. Upload the release to the directory created in last step.
-
-5. Download all the releases from SVN and verify the signature and checksum.
-
-***PMC Approval***
-
-1. Send the voting mail in ***dev@servicecomb.apache.org*** for 1PMC approval.
-
-2. Wait for 72 hours or unless you get 3 +1 binding vote with no -1 vote. If you get even one -1 binding vote then fix the issue and start again from ***Step 1***.
-
-3. Publish the result of the vote in dev@servicecomb.apache.org.
-
-***Announcements***
-
-1. Upload the releases to [Apache release repository](https://dist.apache.org/repos/dist/release/servicecomb/servicecomb-service-center/).
-
-2. Wait for 24 hours to replicate the release in all the mirrors.
-
-3. Delete old releases from [dev](https://dist.apache.org/repos/dist/dev) and [release] (https://dist.apache.org/repos/dist/release) and check for the old release in archive, update the same links in the website for old releases.
-
-4. Upload the release page of ServiceComb Website.
-
-5. Send the announcement mails to dev@servicecomb.apache.org, announce@apache.org
-
-
-## Major Steps for doing Java-Chassis Release
-
-Before release, make sure all apache issues are closed. Log in
- [apache issue website](https://issues.apache.org/jira/projects/SCB), click `release` and generate release notes. 
-
-***Prepare the release code***
-
-clone java-chassis code to your development environment, change version to release version and push to github.
-Assume code version is `2.0.0-SNAPSHOT` and release version is `2.0.0`. 
-
-Run:
-
-```shell script
-mvn versions:set -DgenerateBackupPoms=false -DnewVersion=2.0.0
-```
-
-Then:
-
-```shell script
-mvn clean install -Pit
-```
-
-If the build is successful, submit a PR and merge code after review.
-
-***Release maven artifacts***
-
-Prepare Linux environment, and make sure can upload artifacts to maven central.
-
-1. Copy GPG keys to `~/.gnupg`
-
-        ```
-        gpg.conf
-        pubring.gpg
-        random_seed
-        secring.gpg
-        trustdb.gpg
-        ```
-
-2. Update PGR password in `~/.m2/settings.xml`
-
-3. Update apache maven server user name and password in `~/.m2/settings.xml`
-
-4. clone java-chassis
-
-        ```
-        git clone https://github.com/apache/servicecomb-java-chassis.git
-        ```
-   
-5. Run
-
-        ```
-        mvn clean deploy -DskipTests -Prelease -Pdistribution -Ppassphrase
-        ```
-
-6. If failed in step 5, `drop` the temporary repository in apache Nexus and start from step 5 again.
-
-7. If step 5 is successful, all artifacts are uploaded to a temporary repository. Using your apache account and 
-   log in to  [Apache Nexus](https://repository.apache.org/). Click  `Staging Repositories`, search `servicecomb`,
-   find the latest repository, click "close", and get the staging repository link like `https://repository.apache.org/content/repositories/orgapacheservicecomb-1385`
-
-8. In servicecomb-java-chassis  release page,click release, do a `pre release`
-
-***Sign the distributions***
-
-1. Download binary distributions from the temporary repository. e.g.
-
-        ```  
-        https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip  
-        https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip.asc
-        ```
-
-2. Download source distributions from the temporary repository. e.g.
-
-        ```
-        https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-src.zip  
-        https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-src.zip.asc
-        ```
-
-3. generate checksum. e.g.
-
-        ```
-        sha512sum -b apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip > apache-servicecomb-java-chassis-distribution-1.2.0-bin.zi.sha512  
-        sha512sum -b apache-servicecomb-java-chassis-distribution-1.2.0-src.zip > apache-servicecomb-java-chassis-distribution-1.2.0-src.zip.sha512  
-        ```
-
-4. upload all file to [Apache development svn](https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-java-chassis/).  Run
-
-        ```
-        svn co https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-java-chassis
-        cd serviecomb-java-chassis
-        mkdir -p 1.2.0/rc01
-        cp xxx/* 1.2.0/rc01
-        svn add 1.2.0
-        svn ci 1.2.0
-        ```
-
-5. download the files and verify the sign.
-
-***Sending mail for permission***
-
-1. Send mail to `dev@servicecomb.apache.org` and waiting for voting result.
-
-2. Waiting 72 hours and if got three + 1 and no -1, the voting is successful. If there are some problems,
-    start a new round of release. (According to the problem, please notice to clean up release notes,
-    temporary svn files, and temporary stating repositories. )
-
-3. Send the voting result to `dev@servicecomb.apache.org`
-
-
-***Update documents and announcements***
-
-1. In servicecomb-java-chassis  github release page,set `pre release` to `formal release` and write release notes.
-
-2. Move [dev](https://dist.apache.org/repos/dist/dev) to [release](https://dist.apache.org/repos/dist/release)
- 
-        ```
-        cp dev/servicecomb/servicecomb-java-chassis/2.0.0/* release/servicecomb/servicecomb-java-chassis/2.0.0/
-        cd release/servicecomb/servicecomb-java-chassis/
-        svn add 2.0.0
-        svn ci 2.0.0
-        ```
-        
-    And delete [dev](https://dist.apache.org/repos/dist/dev)
-    
-        ```
-        svn rm 1.2.0
-        svn ci .
-        ```
-
-3. Log in to [Apache Nexus](https://repository.apache.org/), find `Staging Repositories` and search 
-    `servicecomb`,find the last `closed` repository, and click `release`. If there are any temporary `Staging Repositories`,
-    `drop` them. 
-
-4. Waiting for 24 hour for all mirror in sync.
-
-5. Update the servicecomb-website, see [1.3.0 RP](https://github.com/apache/servicecomb-website/pull/210)
-or [2.0.0 RP](https://github.com/apache/servicecomb-website/pull/240)
-
-6. Send announcements to `dev@servicecomb.apache.org`, `announce@apache.org`。
-
-
-## Major Steps for doing Saga Release
-
-***Make and Verify the Release***
-1. Clone the saga code.
-```
-git clone https://github.com/apache/servicecomb-saga.git
-```
-
-2. Cut the release using per command to replace all the versions in pom.xml files
-
-3. Create a Tag from the master branch using the version number.
-```
-find . -name 'pom.xml'|xargs perl -pi -e 's/1.0.0-m2-SNAPSHOT/1.0.0-m2/g'
-```
-
-4. Clear all the redundant servicecomb releases in repository.apache.org
-
-5. Add the keys in a reference folder.
-
-6. Update the key path and passphrase in your ~/.m2/settings.xml file.
-
-7. Update the apache account username and password in the settings.xml file.
-
-8. Run the maven deploy command.
-```
-mvn deploy -DskipTests -Ppassphrase -Prelease
-```
-
-9. Once every thing is uploaded then use the staging repo to verify the build using the acceptance test.
-
-10. Share the staging repo with peers to verify on different OS and machines using the demo.
-
-11. If everything is fine then push the tag to master.
-
-12. Close the staging repo is apache repositories.
-
-***Sign the Releases***
-
-1. Download the source code and distribution from the staging repo.
-
-2. Sign the 2 releases(distribution, src) and checksum.
-
-3. Create a new directory [Apache dev Release SVN](https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-saga/) with release package name and release candidate number. (for example : if you want to release 1.0.0-m2 and this is the third attempt of the release then the folder structure will be `1.0.0-m2/rc03`)
-
-4. Upload the release to  directory created in last step.
-
-5. Download all the releases from SVN and verify the signature and checksum.
-
-***PMC approval***
-
-1. Send the voting mail in dev@servicecomb.apache.org.
-
-2. Wait for 72 hours or unless you get 3 +1 binding vote with no -1 vote. If you get even one -1 binding vote then fix the issue and start again from Step 1.
-
-3. Publish the result of the vote in dev@servicecomb.apache.org.
-
-***Announcements***
-
-1. Upload the releases to [Apache release repository](https://dist.apache.org/repos/dist/release/servicecomb/servicecomb-saga/).
-
-2. Wait for 24 hours to replicate the release in all the mirrors.
-
-3. Delete old releases from [dev](https://dist.apache.org/repos/dist/dev) and [release] (https://dist.apache.org/repos/dist/release) and check for the old release in archive, update the same links in the website for old releases.
-
-4. Upload the release page of ServiceComb Website.
-
-5. Send the announcement mails to dev@servicecomb.apache.org, announce@apache.orgg
-
-
-**NOTE**
- - The whole process generally takes 1 weeks to complete assuming you don't get any -1 from PMC, so please plan the release activity before hand.
diff --git a/_developers/release_validation_guide.md b/_developers/release_validation_guide.md
deleted file mode 100644
index b631a86..0000000
--- a/_developers/release_validation_guide.md
+++ /dev/null
@@ -1,184 +0,0 @@
----
-title: "Release verification guide for ServiceComb"
-lang: en
-ref: release_validation_guide
-permalink: developers/release-validation-guide/
-excerpt: "How to verify Apache Release"
-last_modified_at:  2018-06-12T00:00:00+08:00
-author: Yangyong Zheng
-tags: [release,verification]
-redirect_from:
-  - /theme-setup/
----
-
-{% include toc %}
-
-As apache project, when ServiceComb release new version, need make a vote and invite users and developers to verify its availability, this guide will introduce how to do this work.
-
-## Verify Java Chassis
-### Prerequisite
-1. Make sure your network is available;
-2. Please check these components had installed:
-* [JDK1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
-* [Maven 3.x](https://maven.apache.org/download.cgi)
-* [Docker](https://www.docker.com/get-docker)
-
->Hint: If the OS of environment is Windows, need install [Docker Machine](https://docs.docker.com/machine/install-machine/)
-
-### Verify the Hash and the Signature
-Please find the URL of **Release Candidate** in Vote mail, for example:
-
-```text
-Release Candidate : https://dist.apache.org/repos/dist/dev/incubator/servicecomb/incubator-servicecomb-java-chassis/1.0.0-m2/rc-01/
-```
-
-Open this URL in browser, download the source code end with `src.zip`, signature file end with `src.zip.asc` and hash file end with `src.zip.sha512`, please keep these three files in same folder.
-
-Please find URL of **Key** in Vote mail, for example:
-
-```text
-Keys to verify the Release Candidate : https://dist.apache.org/repos/dist/dev/incubator/servicecomb/KEYS
-```
-
-Open this URL in browser, copy contents into KEYS file, then import:
-
-```bash
-gpg --import KEYS
-```
-
-Then `Mohammad Asif Siddiqui (ServiceComb Code Signing Key) <as...@apache.org>` will output if imported successfully.
-
-Verify the Signature:
-
-```bash
-gpg --verify xxx-src.zip.asc xxx-src.zip
-```
-
-Then `Good signature from "Mohammad Asif Siddiqui (ServiceComb Code Signing Key) <as...@apache.org>"` will output if verified successfully.
-
-Verify the Hash:
-
-```bash
-sha512sum -c xxx-src.zip.sha512
-```
-
-Then `OK` will output if verified successfully.
-
-### Verify the source code
-Unzip the source code:
-
-```bash
-unzip xxx-src.zip
-```
-
-Run test case under source code root:
-
-```bash
-mvn clean install -Pdocker -Pit -Pdemo-run-release
-```
-
->Hint: If the OS of environment is Windows:
->```bash
->mvn clean install -Pdocker -Pit -Pdocker-machine -Pdemo-run-release
->```
-
-Wait all test case check passed, may use 10~30 minutes.
-
-### Verify the Staging Repository
-First need delete all ServiceComb cache in local maven repo:
-
-```bash
-rm -rf /root/.m2/repository/org/apache/servicecomb/
-```
-
->Hint: If not the root, please change the path of .m2
-
-Please find URL of **Staging Repository** in Vote mail, for example:
-
-```text
-Staging Repository : https://repository.apache.org/content/repositories/orgapacheservicecomb-xxxx/
-```
-
-Then add this Staging Repository address into `settings.xml` of maven: 
-
-```xml
-<settings>
-	<profiles>
-	   <profile>
-		  <repositories>
-			<repository>
-			  <releases />
-			  <snapshots>
-				<enabled>false</enabled>
-			  </snapshots>
-			  <id>repo.apache.staging</id>
-			  <url>{Staging Repository URL in Vote mail}</url>
-			</repository>
-		  </repositories>
-		  <pluginRepositories>
-			<pluginRepository>
-			  <releases />
-			  <snapshots>
-				<enabled>false</enabled>
-			  </snapshots>
-			  <id>repo.apache.staging</id>
-			  <url>{Staging Repository URL in Vote mail}</url>
-			</pluginRepository>
-		  </pluginRepositories>
-		  <id>staging</id>
-		</profile>
-	</profiles>
-</settings>
-```
-
-After that, enter **demo folder under the source code(not root folder of source code)** and run:
-
-```bash
-mvn clean install -Pdocker -Pstaging -Pdemo-run-release
-```
-
->Hint: If the OS of environment is Windows:
->```bash
->mvn clean install -Pdocker -Pstaging -Pdocker-machine -Pdemo-run-release
->```
-
-**When test cases are running, we can see the Java Chassis dependencies will download from Apache Staging Repository that had configured:**
-
-```text
-Downloading: https://repository.apache.org/content/repositories/orgapacheservicecomb-xxxx/xxxx.pom
-```
-
-Wait all test case check passed, may use 5~15 minutes.
-
-### Verify integration with Spring Cloud
-Please clone the latest source code of Company demo project from https://github.com/ServiceComb/ServiceComb-Company-WorkShop , then checkout branch of 1.x :
-
-```bash
-git clone https://github.com/ServiceComb/ServiceComb-Company-WorkShop.git
-git checkout 1.x
-```
-
-Modify the configuration of `<java-chassis.version>` in `pom.xml` under  source code root folder to current releasing version, such as 1.0.0-m2 :
-
-```xml
-<properties>
-  <java-chassis.version>1.0.0-m2</java-chassis.version>
-</properties>
-```
-
-Run test case under source code root:
-
-```bash
-mvn clean verify -Pdocker -Pstaging
-```
-
->Hint: If the OS of environment is Windows:
->```bash
->mvn clean verify -Pdocker -Pstaging -Pdocker-machine
->```
-
-Wait all test case check passed, may use 5~10 minutes.
-
-### Verify Samples(Optional)
-Download [samples code](https://github.com/apache/servicecomb-samples). There are many samples here, choose 
-some of them and change the version and do verifications. See each README of samples for details.
diff --git a/_developers/setup-committer-rights.md b/_developers/setup-committer-rights.md
deleted file mode 100644
index 8621acc..0000000
--- a/_developers/setup-committer-rights.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: "Set Up Write Access for Committer"
-lang: en 
-ref: setup-committer-rights
-permalink: /developers/setup-committer-rights/
-excerpt: "How to set up repo write rights for committer"
-last_modified_at: 2017-12-22T14:49:00
----
-
-{% include toc %}
-
-Congratulations for being a valuable committer to Apache ServiceComb projects!
-
-This article will guide you through setting up write access to [Apache ServiceComb repositories](https://github.com/apache?utf8=%E2%9C%93&q=servicecomb&type=&language=) hosted on Github.
-
-You need to complete three simple steps to obtain such rights, if you are already an Apache ServiceComb committer:
-* Authorize your Apache account
-* Authorize your Github account
-* Join Apache Github organization
-
-Open [https://gitbox.apache.org/setup/](https://gitbox.apache.org/setup/) in your favorite browser and you should see a page like below. 
-
-![pre authorization]({{ site.url }}{{ site.baseurl }}/assets/images/gitbox/apache-pre-auth.png){: .align-center}
-
-Let\'s get started!
-
-## Authorize your Apache account
-Click `Start ASF Oauth` link and follow the instructions on the page to log in with your Apache account.
-
-![apache account authorization]({{ site.url }}{{ site.baseurl }}/assets/images/gitbox/apache-auth.png){: .align-center}
-
-## Authorize your Github account
-Before proceeding, enable [2FA on Github](https://github.com/settings/security) for your account.
-
-Your Github account security page should look like the image below, if 2FA is set up successfully.
-
-![github 2FA]({{ site.url }}{{ site.baseurl }}/assets/images/gitbox/github-2fa.png){: .align-center}
-
-If you need help, please refer to [Github 2FA help page](https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/)
-
-Once your Github 2FA is set up, click `Auth on GitHub` and follow the instructions to authorize your Github account.
-
-![github account authorization]({{ site.url }}{{ site.baseurl }}/assets/images/gitbox/github-auth.png){: .align-center}
-
-## Join Apache Github organization
-Open [https://id.apache.org/](https://id.apache.org/) and log into your Apache account.
-
-Once logged in, fill in your github username under *Your Github Username* section like below and save your changes:
- 
-![github account linking]({{ site.url }}{{ site.baseurl }}/assets/images/gitbox/link-apache-github-id.png){: .align-center}
-
-An organisational invite will be sent to you shortly thereafter (within 30 minutes). 
-You may visit [Apache on Github](https://github.com/apache/) to see if you have an invitation pending. It may take up to 30 minutes.
-
-Accept the invitation and wait till you are added as an Apache ServiceComb project committer (you will be notified by email).
-
-Once your write access is granted, you will see something like the image below:
-
-![post authorization]({{ site.url }}{{ site.baseurl }}/assets/images/gitbox/apache-post-auth.png){: .align-center}
-
-Congratulations! Now you have write access to Apache ServiceComb project, under which you are able to merge pull requests.
diff --git a/_developers/setup-develop-environment.md b/_developers/setup-develop-environment.md
deleted file mode 100755
index d42cf4f..0000000
--- a/_developers/setup-develop-environment.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: "Setup Developing Environment"
-lang: en
-ref: setup-develop-environment
-permalink: /developers/setup-develop-environment/
-excerpt: "setup developing environment"
-last_modified_at: 2017-06-24T18:48:43+08:00
----
-
-## Install required tools
-Before you start, make sure you have the following tools installed:
-* **Git**,please refer to [Install Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git){:target="_blank"}
-* **JDK 1.8**,please refer to [Install JDK](https://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html){:target="_blank"}
-* **Maven 3.x**,please refer to [Install Maven](https://maven.apache.org/install.html){:target="_blank"}
-* **Docker**,please refer to [Install Docker](https://docs.docker.com/engine/installation/){:target="_blank"}
-* **Service Center**, please refer to [Install Service Center](/users/setup-environment/#运行service-center)
-* **IntelliJ Idea IDE**(optional, you can use any IDE you like, e.g. eclipse), please refer to[Install IntelliJ](https://www.jetbrains.com/help/idea/installing-and-launching.html){:target="_blank"}
-
-## Setup git
-1. Get a Github account. The ServiceComb projects is hosted on Github, so you will need a Github account. You can goto [https://github.com/join?source=header-home](https://github.com/join?source=header-home) for signup. Skip this if you already own an Github account. You can login on [https://github.com/login?return_to=%2Fjoin%3Fsource%3Dheader-home](https://github.com/login?return_to=%2Fjoin%3Fsource%3Dheader-home) after you finished the signup.
-
-2. Configure Git. Configure personal information and setup git for push without username/password.
-   Configure personal information:
-
-   ```bash
-   git config --global user.name <your-user-name>
-   git config --global user.email <your-email-address>
-   ```
-
-   Substitute \<your-user-name\>和\<your-email-address\> with your name and email. Refer[Git push without username and password](https://stackoverflow.com/a/8588786){:target="_blank"}to setup pushing without username/password.
-
-3. Get the source code. For example, to get [ServiceComb-Java-Chassis](https://github.com/apache/servicecomb-java-chassis.git), execute the following command:
-
-   ```bash
-   git clone https://github.com/apache/servicecomb-java-chassis.git
-   ```
-       
-## Configure IDE
-There are many Java IDEs around, like Eclipse, IntelliJ IDEA and STS, etc. We suggest to use IntelliJ IDEA, it's community edition is good enough for daily usage. After you installed IntelliJ IDEA, follow [Initial Setup](https://www.jetbrains.com/help/idea/installing-and-launching.html#d325787e291) for basic configuration. For frequently used shortcuts, [Cannot Miss Shortcuts](https://www.jetbrains.com/help/idea/keyboard-shortcuts-you-cannot-miss.html)
-
-The Java Chassis and Saga project uses [Google Code Style](https://github.com/google/styleguide). You can find the settings file under `etc` directory which can be imported to IDEA. There is also a settings file for Eclipse under the same directory.
-
-![code style files]({{ site.url }}{{ site.baseurl }}/assets/images/intellij.code.style.3.png){: .align-center}
-
-{% include toc %}
-
-### IntelliJ IDEA Configuration
-Configure [IntelliJ IDEA](https://www.jetbrains.com/idea/download/)
-
-1. Open IntelliJ Settings page
-![IntelliJ Settings]({{ site.url }}{{ site.baseurl }}/assets/images/intellij.code.style.4.png){: .align-center}
-
-2. Import the coding style settings file `etc/intellij-java-google-style.xml`
-![import code style]({{ site.url }}{{ site.baseurl }}/assets/images/intellij.code.style.1.png){: .align-center}
-
-
-3. Open a modified but uncommited file, then Choose [Code] > [Show Reformat File Dialog]
-![reformat file dialog]({{ site.url }}{{ site.baseurl }}/assets/images/intellij.code.style.5.png){: .align-center}
-
-4. Choose [Only VCS changed text], then click [Run]
-![reformat options]({{ site.url }}{{ site.baseurl }}/assets/images/intellij.code.style.2.png){: .align-center}
-
-
-Just run [Reformat code] (Ctrl+Alt+L) afterwards to format the code.
-
-For more IntelliJ usages, please check [IntelliJ tutorial](https://www.jetbrains.com/help/idea/tutorials.html)。
-
-## Next
-
-* Read[Howto submit codes](/developers/submit-codes/)
diff --git a/_developers/sonarcloud-how-to.md b/_developers/sonarcloud-how-to.md
deleted file mode 100755
index 20ad1b6..0000000
--- a/_developers/sonarcloud-how-to.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: "How to Use SonarCloud"
-lang: en
-ref: sonarcloud-how-to
-permalink: /developers/sonarcloud-how-to/
-excerpt: "SonarCloud集成指南"
-last_modified_at:  2019-11-15T16:55:44+08:00
-author: Daniel Qian
-redirect_from:
-  - /theme-setup/
----
-
-{% include toc %}
-
-This guide helps you to integrate SonarCloud in your Travis build.
-
-## Steps
-
-1. First, you should be member of Apache Orgnization in Github.
-2. Login to  [sonarcloud.io](https://sonarcloud.io) with your Github credentials.
-3. Create an JIRA ticket in  [Infrastructure ](https://issues.apache.org/jira/projects/INFRA/) asking to create a project at SonarCloud, here is an [example](https://issues.apache.org/jira/browse/INFRA-19444). You should provde Github repo url, project-key (the id of your project in SonarCloud), Github id for the Admin of this project, generally speaking that's yours.
-4. Wait for the INFRA team creating the project, after that you will see it at SonarCloud.
-5. Follow the SonarCloud instructions modify project's `.travis.yml`
-
-### About Shallow Clone
-
-Travis [use shallow clone by default](https://docs.travis-ci.com/user/customizing-the-build/#git-clone-depth), and SonarCloud needs commit information, so you need to disable shallow clone:
-
-```yaml
-git:
-  depth: false
-```
-
-### About PR
-
-Travis doesn't support SonarCloud in PR build, you should modify your build script like this:
-
-```bash
-echo "TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST"
-if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
-  echo "Not a pull request build, running build with sonar"
-  mvn ... sonar:sonar -Dsonar.projectKey=<project-key>
-else
-  echo "Pull request build or local build"
-  mvn ...
-fi;
-```
-
-## References
-
-* [Apache CWiki - SonarQube Analysis](https://cwiki.apache.org/confluence/display/INFRA/SonarQube+Analysis)
-* [Travis - SonarCloud](https://docs.travis-ci.com/user/sonarcloud/)
-
diff --git a/_developers/submit-codes.md b/_developers/submit-codes.md
deleted file mode 100755
index af58ea9..0000000
--- a/_developers/submit-codes.md
+++ /dev/null
@@ -1,119 +0,0 @@
----
-title: "Howto Submit Code"
-lang: en 
-ref: submit-codes
-permalink: /developers/submit-codes/
-excerpt: "Howto submit code for SerivceComb"
-last_modified_at: 2017-09-08T20:26:43-20:46
----
-
-{% include toc %}
-
-## Contributing
-   ServiceComb is still growing and we hope that more will join us to share this. There are many ways to contribute:
-* Improve documents. Help us improve the documents on this site or the API documentation. For the documents on this site, you can find links **Report a Doc Issue** or **Edit This Page on Github** to start.
-* Implement feature request or fix bugs. You can find all the feature request and bug reports on the projects' issues pages. Take [Saga](https://github.com/apache/servicecomb-saga/issues) as an example, issues will be labeled as **enhancement** or **bug**, you can choose the ones you are interested in. Bug reports and new feature requests are also welcomed.
-
-   ![Find Features](/assets/images/find-features-by-example.png){: .align-center}
-
-## Run tests
-    Before submitting code, make sure that you have properly tested the functionality and verified the implementation according to the auto test section in README.
-
-## How to submit a PR
-  It's quite convenient to submit a [Pull Request(PR)](https://help.github.com/articles/about-pull-requests/) on [Github](https://github.com/search?q=org%3Aapache+servicecomb). Take the [apache/servicecomb-website](https://github.com/apache/servicecomb-website) as an example:
-
-### Fork repository
-
-  Visit the apache/servicecomb-website project's [github page](https://github.com/apache/servicecomb-website), click `Fork` button on the right left cornor.
-
-![Fork Repository](/assets/images/fork-repo.jpg){: .align-center}
-
-### Setup local repository
-
-- Clone the source code to local machine:
-
-  ```shell
-  git clone https://github.com/<your_github_name>/servicecomb-website.git
-  ```
-
-  Note: substitute \<your\_github\_name\> with your github username.
-
-  After the clone is done, the origin remote will point to the default branch of the cloned repository.
-
-- Add apache/servicecomb-website as upstream remote:
-
-  ```shell
-  cd  servicecomb-website
-  git remote add upstream https://github.com/apache/servicecomb-website.git
-  ```
-- Check the local repository's remotes
-
-  ```shell  
-  git remote -v
-  origin https://github.com/<your_github_name>/servicecomb-website.git (fetch)
-  origin    https://github.com/<your_github_name>/servicecomb-website.git (push)
-  upstream  https://github.com/apache/servicecomb-website.git (fetch)
-  upstream  https://github.com/apache/servicecomb-website.git (push)
-  ```
-
-- Create a new branch to start working
-
-  ```shell
-  git checkout -b <your_branch_name>
-  ```
-  
-  Note: replace \<your\_branch\_name\> with an actual branch name at your choice, like feature-foo/bugfix-bar
-  Now you can start coding.
-
-- Push the changes to a remote repository
-
-  ```shell
-  git commit -a -m "<you_commit_message>"
-  git push origin <your_branch_name>
-  ```
-
- For more on git usages, please visit[Git tutorial](https://www.atlassian.com/git/tutorials/setting-up-a-repository).
-
-### Create PR
-  Goto your github page, find the apache/servicecomb-website project, swich to the branch you just pushed, click on `New pull request` and then `Create pull request`, see the image below:
-
-![New Pull Request](/assets/images/new-pr.jpg){: .align-center}
-fig-1 New pull request 
-{: .figure-caption}
-
-![Create Pull Request](/assets/images/create-pr.jpg){: .align-center}
-fig-2 Create pull request 
-{: .figure-caption}
-
-  Congrautulations, now you have succesfully submitted a PR. For more on PR, please read [collaborating-with-issues-and-pull-requests](https://help.github.com/categories/collaborating-with-issues-and-pull-requests/) 。
-
-### Resolve conflicts
-  When a same piece of file is edited by multiple person simultaneously, conflicts can occur. It can be resolved as follow:
-
-1. Switch to the master branch
-   ```bash
-   git checkout master
-   ```
-2. Pull the upstream's master branch
-   ```bash
-   git pull upstream master
-   ```
-3. Switch back to the branch we are working on(e.g. fix)
-   ```bash
-   git checkout fix 
-   ```
-4. Rebase the working branch onto the master branch
-   ```bash
-   git rebase -i master
-   ```
-   A list of commits will be listed on your text editor. Normally we can just save and exit.
-   Git will now apply the commits one by one onto the master branch until it encounters a conflict. When this happens, the rebase process is paused. We need to resolve the conflicts, then execute
-   ```bash
-   git add .
-   git rebase --continue
-   ```
-   Repeat this process until all commits are successfully applied. And finally run 
-   ```bash
-   git push -f origin fix
-   ```
-   to push the resolved branch to remote origin
diff --git a/_developers/team.md b/_developers/team.md
deleted file mode 100644
index 07160f9..0000000
--- a/_developers/team.md
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title: "ServiceComb Develop Team"
-lang: en
-ref: ServiceComb-Team
-permalink: /developers/team/
-excerpt: "ServiceComb Team"
-last_modified_at: 2018-06-01T19:18:43+08:00
----
-
-
-This page lists who we are. By all means add yourself to the list - lets sort it in alphabetical order
-
-* Committers
-
-| Apache ID         |         Name            |  Organization |  PMC |
-| ----------------- | ----------------------- | ------------- | ---- |
-| acsukesh          |  Sukesh A C             |  Huawei       |  *   |
-| asifdxtream       |  Mohammad Asif Siddiqui |  Huawei       |  *   |
-| chanjarster       |  Daniel Qian            |  NewCapec     |      |
-| cherrylzhao       |  Zhao Jun               |  JD.com       |      |
-| ericlee           |  Li Dagang (Eric)       |  Tencent      |  *   |
-| humingcheng       |  Hu Mingcheng           |  Huawei       |      |
-| jbonofre          |  Jean-Baptiste Onofre   |  Talend       |  *   |
-| liubao68          |  Liu Bao                |  Huawei       |  *   |
-| little-cui        |  Cui Yihua              |  Huawei       |  *   |
-| mabin             |  Ma Bin                 |  Huawei       |  *   |
-| ningjiang         |  Jiang Ning (Willem)    |  Huawei       |  *   |
-| rvs               |  Roman Shaposhnik       |  Stealth      |  *   |
-| seanyinx          |  Yin Xiang (Sean)       |  Syswin       |  *   |
-| tnachen           |  Timothy Chen           |  Hyperpilot   |  *   |
-| wujimin           |  Wu Jimin               |  Huawei       |  *   |
-| yaohaishi         |  Yao Haishi             |  Huawei       |  *   |
-| yangbor           |  Yang Bo                |  Huawei       |  *   |
-| zenlinTechnofreak |  Lin Zhinan             |  Huawei       |  *   |
-| zhangqi           |  Zhang qi               |  Huawei       |  *   |
-| zhaojun           |  Zhao Jun               |  JD.com       |      |
-| zhengyangyong     |  Zheng Yangyong         |               |  *   |
-| zhfeng            |  Feng Zheng             |  Redhat       |  *   |
-| zhanglei          |  Zhang Lei              |               |      |
-| sunlinsen         |  Sun lisen              |  Chinasofti   |      |
-| zhuchen           |  Chen Zhu               |  Chinasofti   |      |
-
-
-
-
-* Contributors:
-
-| Github ID         | Name                   | Organization |
-| ----------------- | ---------------------- | ------------ |
-| aseTo2016         |                        |              |
-| crystaldust       | Ju Zheng               | Huawei       |
-| imlidian          | Li Dian                | Huawei       |
-| imlijinting       | Li Jinting             | PICC         |
-| jeremyxu2010      | Xu Xinjie              | Tencent      |
-| jyseanl           | Sean Li                | Pactera      |
-| KomachiSion       | Yang Yi                | JD.com       |
-| laijianbin        | Lai Jianbin            |              |
-| lijasonvip        | Li bo                  |              |
-| Lionelpang        | Pang Mingshi           |              |
-| liuzhenyang       |                        |              |
-| maheshrajus       | Mahesh Raju Somalaraju |              |
-| mt-monster        |                        | Huawei       |
-| oliugian          | Fu Chungen             | Huawei       |
-| sjh0027           |                        |              |
-| SingleX           | Gao Xing               | CaiNiao      |
-| TankTian          | Tian Min               | Huawei       |
-| tuohai666         | Zhang Yonglun          | JD.com       |
-| vibakar           |                        |              |
-| weichao666        | Wei Chao               | ISoftStone   |
-| withLin           | Fu JinLin              |              |
-| wuzunqian         | Wu Zunqian             | Yongyou      |
-| xuyiyun0929       | Xu Yiyun               |              |
-| xiaoyimei         | Xiao Yimei             | Changhong    |
-| zhanglongchun     | Zhang LongChun         |              |
-| zhang2014         | Zhang Jian             | OneAPM       |
-| zhuhoudong        | Zhu Houdong            |              |
diff --git a/_developers/use-jira.md b/_developers/use-jira.md
deleted file mode 100644
index 8d0485e..0000000
--- a/_developers/use-jira.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: "Howto Use JIRA"
-lang: en
-ref: use-jira
-permalink: /developers/use-jira/
-excerpt: "How to use JIRA"
-last_modified_at: 2018-02-28T11:26:43-20:46
----
-
-{% include toc %}
-
-## JIRA Introduction
-JIRA is a task and issue tracking system of Atlassian. It is widely used in defect tracking, customer practice, demand collection, process approval, task tracking, project tracking and agile management. ServiceComb uses JIRA for bug and task tracking. This article will briefly describe how to use JIRA during the development of ServiceComb.
-
-## Login JIRA
-Open the [JIRA registration page] (https://issues.apache.org/jira/secure/Signup!default.jspa) in your browser, fill in your personal email address, name and other registration information to register. Log in and enter the [ServiceComb project] after registration (https://issues.apache.org/jira/projects/SCB/)
-
-## View issues
-After logging in to JIRA, the left panel is followed by Kanban, Releases, Reports, Issues, Components. Kanban content is shown below, showing the tasks that need to be completed (73 To Do), 3 In Progress and resolved. Task (79 Done), all task numbers start with SCB (short for ServiceComb), you can click the taskbar to view the details of each task.
-
-![](/assets/images/kanban.png){: .align-center}
-
-​Click on Issues in the left panel to see all the tasks and support custom filtering rules for filtering. Click on View all issues and filters in the upper right corner to filter. The default filtering rules include task type, task progress, responsible person, current status. Etc., you can also use the Advanced feature for advanced filtering.
-
-![](/assets/images/filter.png){: .align-center}
-
-## Create issue
-
-​Click Create to create an issue. When you create it, you need to select the issue type, including Task, Bug, Feature, Improvement, etc. After selecting the type, simply describe the issue content in the Summary. You need to fill in more content in the Description. It should be noted that ServiceComb contains four sub-projects, namely Java Chassis, Saga, Service-Center and website, so when creating an issue, you need to select the corresponding Component to specify which sub-project the  [...]
-
-![](/assets/images/issue.png){: .align-center}
-
-​After creating an issue, you can assign the issue to yourself, start the task Start Progress, and wait for the problem to be resolved after the Resolve Issue or Close Issue, as shown below:
-
-![](/assets/images/progress.png){: .align-center}
-
-​To solve the issue by submitting the code, you need to start with the SCB number of the issue on the title of the created PR, as shown in the following figure [SCB-327]
-
-![](/assets/images/pr.png){: .align-center}
-
-​For more information on how to use JIRA, please refer to [Official Document](https://confluence.atlassian.com/jiracoreserver076/getting-started-as-a-user-945112029.html).
diff --git a/_docs/cn/getstarted/getting-started.md b/_docs/cn/getstarted/getting-started.md
deleted file mode 100644
index 0ef2fa2..0000000
--- a/_docs/cn/getstarted/getting-started.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: "入门指南"
-lang: cn
-ref: getting-started
-permalink: /cn/docs/getting-started/
-excerpt: "ServiceComb入门指南"
-last_modified_at: 2019-11-12T00:50:43-55:00
----
-
-{% include toc %}
-## 入门
-Apache ServiceComb 是一个微服务的开源解决方案。其包含多个组件,通过组件之间的搭配,可以灵活的应对不同的场景。本指南可以帮助你快速的使用 Apache ServiceComb,针对初次使用的用户,这是开始尝试的最佳入口。  
-1. 下载 [ServiceComb 发布版本](/cn/release/)组件  
-2. [服务中心环境安装](/cn/docs/products/service-center/install/)
-3. [服务注册与发现](/cn/docs/products/service-center/registration-discovery/)
-4. 相应开发语言的快速入门说明进行使用 
-- [Java微服务开发框架 Java-Chassis](/cn/docs/products/java-chassis/quick-start/)  
-- [多语言运行环境 mesher](/cn/docs/products/mesher/quick-start/)
-5. 如果项目涉及多方协作、或遗留系统希望进行微服务化转型
-[一键微服务开发工具 Toolkit](/cn/docs/products/toolkit/quick-start/)
-
-## 进阶  
-1. [异构、多服务中心通讯 Syncer](/cn/docs/products/syncer/quick-start/)
-
-## 更多  
-完成上面的内容后,可以通过各个服务用户手册进行深入学习:
-[ServiceComb 用户手册](/cn/docs/users/)
diff --git a/_docs/cn/introduction/introduction.md b/_docs/cn/introduction/introduction.md
deleted file mode 100644
index a479761..0000000
--- a/_docs/cn/introduction/introduction.md
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: "项目介绍"
-lang: cn
-ref: introduction
-permalink: /cn/docs/introduction/
-excerpt: "ServiceComb项目介绍"
-last_modified_at: 2019-11-12T00:50:43-55:00
----
-
-{% include toc %}
-
-## Apache ServiceComb
-
-Apache ServiceComb 提供了融合开源生态的一站式微服务开源解决方案,致力于帮助企业、用户和开发者将应用轻松微服务化上云,实现对微服务应用的高效运维管理。
-
-### ServiceComb架构
-
-ServiceComb作为一个微服务解决方案,其包含多个产品,通过不同产品的组合,可以轻松应对微服务化的不同场景,为用户微服务化上云提供便利。
-
-![1](/assets/images/docs/servicecomb/servicecomb.jpg)
-
-### 服务中心(Service Center):
-
-Service Center 是一个服务注册中心,和其他注册中心一样,其主要作用在于解决服务的注册与发现,即动态路由的问题;同时为了更好的解决跨团队协作的问题,其增加了对契约(基于OpenAPI规范)服务的支持,与契约工具([Tookit](aaa))以及Java 微服务开发框架([Java Chassis](bbb))配合使用,可以使服务之间的通讯接口变得透明,从而使用户专注于业务开发。
-
-了解更多:[用户手册](/cn/docs/products/service-center/install/)
-
-### 配置中心(Kie)
-
-Kie 是一个语义型的分布式系统配置中心,其专为云原生的分布式系统设计,旨在为用户提供动态配置下发的能力,同时将 key 的规则由传统的拼接型(a.b.timeout=10s)重新设计为通俗易懂的语义型(timeout(service=a,version=b)=10s),方便运维人员理解数据和入口,管理复杂的分布式系统配置。
-
-了解更多:[用户手册](http://servicecomb.apache.org/docs/kie/0.1.0/index.html)
-
-### 分布式事务(Pack)
-
-Pack 是用于微服务应用程序的数据最终一致性解决方案。其有以下特性:
-
-- 高可用性。协调器是无状态的,因此可以具有多个实例。
-- 高可靠性。所有交易事件都永久存储在数据库中。
-- 高性能。事务事件通过gRPC报告给协调器,事务负载由Kyro序列化/反序列化。
-- 低入侵。您需要做的就是添加2-3个注释和相应的补偿方法。
-- 易于部署。所有组件均可通过docker启动。
-- 支持正向(重试)和反向(补偿)恢复。
-- 易于扩展基于Pack的其他协调协议,现在我们可以直接使用Saga和TCC支持。
-
-了解更多:[用户手册](https://docs.servicecomb.io/saga/zh_CN/)
-
-### Java 微服务开发框架(Java Chassis)
-
-Java Chassis 是基于Java的微服务开发框架,除提供服务注册发现、REST和高性能RPC通信、服务治理的常见功能外,其还具备以下五方面的特点:
-
-- 分层解耦:整个框架分为编程模型、运行模型、通信模型,业务层只关心编程模型和契约定义,而运行模型、通信模型对业务透明。这样通过对统一契约的加持,可以做到在通信模型变化的时候,代码可以零改动,只需通过简单的配置即可,同时各个层都可分别扩展。
-- 内置API-First支持:框架内部使用OpenAPI(Swagger)作为统一的契约描述方式,微服务开发时需使用契约描述的接口进行通信。对于不习惯先进行契约开发的用户,同时提供Code-First的开发模式,先写接口代码,微服务在启动时框架会自动生成契约并保存在服务管理中心。
-- 多种开发方式:ServiceComb支持用户以SpringMVC、JAX-RS或透明RPC的方式开发微服务,可以进一步降低使用和学习的门槛。
-- 开放性:支持Spring Boot和Spring Cloud,可以在Spring Boot上使用ServiceComb的组件,和其他Spring Cloud的相关组件一起工作。
-- 高性能:整个框架内部全部采用reactive方式实现,内部处理全程无阻塞点,大幅提升处理性能。同时对外提供同步的开发接口,方便上层业务逻辑地开发。
-
-了解更多:[快速入门](/cn/docs/products/java-chassis/quick-start/)  [用户手册](https://docs.servicecomb.io/java-chassis/en_US/index.html)
-
-### 多语言运行环境 (Mesher)
-
-Mesher 是 Apache servicecomb 的服务网格项目,它支持任意运行环境中的任意开发语言的应用快速接入ServiceComb 微服务体系。Mesher使用 go 语言基于 go-chassis 开源框架实现,以插件的形式支持负载均衡、流量控制、调用链追踪、熔断降级、服务治理、动态配置管理等微服务能力。Mesher目前支持sidecar和edgeservice两种运行模式。支持服务间使用http、grpc协议通信,有良好的可扩展性,用户可自行扩展自己的协议。Mesher以调用链的形式处理请求,可以根据配置自由裁剪处理函数。在控制面Mesher天然能够接入apache servicecomb微服务体系。并对当前主流的service-mesh具有兼容性,支持kubernetes,可接入Istio。
-
-了解更多:[快速入门](/cn/docs/products/mesher/quick-start/)  [用户手册](http://servicecomb.apache.org/docs/mesher/1.6.3/index.html)
-
-### 认证鉴权框架(Fence)
-
-Apache ServiceComb-fence 总体思路是结合 OAuth 2 和 OpenID Connect 协议,提供满足用户多样性认证鉴权的需求。重点是保证系统内部的认证鉴权(包括使用第三方的认证能力)。OAuth 2 和 OpenID connect 协议最早是为“给第三方提供认证能力”而设计的,Apache ServiceComb-fence 在方案设计上和能力开放方面,符合协议的标准。协议设计是为生态构建型企业而生,Apache ServiceComb-fence 则是将这些能力更好的应用到生态参与型企业,帮助参与生态,也为未来构建生态。
-
-了解更多:[用户手册](https://github.com/apache/servicecomb-fence/blob/master/README_ZH.md)
-
-### 一键式微服务开发工具(Toolkit)
-
-Apache ServiceComb Toolkit 是基于契约的微服务开发工具套件。提供契约、代码、文档相互转换及校验的能力,帮助用户一键式快速构建基于流行微服务框架和流行编程模型的微服务工程,降低微服务入门成本,使用户聚焦业务开发,提升遗留系统重构、开发效率。
-
-特性:
-
-- 遗留应用提取契约文件
-
-  在基于SpringMVC/POJO/JAX-RS模型开发的应用中,一键提取符合OpenAPI规范的服务契约文件。
-
-- 契约文件生成微服务工程
-
-  输入符合OpenAPI规范的服务契约,一键生成以ServiceComb/SpringCloud/Swagger为底座,以及以SpringMVC/POJO/JAX-RS或SpringBoot为开发模型的微服务项目。
-
-- 契约与代码一致性校验
-
-  校验应用的实际实现(如数据和服务API)是否与样本服务契约描述一致。
-
-- 契约的风格校验和兼容性校验
-
-  风格校验检查契约是否符合[OAS 3.0.2规范][openapi-3.0.2]以及自定义的规则; 兼容性校验检查新旧两个版本的OAS的兼容性
-
-- 契约/代码生成文档
-
-  输入符合OpenAPI规范的服务契约,一键生成html格式的文档。
-
-了解更多:[快速入门](/cn/docs/products/toolkit/quick-start/)
-
-### 多服务中心同步工具(Syncer)
-
-Syncer是一个多服务中心的同步工具,专为大型微服务架构设计。用于在网络互通的情况下,异构服务中心、跨区域的实例同步,未来将对跨网络、跨云等场景提供支持。Syncer以服务中心的伴生系统的形式而存在,主要负责从当前服务中心发现实例,并向网络其他成员进行广播;接收其他成员的广播,并拉取实例信息向当前服务中心进行注册。Syncer有如下特点:
-
-- 业务架构零侵入,Syncer 以透明的形式为服务中心同步实例信息,不参与原业务流程,服务无需感知其存在。
-- 不绑定服务中心,兼容生态,支持不同技术栈服务中心的接入。
-- 基于Serf(gossip   协议的实现)构建无中心的对等网络,成员的自由加入与退出,对 Syncer 网络、服务中心均无影响。
-- 以统一的数据结构在网络中进行传递,数据结构的转换被分散到各个 Syncer 中,其只需要处理当前服务中心数据结构与 SyncData 之间的转换,即可做到数据的最大兼容。
-- 以 golang 插件的形式对服务中心提供支持,用户可自由的扩展需要接入的服务中心。新的服务中心加入,只需在其伴生的 Syncer 进行向 SyncerData 的转换,数据即可在   Syncer 网络中进行同步,无需其他成员配合。
-- 服务的配置、部署、升级、维护等仍在单服务中心内完成,没有额外的业务维护成本增加。
-
-了解更多:[快速入门](/cn/docs/products/syncer/quick-start/)
-
diff --git a/_docs/cn/products/java-chassis/advance.md b/_docs/cn/products/java-chassis/advance.md
deleted file mode 100644
index 8b276fa..0000000
--- a/_docs/cn/products/java-chassis/advance.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: "微服务开发进阶"
-lang: cn
-ref: advance
-permalink: /cn/docs/products/java-chassis/advance/
-excerpt: "介绍如何在体质指数应用中使用ServiceComb的处理链能力"
-last_modified_at: 2017-09-03T10:01:43-04:00
----
-
-本指南将带您进入**体质指数**微服务应用开发的进阶之旅。在此旅程,您将能学到 **ServiceComb** 框架如何通过处理链保证微服务的可靠性:
-
-* [负载均衡](/cn/docs/products/java-chassis/load-balance/)。均衡地将请求分发至多个服务实例中处理。
-
-* [流量控制](/cn/docs/products/java-chassis/flow-control/)。限制单位时间内访问某个微服务的请求数量。
-
-* [服务治理](/cn/docs/products/java-chassis/service-management/)。在微服务应用中隔离异常服务并阻止异常传递。
-
-* [分布式追踪](/cn/docs/products/java-chassis/distributed-tracing)。可视化微服务间的数据流转。
-
-
-## 下一步
-
-* 认识 [**ServiceComb** 微服务开发框架](/cn/docs/users/)
-
-* 通过 [Company应用](/cn/docs/linuxcon-workshop-demo/) 更深入地了解微服务开发
diff --git a/_docs/cn/products/java-chassis/bmi.md b/_docs/cn/products/java-chassis/bmi.md
deleted file mode 100644
index ef8c2a0..0000000
--- a/_docs/cn/products/java-chassis/bmi.md
+++ /dev/null
@@ -1,216 +0,0 @@
----
-title: "体质指数微服务应用快速开发"
-lang: cn
-ref: bmi
-permalink: /cn/docs/products/java-chassis/bmi/
-excerpt: "以体质指数应用为例介绍如何基于Java Chassis快速开发微服务应用"
-last_modified_at: 2017-09-04T10:01:43-04:00
----
-
-{% include toc %}
-## 前言
-在您进一步阅读之前,请确保您已阅读了[快速入门指南](/cn/docs/products/java-chassis/quick-start/),并已成功运行**体质指数**微服务。接下来将进入**体质指数**微服务应用的开发之旅。
-
-## 快速开发微服务应用
-在[快速入门指南](/cn/docs/products/java-chassis/quick-start/)中已对**体质指数**微服务的架构进行了说明,其主要由两个微服务组成:
-
-* **体质指数计算器**:负责处理运算事务。
-
-* **体质指数界面**:提供用户界面及网关服务。
-
-在开始前,需要先在服务的父工程中添加以下依赖项:
-```java
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.servicecomb</groupId>
-        <artifactId>java-chassis-dependencies</artifactId>
-        <version>1.0.0-m1</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.hibernate</groupId>
-      <artifactId>hibernate-validator</artifactId>
-    </dependency>
-  </dependencies>
-```
-**注意**: `java-chassis-dependencies` 这个依赖是以pom的形式导入来统一项目中的依赖项的版本管理。
-
-下面将对这两个微服务的实现进行介绍,其代码已托管于[github](https://github.com/apache/servicecomb-samples/tree/1.3.0/java-chassis-samples/bmi)上。
-### 体质指数计算器实现
-体质指数计算器提供运算服务,其实现分为三部分:
-
-* 具体运算实现
-
-* 服务端点定义
-
-* 服务启动入口
-
-#### 具体运算实现
-本模块负责计算体质指数,根据公式 \\(体质指数=\frac{体重}{身高^2}\\) 进行实现,代码如下:
-```java
-public interface CalculatorService {
-  double calculate(double height, double weight);
-}
-
-@Service
-public class CalculatorServiceImpl implements CalculatorService {
-  @Override
-  public double calculate(double height, double weight) {
-    if (height <= 0 || weight <= 0) {
-      throw new IllegalArgumentException("Arguments must be above 0");
-    }
-    double heightInMeter = height / 100;
-    return weight / (heightInMeter * heightInMeter);
-  }
-}
-``` 
-
-#### 服务端点定义
-服务端点用于生成服务契约,使得服务间能无缝进行通信。首先定义端点接口:
-```java
-public interface CalculatorEndpoint {
-  double calculate(double height, double weight);
-}
-```
-引入 **ServiceComb** 依赖:
-```xml
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>spring-boot-starter-provider</artifactId>
-    </dependency>
-```
-暴露运算服务的Restful端点:
-```java
-@RestSchema(schemaId = "calculatorRestEndpoint")
-@RequestMapping("/")
-public class CalculatorRestEndpoint implements CalculatorEndpoint {
-
-  private final CalculatorService calculatorService;
-
-  @Autowired
-  public CalculatorRestEndpoint(CalculatorService calculatorService) {
-    this.calculatorService = calculatorService;
-  }
-
-  @Override
-  @GetMapping("/bmi")
-  public double calculate(double height, double weight) {
-    return calculatorService.calculate(height, weight);
-  }
-}
-```
-
-ServiceComb从0.3.0版本之后提供了对SpringMvc中简化注解(即`GetMapping`等)的支持。
-{: .notice--info}
-
-这里用`@RestSchema`注释端点后, **ServiceComb** 微服务框架会自动生成对应的服务端点契约,并根据
-如下的 `microservice.yaml` 文件中的定义来配置端点端口,将契约和服务一起注册到服务注册中心。
-```yaml
-APPLICATION_ID: bmi
-service_description:
-  name: calculator
-  version: 0.0.1
-servicecomb:
-  service:
-    registry:
-      address: http://127.0.0.1:30100
-  rest:
-    address: 0.0.0.0:7777
-```
-
-#### 服务启动入口
-服务启动入口中只需添加 `@EnableServiceComb` 的注解即可启用 *ServiceComb* 微服务框架,代码如下:
-```java
-@SpringBootApplication
-@EnableServiceComb
-public class CalculatorApplication {
-  public static void main(String[] args) {
-    SpringApplication.run(CalculatorApplication.class, args);
-  }
-}
-```
-
-### 体质指数界面实现
-本模块负责提供用户界面及网关服务。其实现主要分为三部分:
-
-* 前端界面
-
-* 网关及路由规则
-
-* 服务启动入口
-
-其中,前端界面的组件使用了[Bootstrap](http://getbootstrap.com/)来开发。
-
-#### 网关及路由规则
-网关服务主要用到了业界有名的[Netflix Zuul](https://github.com/Netflix/zuul/wiki)来实现。
-
-引入依赖:
-```xml
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>spring-boot-starter-discovery</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>spring-boot-starter-servicecomb</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>spring-cloud-zuul</artifactId>
-    </dependency>
-```
-
-ServiceComb从0.4.0-SNAPSHOT版本之后新增了`spring-cloud-zuul`模块使能提供对zuul的兼容。
-{: .notice--info}
-
-在 `application.yaml` 文件中配置路由规则及服务端口信息:
-```yaml
-zuul:
-  routes:
-    calculator: /calculator/**
-
-# disable netflix eureka since it's not used for service discovery
-ribbon:
-  eureka:
-    enabled: false
-
-server:
-  port: 8889
-```
-在 `microservice.yaml` 文件中配置网关服务的信息和服务注册中心的地址。
-```yaml
-APPLICATION_ID: bmi
-service_description:
-  name: gateway
-  version: 0.0.1
-servicecomb:
-  service:
-    registry:
-      address: http://127.0.0.1:30100
-```
-此处将服务注册中心和Zuul相结合使其能发现服务。
-
-#### 服务启动入口
-服务启动入口也只需要声明启用 `ServiceComb` 和 `Zuul` 即可。
-```java
-@SpringBootApplication
-@EnableZuulProxy
-@EnableServiceComb
-public class GatewayApplication {
-  public static void main(String[] args) {
-    SpringApplication.run(GatewayApplication.class, args);
-  }
-}
-```
-
-至此,**体质指数**应用已开发完毕,您可以通过[快速入门指南](/cn/docs/products/java-chassis/quick-start/#运行微服务应用)中的步骤对其进行验证。
-
-## 下一步
-
-* 阅读 [微服务开发进阶](/cn/docs/products/java-chassis/advance/)
diff --git a/_docs/cn/products/java-chassis/distributed-tracing.md b/_docs/cn/products/java-chassis/distributed-tracing.md
deleted file mode 100644
index 15b997b..0000000
--- a/_docs/cn/products/java-chassis/distributed-tracing.md
+++ /dev/null
@@ -1,95 +0,0 @@
----
-title: "分布式调用链追踪"
-lang: cn
-ref: distributed-tracing
-permalink: /cn/docs/products/java-chassis/distributed-tracing/
-excerpt: "介绍如何在体质指数应用中使用ServiceComb提供的分布式追踪能力"
-last_modified_at: 2017-09-03T10:01:43-04:00
----
-
-{% include toc %}
-分布式调用链追踪用于有效地监控微服务的网络延时并可视化微服务中的数据流转。本指南将展示如何在 *体质指数* 应用中使用 **ServiceComb** 提供的分布式调用链追踪能力。
-
-## 前言
-
-在您进一步阅读之前,请确保您已阅读了[微服务应用快速开发指南](/cn/docs/products/java-chassis/bmi/),并已成功运行体质指数微服务。
-
-## 启用
-
-1. 在 *体质指数计算器* 的 `pom.xml` 文件中添加依赖项:
-
-   ```xml
-       <dependency>
-         <groupId>org.apache.servicecomb</groupId>
-         <artifactId>handler-tracing-zipkin</artifactId>
-       </dependency>
-   ```
-
-2. 在 *体质指数计算器* 的 `microservice.yaml` 文件中添加分布式追踪的处理链:
-
-   ```yaml
-   servicecomb:
-     handler:
-       chain:
-         Provider:
-           default: tracing-provider
-   ```
-
-3. 在 *体质指数界面* 的 `pom.xml` 文件中添加依赖项:
-
-   ```xml
-       <dependency>
-         <groupId>org.apache.servicecomb</groupId>
-         <artifactId>spring-cloud-zuul-zipkin</artifactId>
-       </dependency>
-   ```
-
-体质指数应用中已配置好了上述配置项,您只需执行以下几步即可:
-
-1. 使用 Docker 运行 *Zipkin* 分布式追踪服务:
-
-   ```bash
-   docker run -d -p 9411:9411 openzipkin/zipkin
-   ```
-
-2. 重启 *体质指数计算器* 微服务:
-
-   ```bash
-   #spring-boot-maven-plugin 1.x
-   mvn spring-boot:run -Drun.jvmArguments="-Dcse.handler.chain.Provider.default=tracing-provider"
-   ```
-   or 
-   ```bash
-   #spring-boot-maven-plugin 2.x
-    mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dcse.handler.chain.Provider.default=tracing-provider"
-   ```
-   
-3. 重启 *体质指数界面* 微服务:
-
-   ```bash
-   #spring-boot-maven-plugin 1.x
-   mvn spring-boot:run -Drun.jvmArguments="-Dservicecomb.tracing.enabled=true"
-   ```
-   or
-   ```bash
-   #spring-boot-maven-plugin 2.x
-   mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dservicecomb.tracing.enabled=true"
-   ```
-
-## 验证
-
-1. 访问 <a>http://localhost:8889</a> ,在身高和体重栏处输入正数,并点击 *Submit* 按钮。
-
-2. 访问 <a>http://localhost:9411</a> ,查看分布式调用追踪情况,可得下方界面。
-
-![分布式追踪效果](/assets/images/distributed-tracing-result.png){: .align-center}
-
-## 下一步
-
-* 了解更多[分布式调用链追踪](/cn/docs/users/distributed-tracing/)
-
-* 阅读[基于 ServiceComb 和 Zipkin 的分布式调用链追踪](/cn/docs/tracing-with-servicecomb/)来进一步了解分布式追踪 
-
-* 认识 [**ServiceComb** 微服务开发框架](/cn/docs/users/)
-
-* 通过 [Company应用](/cn/docs/linuxcon-workshop-demo/) 更深入地了解微服务开发
diff --git a/_docs/cn/products/java-chassis/flow-control.md b/_docs/cn/products/java-chassis/flow-control.md
deleted file mode 100644
index 76e2523..0000000
--- a/_docs/cn/products/java-chassis/flow-control.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: "流量控制"
-lang: cn
-ref: flow-control
-permalink: /cn/docs/products/java-chassis/flow-control/
-excerpt: "介绍如何在体质指数应用中使用ServiceComb框架提供的流量控制能力"
-last_modified_at: 2017-09-03T10:01:43-04:00
----
-
-{% include toc %}
-流量控制机制通过控制数据传输速率来避免微服务过载运行。本指南将展示如何在 *体质指数* 应用中使用 **ServiceComb** 提供的流量控制能力。
-
-## 前言
-
-在您进一步阅读之前,请确保您已阅读了[微服务应用快速开发指南](/cn/docs/products/java-chassis/bmi/),并已成功运行体质指数微服务。
-
-## 开启
-
-1. 在 *体质指数计算器* 的 `pom.xml` 文件中添加依赖项:
-
-   ```xml
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>handler-flowcontrol-qps</artifactId>
-    </dependency>
-   ```
-
-2. 在 *体质指数计算器* 的 `microservice.yaml` 文件中指明使用流量控制的处理链及指定流控策略:
-
-   ```yaml
-   servicecomb:
-     handler:
-       chain:
-         Provider:
-           default: qps-flowcontrol-provider
-     flowcontrol:
-       Provider:
-         qps:
-           limit:
-             gateway: 1
-   ```
-
-体质指数应用中已配置好了上述配置项,您只需关闭之前运行的 **体质指数计算器**,然后再用以下指令重新运行即可:
-
-```bash
-#spring-boot-maven-plugin 1.x
-mvn spring-boot:run -Drun.jvmArguments="-Dcse.handler.chain.Provider.default=qps-flowcontrol-provider -Dcse.flowcontrol.Provider.qps.limit.gateway=1"
-```
-or
-```bash
-#spring-boot-maven-plugin 2.x
-mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dcse.handler.chain.Provider.default=qps-flowcontrol-provider -Dcse.flowcontrol.Provider.qps.limit.gateway=1"
-```
-
-## 验证 
-
-访问 <a>http://localhost:8889</a>,在身高和体重的输入框中输入正数,尝试在1秒内多次点击 *Submit* 按钮,此时就能看到网页由左侧的正常的界面变成了右侧提示由于流控受限而请求被拒的界面。
-
-![流量控制效果图](/assets/images/flow-control-result.png){: .align-center}
-
-## 下一步
-
-* 阅读[服务治理快速入门](/cn/docs/products/java-chassis/service-management/)
-
-* 了解更多[流量控制](/cn/docs/users/service-configurations/#限流策略)的使用方式
diff --git a/_docs/cn/products/java-chassis/load-balance.md b/_docs/cn/products/java-chassis/load-balance.md
deleted file mode 100644
index 0e33da2..0000000
--- a/_docs/cn/products/java-chassis/load-balance.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: "负载均衡"
-lang: cn
-ref: load-balance
-permalink: /cn/docs/products/java-chassis/load-balance/
-excerpt: "介绍如何在体质指数应用中使用ServiceComb框架提供的负载均衡能力"
-last_modified_at: 2017-09-03T10:01:43-04:00
----
-
-{% include toc %}
-当对体质指数计算器进行水平扩展时,需要将请求均衡地分发到多个体质指数计算器上。本指南将展示如何在 *体质指数* 应用中使用 **ServiceComb** 提供的负载均衡能力。
-
-## 前言
-
-在您进一步阅读之前,请确保您已阅读了[微服务应用快速开发指南](/cn/docs/products/java-chassis/bmi/),并已成功运行体质指数微服务。
-
-## 开启
-
-默认情况下会使用内置的一个简单的负载均衡的实现,不需要额外的配置。
-
-## 验证
-
-对 *体质指数计算器* 微服务进行水平扩展,使其运行实例数为2,即新增一个运行实例:
-
-```bash
-#spring-boot-maven-plugin 1.x
-mvn spring-boot:run -Drun.jvmArguments="-Dcse.rest.address=0.0.0.0:7778"
-```
-or
-```bash
-#spring-boot-maven-plugin 2.x
-mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dcse.rest.address=0.0.0.0:7778"
-```
-
-为了便于区分不同的运行实例,在体质指数计算器的实现中新增了返回实例ID和运行时间的接口,详情可查看[体质指数计算器的完整实现代码](https://github.com/apache/servicecomb-samples/tree/1.3.0/java-chassis-samples/bmi/calculator)。而为了避免端口冲突,新的实例在另一个端口上运行。
-
-此时点击 *Submit* 按钮就可以看到如下两个界面中的实例ID交替出现。
-
-![负载均衡效果](/assets/images/load-balance-result.png){: .align-center}
-
-## 下一步
-
-* 阅读[流量控制快速入门](/cn/docs/products/java-chassis/flow-control/)
-
-* 了解更多[负载均衡](/cn/docs/users/service-configurations/#负载均衡策略)的使用方式
diff --git a/_docs/cn/products/java-chassis/quick-start.md b/_docs/cn/products/java-chassis/quick-start.md
deleted file mode 100644
index 870ccce..0000000
--- a/_docs/cn/products/java-chassis/quick-start.md
+++ /dev/null
@@ -1,69 +0,0 @@
----
-title: "Java-Chassis 入门指南"
-lang: cn
-ref: quick-start
-permalink: /cn/docs/products/java-chassis/quick-start/
-excerpt: "介绍如何使用Java Chassis框架快速运行微服务应用"
-last_modified_at: 2017-09-03T10:01:43-04:00
----
-
-{% include toc %}
-## 安装 Java 开发环境
-
-* 安装**git**,详情可参考[git安装教程](https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git){:target="_blank"}。
-
-* 安装JDK 1.8,详情可参考[JDK安装教程](https://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html){:target="_blank"}。
-
-* 安装Maven 3.x,详情可参考[Maven安装教程](https://maven.apache.org/install.html){:target="_blank"}。
-
-* 下载ServiceComb-Sample
-
-   ```bash
-   git clone https://github.com/apache/servicecomb-samples.git
-   cd servicecomb-samples/java-chassis-samples/bmi
-   mvn clean install
-   ```
-
-## 运行 Service Center
-在 **ServiceComb** 微服务框架中,**Service Center** 提供服务注册及服务发现功能,可直接使用 Docker 运行。 
-```bash
-docker pull servicecomb/service-center
-docker run -d -p 30100:30100 servicecomb/service-center:latest
-```
-*您可以通过阅读[环境安装](/cn/docs/products/service-center/install/)获取在本地以二进制方式运行Service Center的方法。*
-
-## 创建第一个微服务
-本指南将以一个简单的 **体质指数(BMI)** 应用开展微服务之旅。[体质指数](https://baike.baidu.com/item/%E4%BD%93%E8%B4%A8%E6%8C%87%E6%95%B0){:target="_blank"}主要用于衡量人体胖瘦程度。该应用主要包含两个微服务:
-
-* **体质指数计算器**:负责处理运算事务。
-
-* **体质指数界面**:提供用户界面及网关服务。
-
-其运行流程为:  
-![体质指数应用运行流程](/assets/images/quick-start-sample-workflow.png){: .align-center}
-
-其中,虚线表示服务注册及服务发现的过程。
-
-## 运行微服务应用
-
-1. 进入 **体质指数** 应用代码目录。
-
-   ```bash
-   cd servicecomb-samples/java-chassis-samples/bmi
-   ```
-   **注意**:在windows开发环境下,docker是在虚拟机中启动,因此需要修改微服务的 **Service Center** IP地址为虚拟机IP地址。修改2个配置文件[calculator\|webapp]/src/main/resources/microservice.yaml,将其中<a>http://127.0.0.1:30100</a>修改为<a>http://192.168.99.100:30100</a>,其中192.168.99.100是虚拟机IP,需要与开发环境中的虚拟机IP保持一致。
-
-2. 启动 **体质指数计算器** 和 **体质指数界面** 微服务,分别执行以下指令:
-
-   ```bash
-   cd calculator; mvn spring-boot:run
-   cd webapp; mvn spring-boot:run
-   ```
-
-3. 验证服务。微服务启动完毕后,即可通过 <a>http://localhost:8889</a> 访问 **体质指数** 应用,届时将能看到如下界面,并可输入您的身高和体重信息验证服务是否正常运行。
-
-   ![体质指数应用运行界面](/assets/images/bmi-interface.png){: .align-center}
-
-## 下一步
-
-* 阅读[**体质指数**微服务应用快速开发](/cn/docs/products/java-chassis/bmi/)。
diff --git a/_docs/cn/products/java-chassis/service-management.md b/_docs/cn/products/java-chassis/service-management.md
deleted file mode 100644
index 66ddf4d..0000000
--- a/_docs/cn/products/java-chassis/service-management.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-title: "服务治理"
-lang: cn
-ref: service-management
-permalink: /cn/docs/products/java-chassis/service-management/
-excerpt: "介绍如何在体质指数应用中使用ServiceComb提供的服务治理能力"
-last_modified_at: 2017-09-03T10:01:43-04:00
----
-
-{% include toc %}
-服务治理主要用于解决或缓解服务雪崩的情况,即个别微服务表现异常时,系统能对其进行容错处理,从而避免资源的耗尽。本指南将会展示如何在 *体质指数* 应用中使用 **ServiceComb** 提供的服务治理能力。
-
-## 前言
-
-在您进一步阅读之前,请确保您已阅读了[微服务应用快速开发指南](/cn/docs/products/java-chassis/bmi/),并已成功运行体质指数微服务。
-
-## 启用
-
-1. 在 *体质指数计算器* 的 `pom.xml` 文件中添加依赖项:
-
-   ```xml
-       <dependency>
-         <groupId>org.apache.servicecomb</groupId>
-         <artifactId>handler-bizkeeper</artifactId>
-       </dependency>
-   ```
-
-2. 在 *体质指数计算器* 的 `microservice.yaml` 文件中指明使用服务治理的处理链及指定熔断和容错策略:
-
-   ```yaml
-   servicecomb:
-     handler:
-       chain:
-         Provider:
-           default: bizkeeper-provider
-     circuitBreaker:
-       Provider:
-         calculator:
-           requestVolumeThreshold: 3
-     fallbackpolicy:
-       Provider:
-         policy: returnnull
-   ```
-
-体质指数应用中已配置好了上述配置项,您只需重新运行 **体质指数计算器**:
-
-```bash
-#spring-boot-maven-plugin 1.x
-mvn spring-boot:run -Drun.jvmArguments="-Dcse.handler.chain.Provider.default=bizkeeper-provider -Dcse.circuitBreaker.Provider.calculator.requestVolumeThreshold=3 -Dcse.fallbackpolicy.Provider.policy=returnnull"
-```
-or
-```bash
-#spring-boot-maven-plugin 2.x
-mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dcse.handler.chain.Provider.default=bizkeeper-provider -Dcse.circuitBreaker.Provider.calculator.requestVolumeThreshold=3 -Dcse.fallbackpolicy.Provider.policy=returnnull"
-```
-
-## 验证
-
-1. 使服务进入熔断状态。访问 <a>http://localhost:8889</a>,在身高或体重的输入框中输入一个负数,连续点击三次或以上 *Submit* 按钮,此时在网页下方能看到类似左图的界面。
-
-2. 验证服务处于熔断状态。在身高和体重的输入框中输入正数,再次点击 *Submit* 按钮,此时看到的界面依然是类似左图的界面。同时在 *体质指数计算器* 运行日志也能看到调用不再抛出异常,而是出现类似 `fallback called` 的日志。
-
-3. 验证服务恢复正常。约15秒后,在身高和体重的输入框中输入正数,点击 *Submit* 按钮,此时界面显示正常。
-
-   ![服务治理效果](/assets/images/service-management-result.png){: .align-center}
-
-## 下一步
-
-* 阅读[分布式追踪快速入门指南](/cn/docs/products/java-chassis/distributed-tracing/)
-
-* 了解更多[服务治理](/cn/docs/users/service-configurations/)的使用方式
diff --git a/_docs/cn/products/mesher/advance.md b/_docs/cn/products/mesher/advance.md
deleted file mode 100644
index d08fcb3..0000000
--- a/_docs/cn/products/mesher/advance.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: Mesher开发进阶
-lang: cn
-ref: advance
-permalink: /cn/docs/products/mesher/advance/
-excerpt: 介绍如何在体质指数应用中使用ServiceComb的处理链能力
-last_modified_at: 2019-08-08T14:01:43.000Z
----
-
-本指南将带您进入使用**mesher**接入**ServiceComb**的进阶之旅。在此旅程,您将能学到如何使用**mesher**的微服务高级特性:
-
-- [mesher负载均衡](/cn/docs/products/mesher/load-balance/)。支持灵活可配置的微服务负载均衡策略。
-
-- [mesher流量控制](/cn/docs/products/mesher/flow-control/)。支持微服务请求流量控制能力。
-
-- [mesher服务治理](/cn/docs/products/mesher/service-management/)。支持微服务的灰度发布和熔断等治理能力。
-
-- [mesher分布式追踪](/cn/docs/products/mesher/distributed-tracing)。支持追溯微服务调用关系链的能力。
-
-# 下一步
-
-- 认识 [**ServiceComb** 微服务开发框架](/cn/users/)
-
-- 通过 [Company应用](/cn/docs/linuxcon-workshop-demo/) 更深入地了解微服务开发
diff --git a/_docs/cn/products/mesher/distributed-tracing.md b/_docs/cn/products/mesher/distributed-tracing.md
deleted file mode 100644
index 03a413e..0000000
--- a/_docs/cn/products/mesher/distributed-tracing.md
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: 分布式调用链追踪
-lang: cn
-ref: distributed-tracing
-permalink: /cn/docs/products/mesher/distributed-tracing/
-excerpt: 介绍如何在体质指数应用中使用ServiceComb提供的分布式追踪能力
-last_modified_at: 2019-08-08T14:01:43.000Z
----
-
-- 分布式调用链追踪提供追溯微服务调用关系和调用处理时延的能力,便于用户检查分布式环境中微服务的健康状态。本指南将展示如何使用 **mesher** 提供的分布式调用链追踪能力。
-
-# 前言
-
-- 在您进一步阅读之前,请确保您已阅读了[mesher快速入门](/cn/docs/products/mesher/quick-start/),并已成功运行用例服务。
-
-# 启用
-
-- 1、mesher main文件中添加对zipkin库依赖:
-
-  ```bash
-  _ "github.com/go-chassis/go-chassis-plugins/tracing/zipkin"
-  ```
-
-- 2、启发器bootstrap.go中添加默认处理函数,如图中箭头所示:
-
-  ![流量控制效果图](/assets/images/mesher/mesher-tracing-func.png)
-
-- 3、重新编译,分别替换**mesher_webapp**和**mesher_calculator**的可执行文件,启动mesher服务;
-
-- 4、使用**Docker**运行[Zipkin分布式追踪服务](/cn/docs/products/mesher/distributed-tracing/)
-
-  ```bash
-  docker run -d -p 9411:9411 openzipkin/zipkin
-  ```
-
-- 5、多次点击 _Submit_ 按钮发起服务调用;
-
-- 6、打开 <http://192.168.88.64:9411>可查看分布式追踪结果如图,可以通过host地址判断调用路径:
-
-  ![分布式追踪效果图](/assets/images/mesher/mesher-tracing-30111.png)
-
-# 下一步
-
-- 了解更多[分布式调用链追踪](/cn/docs/users/distributed-tracing/)
-
-- 阅读[基于 ServiceComb 和 Zipkin 的分布式调用链追踪](/cn/docs/tracing-with-servicecomb/)来进一步了解分布式追踪
-
-- 认识 [**ServiceComb** 微服务开发框架](/cn/docs/users/)
-
-- 通过 [Company应用](/cn/docs/linuxcon-workshop-demo/) 更深入地了解微服务开发
diff --git a/_docs/cn/products/mesher/flow-control.md b/_docs/cn/products/mesher/flow-control.md
deleted file mode 100644
index 7de4a59..0000000
--- a/_docs/cn/products/mesher/flow-control.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: 流量控制
-lang: cn
-ref: flow-control
-permalink: /cn/docs/products/mesher/flow-control/
-excerpt: 介绍如何在体质指数应用中使用ServiceComb框架提供的流量控制能力
-last_modified_at: 2017-09-03T14:01:43.000Z
----
-
-- 流量控制通过控制数据传输速率来避免微服务过载运行。本指南将展示如何使用 **mesher** 提供的流量控制能力。
-
-# 前言
-
-- 在您进一步阅读之前,请确保您已阅读了[mesher快速入门](/cn/docs/products/mesher/quick-start/),并已成功运行用例服务。
-
-# 开启
-
-- 添加流量控制配置,重启服务,更改**mesher_calculator**配置文件**chassis.yaml**,其中流量控制包含下列选项:
-
-  ```yaml
-  flowcontrol:
-    Provider:
-      qps:
-        enabled: true                 # enable rate limiting or not
-        global:
-          limit: 0                    # default limit of provider
-        limit:
-          Server: 0                  # rate limit for request from a provider
-  ```
-
-  该频率限制标识每秒接受的请求为0,即不提供服务。
-
-# 验证
-
-- 点击 _Submit_ 按钮,此时能看到由于流控受限而请求被拒的界面,请求已经无法到达httpserver_calculator。
-
-  ![流量控制效果图](/assets/images/mesher/mesher-flow-control-fail.png)
-
-  ![流量控制效果图](/assets/images/mesher/mesher-flow-control-log.png)
-
-# 下一步
-
-- 阅读[服务治理快速入门](/cn/docs/products/mesher/service-management/)
-
-- 了解更多[流量控制](/cn/docs/users/service-configurations/#限流策略)的使用方式
diff --git a/_docs/cn/products/mesher/load-balance.md b/_docs/cn/products/mesher/load-balance.md
deleted file mode 100644
index 9086803..0000000
--- a/_docs/cn/products/mesher/load-balance.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: 负载均衡
-lang: cn
-ref: load-balance
-permalink: /cn/docs/products/mesher/load-balance/
-excerpt: 介绍如何在体质指数应用中使用mesher提供的负载均衡能力
-last_modified_at: 2019-08-08T14:01:43.000Z
----
-
-- mesher支持灵活的负载均衡算法。本指南将展示如何使用 **mesher** 提供的负载均衡能力。
-
-# 前言
-
-- 在您进一步阅读之前,请确保您已阅读了[mesher快速入门](/cn/docs/products/mesher/quick-start/),并已成功运行用例服务。
-
-# 负载均衡算法
-
-- 启动一个新的**mesher_calculator**和**httpserver_calculator**实例用于负载均衡测试,可以使用例子目录[test_balance](https://github.com/apache/servicecomb-mesher/tree/master/examples/quick_start/test_balance)下的服务:
-- 1、修改mesher_calculator配置文件**microservice.yaml**中的服务name为**calculator**;<br>
-  更改配置**chassis.yaml**监听的地址和端口避免冲突:
-
-  ```bash
-  listenAddress: 127.0.0.1:40101  -----》  listenAddress: 192.168.88.64:40102
-  listenAddress: 127.0.0.1:30101  -----》  listenAddress: 192.168.88.64:30108
-  listenAddress: 127.0.0.1:30102  -----》  listenAddress: 192.168.88.64:30109
-  ```
-
-- 2、 启动**mesher_calculator**,需要设置mesher_calculator的**SPECIFIC_ADDR**地址,该地址用于将mesher和http服务绑定起来;
-
-  ```bash
-    export SPECIFIC_ADDR=127.0.0.1:4537
-    ./mesher
-  ```
-
-- 3、 默认情况下会使用roundbin(轮询)负载均衡算法,另外还支持Random和SessionStickiness负载均衡算法。 我们修改mesher_webapp的配置文件chassis.yaml,将负载均衡方法配置为Random:
-
-  ```bash
-  loadbalance:
-    strategy:
-      name: Random
-  ```
-
-- 4、 开启httpserver_calculator服务新实例,监听4537端口;
-
-- 5、 此时点击 _Submit_ 按钮就可以看到如下两个界面中的BMI Instance ID随机出现。
-
-  ![bmi测试初始化图1](/assets/images/mesher/mesher-testpythonhttp.png)<br>
-
-  ![bmi测试初始化图2](/assets/images/mesher/mesher-testpythonhttp2.png)
-
-# 下一步
-
-- 阅读[流量控制快速入门](/cn/docs/products/mesher/flow-control/)
-
-- 了解更多[负载均衡](/cn/docs/users/service-configurations/#负载均衡策略)的使用方式
diff --git a/_docs/cn/products/mesher/management.md b/_docs/cn/products/mesher/management.md
deleted file mode 100644
index 0be28cd..0000000
--- a/_docs/cn/products/mesher/management.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: 服务治理
-lang: cn
-ref: service-management
-permalink: /cn/docs/products/mesher/service-management/
-excerpt: 介绍如何在体质指数应用中使用ServiceComb提供的服务治理能力
-last_modified_at: 2019-08-08T14:01:43.000Z
----
-
-- 服务治理主要用于对分布式系统中大量微服务进行有效控制管理。本指南将会展示如何使用 **mesher** 提供的服务治理能力。
-
-# 前言
-
-- 在您进一步阅读之前,请确保您已阅读了[mesher快速入门](/cn/docs/products/mesher/quick-start/)和[mesher负载均衡](/cn/docs/products/mesher/load-balance/),并已成功运行mesher用例服务。
-
-# 灰度发布
-
-## 配置
-
-- 1、更新版本号: 分别更改两个**mesher_calculator**实例的配置文件**microservice.yaml**,更新**version**字段分别为**1.1.1**和**1.1.2**,重启mesher服务,可以看到服务版本号发生了变更。如图中所示:
-
-  ![灰度发布版本图](/assets/images/mesher/mesher-ser-manage-ver.png)
-
-- 2、配置路由信息,更改mesher_webapp的配置文件router.yaml,按实例版本更新权重信息,并重启服务:
-
-  ```yaml
-  routeRule:
-    calculator:        #service name
-      - precedence: 2    #precedence of route rule
-        route:           #route rule list
-        - tags:
-            version: 1.1.1
-          weight: 70     #weight of 20%
-        - tags:
-            version: 1.1.2
-          weight: 30     #weight of 20%
-  ```
-
-## 验证
-
-- 此时大量点击 _Submit_ 按钮就可以看到BMI Instance ID按配置的比例交替出现。
-
-# 服务熔断及恢复
-
-## 配置
-
-- 1、 更改断流器配置,更改mesher_webapp的配置文件chassis.yaml,设置其中的断流器配置为:
-
-  ```yaml
-  isolation:
-    Consumer:
-      timeout:
-        enabled: true
-      timeoutInMilliseconds: 1000            #超时时间
-      maxConcurrentRequests: 1
-  circuitBreaker:
-    Consumer:
-      enabled: true
-      forceOpen: false
-      forceClosed: false
-      sleepWindowInMilliseconds: 10000    #熔断恢复时间10秒
-      requestVolumeThreshold: 1          #请求量限制
-      errorThresholdPercentage: 1
-  fallback:
-    Consumer:
-      enabled: true
-      maxConcurrentRequests: 1
-  fallbackpolicy:
-    Consumer:
-      policy: returnnull
-  ```
-
-- 2、 关闭test_balance目录下的服务实例;
-
-## 验证
-
-- 1、传入负数参数,响应超时,mesher_webapp断流器生效,下图一是mesher_webapp日志截图,表明断流器启用,下图二是传入负数参数触发断流器时的返回值,下图三表示断流器生效后对所有请求都按配置返回nil;
-
-  ![断流器生效日志图](/assets/images/mesher/mesher-circuitbreaker.png)
-
-  ![断流器生效日志图](/assets/images/mesher/mesher-circuitbreaker-ret.png)
-
-  ![断流器生效日志图](/assets/images/mesher/mesher-circuitbreaker-ret-nil.png)
-
-- 2、根据配置参数sleepWindowInMilliseconds,过10秒后服务自动恢复
-
-# 下一步
-
-- 阅读[分布式追踪快速入门指南](/cn/docs/products/mesher/distributed-tracing/)
-
-- 了解更多[服务治理](/cn/docs/users/service-configurations/)的使用方式
diff --git a/_docs/cn/products/mesher/quick-start.md b/_docs/cn/products/mesher/quick-start.md
deleted file mode 100644
index 8ff810e..0000000
--- a/_docs/cn/products/mesher/quick-start.md
+++ /dev/null
@@ -1,149 +0,0 @@
----
-title: mesher快速入门
-lang: cn
-ref: quick-start
-permalink: /cn/docs/products/mesher/quick-start/
-excerpt: 介绍如何使用mesher快速改造微服务应用
-last_modified_at: 2019-08-08T14:01:43.000Z
----
-
-# 安装运行环境
-
-- 安装**git**,详情可参考[git安装教程](https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git){:target="_blank"}。
-
-- 安装**golang 1.12.7** ,详情可参考[Go安装教程](https://golang.google.cn/doc/install){:target="_blank"}。
-
-- 安装**python 2.7**,详情可参考[python安装教程](https://wiki.python.org/moin/BeginnersGuide/Download){:target="_blank"}。
-
-- 安装**nodejs v10.16.2**,详情可参考[nodejs安装教程](https://nodejs.org/en/download/){:target="_blank"}。
-
-# 运行 Service Center
-
-在 **ServiceComb** 微服务框架中,**Service Center** 提供服务注册及服务发现功能,可直接使用 Docker 运行。
-
-```bash
-docker pull servicecomb/service-center
-docker run -d -p 30100:30100 servicecomb/service-center:latest
-```
-
-_您可以通过阅读[环境安装](/cn/docs/products/service-center/install/#版本发布包启动)获取在本地以二进制方式运行**Service Center**和**front**的方法。_
-
-# 使用mesher接入servicecomb微服务体系
-
-## 案例背景
-
-- 本用例主要是帮助用户快速入门**mesher sidecar模式**;希望用户通过该例子,快速上手使用mesher服务,了解mesher的工作模式,并了解如何通过mesher的帮助改造已有的http服务,接入ServiceComb微服务体系,得到go-chassis微服务框架提供的负载均衡、流控、服务治理、调用链追踪等微服务能力。完整案例将提交至[案例下载](https://github.com/apache/servicecomb-mesher/tree/master/examples/quick_start).
-
-## 用例服务介绍
-
-- 如下图所示,用例中的服务部署在地址为192.168.88.64的机器上,用户在地址为192.168.88.78的机器上通过浏览器发起请求;
-
-- 1、 **httpserver_calculator**:基于python语言实现的http体质指数服务,可替换为任何语言开发的http服务;
-
-- 2、 **httpserver_webapp**:基于nodejs语言实现的web服务,用于在浏览器上展示可视化结果;
-
-- 3、 **mesher_webapp**:通过sidecar模式为httpserver_webapp提供服务的mesher实例;
-
-- 4、 **mesher_calculator**:通过sidecar模式为httpserver_calculator提供服务的mesher实例;
-
-- 5、 **servicecenter**:服务中心,接收mesher服务的注册,提供服务发现、路由查询、服务监控功能;
-
-  ![mesher部署图](/assets/images/mesher/mesher-deployment-simple.png)
-
-## 流程详情
-
-- 1、 浏览器[192.168.88.78]对 **httpserver_webapp** 服务发起http调用[]()<http://192.168.88.64:4597/calculator/bmi>;
-
-- 2、 httpserver_webapp服务接收请求,并发起对地址[]()<http://calculator/bmi>的http调用,因为设置了代理[]()<http://127.0.0.1:30101>,**httpserver_webapp** 发起的请求将被转发到 **mesher_webapp** 服务;
-
-- 3、 **mesher_webapp** 根据请求的服务名(microservice.yaml配置的服务名**calculator**)从服务中心**servicecenter**获得该服务名的地址,转发到**mesher_calculator**;
-
-- 4、 **mesher_calculator**服务根据设置好的specific地址,转发到自己绑定的体质指数**calculator**服务(**httpserver_calculator**)进行处理;
-
-- 5、 **httpserver_calculator**会根据用户身高和体重进行计算,并返回自己的服务标识展示在界面上;流程图如下所示:
-
-  ![mesher流程图](/assets/images/mesher/mesher-flowchart-simple.png)
-
-## 环境搭建
-
-- 1、 编译 **mesher** :[下载地址](https://github.com/apache/servicecomb-mesher), 按README.md编译项目得到可执行文件mesher(linux),windows(mesher.exe);
-
-- 2、 创建 **mesher_webapp** 用于为**httpserver_webapp**服务: 在mesher目录下执行下列linux命令创建mesher_webapp,此处除了可执行文件,还需要拷贝conf
-
-  ```bash
-  mkdir /usr/local/src/mesher_webapp
-  cp ./mesher /usr/local/src/mesher_webapp
-  cp -r ./conf /usr/local/src/mesher_webapp
-  ```
-
-  更改conf中配置文件,microservice.yaml中的**服务name**,从hellomesher改为**webapp**;更改chassis.yaml中监听的服务地址,从本地回环(127.0.0.1)地址改为**内网ip**(linux下通过ifconfig查看,如192.168.88.64):
-
-  ```bash
-  listenAddress: 127.0.0.1:40101  -----》  listenAddress: 192.168.88.64:40101
-  listenAddress: 127.0.0.1:30101  -----》  listenAddress: 192.168.88.64:30101
-  listenAddress: 127.0.0.1:30102  -----》  listenAddress: 192.168.88.64:30102
-  ```
-
-- 3、 创建**mesher_calculator**
-
-  ```bash
-  mkdir /usr/local/src/mesher_calculator
-  cp ./mesher /usr/local/src/mesher_calculator
-  cp -r ./conf /usr/local/src/mesher_calculator
-  ```
-
-  更改conf中配置文件,分别更改**microservice.yaml**中的**服务name**为体质指数微服务名**calculator**;<br>
-  更改**mesher_calculator**配置**chassis.yaml**监听的地址和端口:
-
-  ```bash
-  listenAddress: 127.0.0.1:40101  -----》  listenAddress: 192.168.88.64:40107
-  listenAddress: 127.0.0.1:30101  -----》  listenAddress: 192.168.88.64:30111
-  listenAddress: 127.0.0.1:30102  -----》  listenAddress: 192.168.88.64:30112
-  ```
-
-- 4、 启动mesher服务,分别进入**mesher_webapp**和**mesher_calculator**,启动服务,其中需要设置mesher_calculator的**SPECIFIC_ADDR**地址,该地址用于将mesher和http服务绑定起来;
-
-  ```bash
-  cd /usr/local/src/mesher_calculator
-  export SPECIFIC_ADDR=127.0.0.1:4540
-  ./mesher
-  ```
-
-  ```bash
-  cd /usr/local/src/mesher_webapp
-  ./mesher
-  ```
-
-- 5、 启动**httpserver_webapp**服务:
-
-  ```bash
-  cd /usr/local/src/httpserver_webapp
-  npm install
-  export http_proxy=http://127.0.0.1:30101
-  node ./httpserver_webapp.js
-  ```
-
-- 6、 **httpserver_calculator**作为体质指数计算服务,需要安装python2.7,依赖BaseHTTPServer包:
-
-  ```bash
-  cd /usr/local/src/httpserver_calculator
-  ./httpserver_calculator.py
-  ```
-
-## 开始测试
-
-- 1、 浏览器打开页面<http://192.168.88.64:30103> (如果打不开需要开启服务中心service-center的front服务,参考 <http://servicecomb.apache.org/cn/docs/service-center/install/#版本发布包启动>) 查看服务,其中地址service-center服务启动的地址,看到如图界面。**webapp**代表**mesher_webapp**服务,这里展示的是microservice.yaml中配置的服务名。**calculator**代表**mesher_calculator**服务,这里展示的是microservice.yaml中配置的服务名。大写的**SERVICECENTER**是服务中心;
-
-  ![服务中心监控图](/assets/images/mesher/mesher-servercenter.png)
-
-- 2、 浏览器打开<http://192.168.88.64:4597>,可以看到如下界面,为webapp呈现的静态页面:
-
-  ![bmi测试初始化图](/assets/images/mesher/mesher-testinit.png)
-
-- 3、 输入参数(180、70)点击submit,显示如下图:
-
-  ![bmi测试初始化图](/assets/images/mesher/mesher-testpythonhttp.png)
-
-# 下一步
-
-- 阅读[**mesher**进阶](/cn/docs/products/mesher/advance/)。
diff --git a/_docs/cn/products/pack/dataconsistency.md b/_docs/cn/products/pack/dataconsistency.md
deleted file mode 100644
index 00c7c00..0000000
--- a/_docs/cn/products/pack/dataconsistency.md
+++ /dev/null
@@ -1,460 +0,0 @@
----
-title: "数据一致性解决方案"
-lang: cn
-ref: dataconsistency
-permalink: /cn/docs/products/pack/dataconsistency/
-excerpt: "介绍ServiceComb的Saga数据一致性方案应用demo"
-last_modified_at: 2017-09-19T11:50:10-04:00
----
-
-{% include toc %}
-模拟一个简单的旅行应用,展示如何使用ServiceComb提供的Saga方案保证微服务间数据一致性。
-
-旅行应用包含四个微服务:
-- 机票预订服务(flight-booking-service)
-- 租车服务(car-rental-service)
-- 酒店预订服务(hotel-reservation-service)
-- 支付服务(payment-service)
-
-机票预订、租车、酒店预订服务间无依赖关系,使用自己的数据库,通过HTTP协议通信。
-在以上三个服务的预订成功,支付完成后才能满足一个成功的行程,否则不能成行,Saga自动补偿。
-
-![Saga-demo]({{ site.url }}{{ site.baseurl }}/assets/images/saga-demo.png)
-
-## 运行demo
-
-注:Demo 集成在 [ServiceComb-Saga](https://github.com/apache/servicecomb-saga) 项目中。
-
-1. 准备环境
-- [Oracle JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
-- [Maven 3.x](https://maven.apache.org/install.html)
-- [Docker](https://www.docker.com/get-docker)
-- [MySQL](https://dev.mysql.com/downloads/)
-- [Service Center](https://github.com/apache/servicecomb-service-center)
-- [Docker compose](https://docs.docker.com/compose/install/)
-
-2. 配置服务
-	在各服务的 *microservice.yaml* 文件,设置该服务注册的服务中心
-
-	```yaml
-	APPLICATION_ID: saga
-	service_description:
-	  name: flight-booking-service
-	  version: 0.0.1
-	servicecomb:
-	  service:
-	    registry:
-	      address: http://sc.servicecomb.io:30100 #此处选择使用ServiceComb的Service Center
-	  rest:
-	    address: 0.0.0.0:8080
-	  handler:
-	    chain:
-	      Consumer:
-	        default: loadbalance
-	```
-
-	在 *saga-demo/docker-compose.yaml* 设置部署脚本
-	```yaml
-	version: '2.1'
-
-	services:
-	  service-center: #此处选择使用ServiceComb的Service Center容器镜像
-	    image: "servicecomb/service-center"
-	    hostname: service-center
-	    ports:
-	      - "30100:30100"
-
-	  mysql:  #此处选择使用5.7版本的mysql镜像
-	    image: "mysql/mysql-server:5.7"
-	    hostname: mysql
-	    environment:
-	      - MYSQL_ROOT_PASSWORD=password
-	      - MYSQL_DATABASE=saga
-	      - MYSQL_USER=saga
-	      - MYSQL_PASSWORD=password
-	    ports:
-	      - "3306:3306"
-	    healthcheck:
-	        test: ["CMD-SHELL", "nc -z localhost 3306 &> /dev/null; echo $$?"]
-	        interval: 30s
-	        timeout: 10s
-	        retries: 5
-
-	  car-rental-service:
-	    image: "car-rental-service:0.0.2-SNAPSHOT"
-	    hostname: car
-	    links:
-	      - "service-center:sc.servicecomb.io"
-	    ports:
-	      - "8080:8080"
-
-	  flight-booking-service:
-	    image: "flight-booking-service:0.0.2-SNAPSHOT"
-	    hostname: flight
-	    links:
-	      - "service-center:sc.servicecomb.io"
-	    ports:
-	      - "8081:8080"
-
-	  hotel-reservation-service:
-	    image: "hotel-reservation-service:0.0.2-SNAPSHOT"
-	    hostname: hotel
-	    links:
-	      - "service-center:sc.servicecomb.io"
-	    ports:
-	      - "8082:8080"
-
-	  payment-service:
-	    image: "payment-service:0.0.2-SNAPSHOT"
-	    hostname: payment
-	    links:
-	      - "service-center:sc.servicecomb.io"
-	    ports:
-	      - "8080"
-
-	  saga:
-	    image: "saga-spring:0.0.2-SNAPSHOT"
-	    hostname: saga
-	    links:
-	      - "mysql:mysql.servicecomb.io"
-	      - "service-center:sc.servicecomb.io"
-	      - "car-rental-service:car.servicecomb.io"
-	      - "flight-booking-service:flight.servicecomb.io"
-	      - "hotel-reservation-service:hotel.servicecomb.io"
-	      - "payment-service:payment.servicecomb.io"
-	    environment:
-	      - JAVA_OPTS=-Dspring.profiles.active=prd,servicecomb -Dcse.service.registry.address=http://sc.servicecomb.io:30100
-	    ports:
-	      - "8083:8080"
-	    depends_on:
-	      mysql:
-	        condition: service_healthy
-	```
-
-3. 在Saga项目的根目录执行编译,制作Saga、机票预订、租车、酒店预订和支付服务镜像
-
-	```bash
-	mvn package -DskipTests -Pdocker -Pdemo
-	```
-
-4. 在Saga项目的saga-demo目录通过docker-compose一键启动Saga、机票预订、租车、酒店预订和支付服务
-
-	```bash
-	docker-compose up
-	```
-
-## 验证
-
-1. 参照 [Saga API](https://github.com/apache/servicecomb-saga/blob/master/docs/api/api.md) 说明,设定各服务的事务、补偿、依赖和恢复参数,并保存为 *request.json* 文件
-
-	```json
-	{
-	  "policy": "BackwardRecovery",
-	  "requests": [
-	    {
-	      "id": "request-car",
-	      "type": "rest",
-	      "serviceName": "car-rental-service",
-	      "transaction": {
-	        "method": "post",
-	        "path": "/rentals",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      },
-	      "compensation": {
-	        "method": "put",
-	        "path": "/rentals",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      }
-	    },
-	    {
-	      "id": "request-hotel",
-	      "type": "rest",
-	      "serviceName": "hotel-reservation-service",
-	      "transaction": {
-	        "method": "post",
-	        "path": "/reservations",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      },
-	      "compensation": {
-	        "method": "put",
-	        "path": "/reservations",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      }
-	    },
-	    {
-	      "id": "request-flight",
-	      "type": "rest",
-	      "serviceName": "flight-booking-service",
-	      "transaction": {
-	        "method": "post",
-	        "path": "/bookings",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      },
-	      "compensation": {
-	        "method": "put",
-	        "path": "/bookings",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      }
-	    },
-	    {
-	      "id": "request-payment",
-	      "type": "rest",
-	      "serviceName": "payment-service",
-	      "parents": [
-	        "request-car",
-	        "request-flight",
-	        "request-hotel"
-	      ],
-	      "transaction": {
-	        "method": "post",
-	        "path": "/payments",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      },
-	      "compensation": {
-	        "method": "put",
-	        "path": "/payments",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      }
-	    }
-	  ]
-	}
-	```
-
-2. 发送请求到Saga
-
-	```bash
-	curl -XPOST -H "Content-Type: text/plain" -d @./request.json  http://<localhost.ip:8083>/requests
-	```
-
-    获取处理结果成功(如果失败,返回相应的错误信息)
-	```bash
-	success
-	```
-
-3. 查看Saga的事务
-
-	```bash
-	curl -XGET http://<localhost.ip:8083>/events
-	```
-
-    查询结果
-
-	```bash
-	{
-	    "bcd27f0d-6b82-49b3-8067-b16eba970e55": [
-	        {
-	            "id": 1,
-	            "sagaId": "bcd27f0d-6b82-49b3-8067-b16eba970e55",
-	            "creationTime": "2017-09-20T00:30:21Z",
-	            "type": "SagaStartedEvent",
-	            "contentJson": "{\"policy\": \"BackwardRecovery\", \"requests\": [{\"id\": \"request-car\", \"type\": \"rest\", \"serviceName\": \"car-rental-service\", \"transaction\": {\"path\": \"/rentals\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/rentals\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}}, {\"id\": \"request-hotel\", \"type\": \"rest\", \"serviceName\": \"hotel-reservation-servic [...]
-	        },
-	        {
-	            "id": 2,
-	            "sagaId": "bcd27f0d-6b82-49b3-8067-b16eba970e55",
-	            "creationTime": "2017-09-20T00:30:21Z",
-	            "type": "TransactionStartedEvent",
-	            "contentJson": "{\"id\": \"request-hotel\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"hotel-reservation-service\", \"transaction\": {\"path\": \"/reservations\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/reservations\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}"
-	        },
-	        {
-	            "id": 3,
-	            "sagaId": "bcd27f0d-6b82-49b3-8067-b16eba970e55",
-	            "creationTime": "2017-09-20T00:30:21Z",
-	            "type": "TransactionStartedEvent",
-	            "contentJson": "{\"id\": \"request-car\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"car-rental-service\", \"transaction\": {\"path\": \"/rentals\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/rentals\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}"
-	        },
-	        {
-	            "id": 4,
-	            "sagaId": "bcd27f0d-6b82-49b3-8067-b16eba970e55",
-	            "creationTime": "2017-09-20T00:30:21Z",
-	            "type": "TransactionStartedEvent",
-	            "contentJson": "{\"id\": \"request-flight\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"flight-booking-service\", \"transaction\": {\"path\": \"/bookings\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/bookings\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}"
-	        },
-	        {
-	            "id": 5,
-	            "sagaId": "bcd27f0d-6b82-49b3-8067-b16eba970e55",
-	            "creationTime": "2017-09-20T00:30:22Z",
-	            "type": "TransactionEndedEvent",
-	            "contentJson": "{\"request\": {\"id\": \"request-flight\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"flight-booking-service\", \"transaction\": {\"path\": \"/bookings\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/bookings\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}, \"response\": {\"body\": \"{\\n  \\\"statusCode\\\ [...]
-	        },
-	        {
-	            "id": 6,
-	            "sagaId": "bcd27f0d-6b82-49b3-8067-b16eba970e55",
-	            "creationTime": "2017-09-20T00:30:24Z",
-	            "type": "TransactionEndedEvent",
-	            "contentJson": "{\"request\": {\"id\": \"request-hotel\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"hotel-reservation-service\", \"transaction\": {\"path\": \"/reservations\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/reservations\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}, \"response\": {\"body\": \"{\\n  \\\"sta [...]
-	        },
-	        {
-	            "id": 7,
-	            "sagaId": "bcd27f0d-6b82-49b3-8067-b16eba970e55",
-	            "creationTime": "2017-09-20T00:30:25Z",
-	            "type": "TransactionEndedEvent",
-	            "contentJson": "{\"request\": {\"id\": \"request-car\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"car-rental-service\", \"transaction\": {\"path\": \"/rentals\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/rentals\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}, \"response\": {\"body\": \"{\\n  \\\"statusCode\\\": 200,\\ [...]
-	        },
-	        {
-	            "id": 8,
-	            "sagaId": "bcd27f0d-6b82-49b3-8067-b16eba970e55",
-	            "creationTime": "2017-09-20T00:30:25Z",
-	            "type": "TransactionStartedEvent",
-	            "contentJson": "{\"id\": \"request-payment\", \"type\": \"rest\", \"parents\": [\"request-car\", \"request-flight\", \"request-hotel\"], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"payment-service\", \"transaction\": {\"path\": \"/payments\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/payments\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}"
-	        },
-	        {
-	            "id": 9,
-	            "sagaId": "bcd27f0d-6b82-49b3-8067-b16eba970e55",
-	            "creationTime": "2017-09-20T00:30:25Z",
-	            "type": "TransactionEndedEvent",
-	            "contentJson": "{\"request\": {\"id\": \"request-payment\", \"type\": \"rest\", \"parents\": [\"request-car\", \"request-flight\", \"request-hotel\"], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"payment-service\", \"transaction\": {\"path\": \"/payments\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/payments\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}, \" [...]
-	        },
-	        {
-	            "id": 10,
-	            "sagaId": "bcd27f0d-6b82-49b3-8067-b16eba970e55",
-	            "creationTime": "2017-09-20T00:30:25Z",
-	            "type": "SagaEndedEvent",
-	            "contentJson": "{}"
-	        }
-    	]
-	}
-	```
-
-4. demo中模拟了支付服务帐户余额不足场景,发送请求超过一次将触发补偿操作。再次发送请求,可以在Saga日志中找到补偿事件
-
-	```bash
-	{
-	    "bcd27f0d-6b82-49b3-8067-b16eba970e55": [
-	        ...
-	    ],
-	    "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9": [
-	        {
-	            "id": 11,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:30:45Z",
-	            "type": "SagaStartedEvent",
-	            "contentJson": "{\"policy\": \"BackwardRecovery\", \"requests\": [{\"id\": \"request-car\", \"type\": \"rest\", \"serviceName\": \"car-rental-service\", \"transaction\": {\"path\": \"/rentals\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/rentals\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}}, {\"id\": \"request-hotel\", \"type\": \"rest\", \"serviceName\": \"hotel-reservation-servic [...]
-	        },
-	        {
-	            "id": 12,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:30:45Z",
-	            "type": "TransactionStartedEvent",
-	            "contentJson": "{\"id\": \"request-car\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"car-rental-service\", \"transaction\": {\"path\": \"/rentals\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/rentals\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}"
-	        },
-	        {
-	            "id": 13,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:30:45Z",
-	            "type": "TransactionStartedEvent",
-	            "contentJson": "{\"id\": \"request-hotel\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"hotel-reservation-service\", \"transaction\": {\"path\": \"/reservations\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/reservations\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}"
-	        },
-	        {
-	            "id": 14,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:30:45Z",
-	            "type": "TransactionStartedEvent",
-	            "contentJson": "{\"id\": \"request-flight\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"flight-booking-service\", \"transaction\": {\"path\": \"/bookings\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/bookings\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}"
-	        },
-	        {
-	            "id": 15,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:30:45Z",
-	            "type": "TransactionEndedEvent",
-	            "contentJson": "{\"request\": {\"id\": \"request-car\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"car-rental-service\", \"transaction\": {\"path\": \"/rentals\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/rentals\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}, \"response\": {\"body\": \"{\\n  \\\"statusCode\\\": 200,\\ [...]
-	        },
-	        {
-	            "id": 16,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:30:45Z",
-	            "type": "TransactionEndedEvent",
-	            "contentJson": "{\"request\": {\"id\": \"request-hotel\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"hotel-reservation-service\", \"transaction\": {\"path\": \"/reservations\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/reservations\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}, \"response\": {\"body\": \"{\\n  \\\"sta [...]
-	        },
-	        {
-	            "id": 17,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:30:45Z",
-	            "type": "TransactionEndedEvent",
-	            "contentJson": "{\"request\": {\"id\": \"request-flight\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"flight-booking-service\", \"transaction\": {\"path\": \"/bookings\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/bookings\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}, \"response\": {\"body\": \"{\\n  \\\"statusCode\\\ [...]
-	        },
-	        {
-	            "id": 18,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:30:45Z",
-	            "type": "TransactionStartedEvent",
-	            "contentJson": "{\"id\": \"request-payment\", \"type\": \"rest\", \"parents\": [\"request-car\", \"request-flight\", \"request-hotel\"], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"payment-service\", \"transaction\": {\"path\": \"/payments\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/payments\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}"
-	        },
-	        {
-	            "id": 19,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:31:15Z",
-	            "type": "TransactionAbortedEvent",
-	            "contentJson": "{\"request\": {\"id\": \"request-payment\", \"type\": \"rest\", \"parents\": [\"request-car\", \"request-flight\", \"request-hotel\"], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"payment-service\", \"transaction\": {\"path\": \"/payments\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/payments\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}, \" [...]
-	        },
-	        {
-	            "id": 20,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:31:15Z",
-	            "type": "TransactionCompensatedEvent",
-	            "contentJson": "{\"request\": {\"id\": \"request-car\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"car-rental-service\", \"transaction\": {\"path\": \"/rentals\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/rentals\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}, \"response\": {\"body\": \"{\\n  \\\"statusCode\\\": 200,\\ [...]
-	        },
-	        {
-	            "id": 21,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:31:15Z",
-	            "type": "TransactionCompensatedEvent",
-	            "contentJson": "{\"request\": {\"id\": \"request-hotel\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"hotel-reservation-service\", \"transaction\": {\"path\": \"/reservations\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/reservations\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}, \"response\": {\"body\": \"{\\n  \\\"sta [...]
-	        },
-	        {
-	            "id": 22,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:31:15Z",
-	            "type": "TransactionCompensatedEvent",
-	            "contentJson": "{\"request\": {\"id\": \"request-flight\", \"type\": \"rest\", \"parents\": [], \"fallback\": {\"type\": \"NOP\"}, \"serviceName\": \"flight-booking-service\", \"transaction\": {\"path\": \"/bookings\", \"method\": \"post\", \"params\": {\"form\": {\"customerId\": \"mike\"}}}, \"compensation\": {\"path\": \"/bookings\", \"method\": \"put\", \"params\": {\"form\": {\"customerId\": \"mike\"}}, \"retries\": 3}}, \"response\": {\"body\": \"{\\n  \\\"statusCode\\\ [...]
-	        },
-	        {
-	            "id": 23,
-	            "sagaId": "2654fa50-71e2-4fc8-afc2-6a5e0d3dafe9",
-	            "creationTime": "2017-09-20T00:31:15Z",
-	            "type": "SagaEndedEvent",
-	            "contentJson": "{}"
-	        }
-	    ]
-	}
-	```
-
-## 下一步
-
-* 了解更多[ServiceComb中的数据最终一致性方案 - part 1](/cn/docs/distributed_saga_1/)
-
-* 了解更多[ServiceComb中的数据最终一致性方案 - part 2](/cn/docs/distributed_saga_2/)
-
-* 了解更多[ServiceComb中的数据最终一致性方案 - part 3](/cn/docs/distributed_saga_3/)
diff --git a/_docs/cn/products/service-center/install.md b/_docs/cn/products/service-center/install.md
deleted file mode 100644
index d7dad6d..0000000
--- a/_docs/cn/products/service-center/install.md
+++ /dev/null
@@ -1,139 +0,0 @@
----
-title: "ServiceCenter 安装"
-lang: cn
-ref: install
-permalink: /cn/docs/products/service-center/install/
-excerpt: "了解如何运行ServiceComb的服务中心"
-last_modified_at: 2019-11-12T00:50:43-55:00
----
-
-{% include toc %}
-## 服务中心 ServiceCenter
-ServiceCenter是一个服务注册中心。 服务提供者可以将自身的实例信息注册到 ServiceCenter,以供服务消费者发现并使用它。 
- 
-## 版本发布包启动
-1. 下载 [最新版本的Service-Center](/cn/release/service-center-downloads/)  
-   此处使用了 apache-servicecomb-service-center-2.0.0-linux-amd64.tar.gz 包做介绍,实际操作时请根据系统环境从下载页面选取最新版本 
-2. 启动服务
-   ```bash
-   # 解压tar包
-   $ tar -zxvf  apache-servicecomb-service-center-2.0.0-linux-amd64.tar.gz
-   
-   # 启动servicecenter服务
-   $ cd apache-servicecomb-service-center-2.0.0-linux-amd64/
-   $ ./start-service-center.sh
-   ```
-3. 查看服务状态
-   ```bash
-   # 查看进程状态
-   $ ps -ef | grep service-center
-   root     27048     1  2 14:38 pts/2    00:00:00 ./service-center
-   root     27164 22742  0 14:38 pts/2    00:00:00 grep --color=auto service-center
-   
-   # 查看端口监听
-   $ netstat -apn | grep :30100
-   tcp        0      0 127.0.0.1:30100         0.0.0.0:*               LISTEN      27048/service-cente
-   
-   # curl命令调用接口
-   $ curl http://127.0.0.1:30100
-   {"_links":{"pb:latest-pact-versions":{"href":"http://127.0.0.1:30100/pacts/latest","title":"Latest pact versions"},"pb:latest-provider-pacts":{"href":"http://127.0.0.1:30100/pacts/provider/{provider}/latest","title":"Latest pacts by provider","templated":true},"pb:latest-provider-pacts-with-tag":{"href":"http://127.0.0.1:30100/pacts/provider/{provider}/latest/{tag}","title":"Latest pacts by provider with a specified tag","templated":true},"pb:pacticipants":{"href":"http://127.0.0.1:30 [...]
-   
-   # 返回如上json串即为启动成功
-   ```
-4. 启动前端页面并查看状态
-   ```bash
-   $ ./start-frontend.sh
-   $ ps -ef | grep frontend 
-   root      1875 32096  0 17:43 pts/6    00:00:00 grep --color=auto frontend
-   root      3020     1  0 Nov05 ?        00:00:23 ./frontend
-   
-   # 查看端口监听
-   $ netstat -apn | grep :30103
-   tcp        0      0 127.0.0.1:30103     0.0.0.0:*               LISTEN      3020/frontend
-   ```
-5. 浏览器访问前端页面 http://127.0.0.1:30103,查看服务中心实例(出现以下页面即为成功)  
-   ![1](/assets/images/docs/service-center/service-center.jpg)  
-   **_注:_**
-   - 若 frontend 服务不是本地启动,则无法通过 http://127.0.0.1:30103 访问;需要修改配置文件中"frontend_host_ip"为主机IP,并使用 http://{ip}:30103 的形式进行访问
-   - 若 Service-Center 需要对外提供服务,需要修改"httpaddr",外部应用使用 http://{ip}:30100 进行访问  
-   如图:  
-   ![1](/assets/images/docs/service-center/config-host-ip.jpg)
-   
-## Docker镜像启动
-1. 下载并运行镜像
-   ```bash
-   # 下载镜像
-   $ docker pull servicecomb/service-center
-   # 启动容器
-   $ docker run -d -p 30100:30100 servicecomb/service-center
-   ```
-2. 查看镜像状态和监听端口
-   ```bash
-   # 查看端口监听
-   $ docker ps | grep service-center
-   0733021cd96d        servicecomb/service-center        "/opt/service-cent..."   3 minutes ago       Up 3 minutes        0.0.0.0:30100->30100/tcp        gallant_varahamihira 
-   ```
-
-## Kubernetes 部署  
-1. 配置部署脚本  
-   ```bash
-   
-   $ cat <<EOF >> ./service-center.yaml
-   apiVersion: v1
-   kind: Service
-   metadata:
-     name: servicecenter
-     namespace: svccomb-system
-     labels:
-       app: servicecenter
-   spec:
-     ports:
-     - port: 30100
-       name: http
-     selector:
-       app: servicecenter
-   ---
-   apiVersion: extensions/v1beta1
-   kind: Deployment
-   metadata:
-     name: servicecenter
-     namespace: svccomb-system
-   spec:
-     replicas: 1
-     template:
-       metadata:
-         labels:
-           app: servicecenter
-           version: v1
-       spec:
-         containers:
-         - name: servicecenter
-           image: servicecomb/service-center:latest
-           imagePullPolicy: IfNotPresent
-           ports:
-           - containerPort: 30100 
-   EOF
-   ```
-2. Kubernetes中部署
-   ```bash
-   # 创建 namespace "svccomb-system"
-   $ kubectl create namespace svccomb-system
-   
-   # 部署 service-center
-   $ kubectl apply -f service-center.yaml
-   ```
-3. 查看Pod状态和service端口
-   ```bash
-   # 查看 pod 启动状态
-   $ kubectl -n svccomb-system get pod
-   NAME                             READY   STATUS    RESTARTS   AGE
-   servicecenter-7d964b7644-h6f4s   1/1     Running   0          72s
-   
-   # 获取 service 监听
-   $ kubectl -n svccomb-system get service
-   NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)     AGE
-   servicecenter   ClusterIP   10.104.241.163   <none>        30100/TCP   118s
-   
-   $ curl http://10.104.241.163:30100
-   ...
-   ```
diff --git a/_docs/cn/products/service-center/registration-discovery.md b/_docs/cn/products/service-center/registration-discovery.md
deleted file mode 100644
index e4d6c52..0000000
--- a/_docs/cn/products/service-center/registration-discovery.md
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: "服务注册发现"
-lang: cn
-ref: registration-discovery
-permalink: /cn/docs/products/service-center/registration-discovery/
-excerpt: "服务中心注册发现"
-last_modified_at: 2019-11-12T00:50:43-55:00
----
-
-{% include toc %}
-## 服务注册发现
-   在微服务架构中,一个应用由一组职责单一化的服务组成,各个服务被动态的部署到不同的节点。面对这样一组服务,应该如何去管理服务之间的依赖关系呢? 
-   ![1](/assets/images/docs/service-center/service-center-why.png)   
-   服务注册中心的出现正是为了解决这样的问题,它提供的注册机制,允许服务提供者将自己的信息登记到中心;提供的发现机制,供服务消费者从中心查找服务提供者信息。
-   服务注册中心有以下几个优点:  
-   - 1 解耦服务提供者与服务消费者,服务消费者不需要硬编码服务提供者地址;
-   - 2 服务动态发现及可伸缩能力,服务提供者实例的动态增减能通过注册中心动态推送到服务消费者端;
-   - 3 通过注册中心可以动态的监控服务运行质量及服务依赖,为服务提供服务治理能力。
-
-## 注册发现流程
-   ![1](/assets/images/docs/service-center/registration&discovery.png)  
-   如上图,Service-Center中服务发现流程大致有以下几个步骤:
-   - 1 服务提供者向Service-Center注册服务信息
-   - 2 服务提供者发送心跳,维持在Service-Center中的“UP”状态
-   - 3 服务消费者向Service-Center注册服务信息
-   - 4 服务消费者从Service-Center发现服务提供者信息
-   - 5 服务消费者向服务提供者发送请求,并获取通讯结果  
-   
-Service-Center注册发现接口基于RESTful标准实现,不受开发语言限制,接口定义请参考[官方API文档](https://rawcdn.githack.com/ServiceComb/service-center/master/docs/api-docs.html) 
-
-## 注册发现初窥
-以下将通过 curl 命令模拟 Service-center 中的服务注册与发现,以便于了解其流程。
-1. provider 服务注册
-   ```bash
-   $ curl -X POST \
-   http://127.0.0.1:30100/registry/v3/microservices \
-   -H 'content-type: application/json' \
-   -H 'x-domain-name: default' \
-   -d '{
-     "service":
-     {
-       "appId": "default",
-       "serviceName": "ProviderDemoService",
-       "version":"1.0.0"
-     }
-   }'
-   {"serviceId":"fa82132706a6b75a13393d8cf48800f9689b2603"}
-   ```
-2. provider 实例注册  
-根据上一步返回的的 serviceId,注册微服务实例
-   ```bash
-   $ curl -X POST \
-   http://127.0.0.1:30100/registry/v3/microservices/fa82132706a6b75a13393d8cf48800f9689b2603/instances \
-   -H 'content-type: application/json' \
-   -H 'x-domain-name: default' \
-   -d '{
-     "instance": 
-     {
-         "hostName":"provider-demo",
-         "endpoints": [
-             "rest://127.0.0.1:8080"
-         ]
-     }
-   }'
-   {"instanceId":"6e160fb0196e11e9b8b50242ac110005"}
-   ```
-3. consumer 服务注册
-   ```bash
-   $ curl -X POST \
-   http://127.0.0.1:30100/registry/v3/microservices \
-   -H 'content-type: application/json' \
-   -H 'x-domain-name: default' \
-   -d '{
-     "service":
-     {
-       "appId": "default",
-       "serviceName": "ConsumerDemoService",
-       "version":"1.0.0"
-     }
-   }'
-   {"serviceId":"d08d29edbeaa372c5be88407aa9adb00b4cb6099"}
-   ```
-4. 服务发现  
-根据 provider 服务名称和版本规则、以及 consumer 服务 ID 进行 provider 服务实例发现
-   ```bash
-   $ curl -X GET \
-   'http://127.0.0.1:30100/registry/v3/instances?appId=default&serviceName=ProviderDemoService&version=latest' \
-   -H 'content-type: application/json' \
-   -H 'x-consumerid: d08d29edbeaa372c5be88407aa9adb00b4cb6099' \
-   -H 'x-domain-name: default'
-   {
-     "instances": [
-       {
-         "instanceId": "c23da577197111e9b8b50242ac110005",
-         "serviceId": "fa82132706a6b75a13393d8cf48800f9689b2603",
-         "endpoints": [
-           "rest://127.0.0.1:8080"
-         ],
-         "hostName": "provider-demo",
-         "status": "UP",
-         "healthCheck": {
-           "mode": "push",
-           "interval": 30,
-           "times": 3
-         },
-         "timestamp": "1547631199",
-         "modTimestamp": "1547631199",
-         "version": "1.0.0"
-       }
-     ]
-   }
-   ```
diff --git a/_docs/cn/products/syncer/multi-servicecenters.md b/_docs/cn/products/syncer/multi-servicecenters.md
deleted file mode 100644
index b2b9a11..0000000
--- a/_docs/cn/products/syncer/multi-servicecenters.md
+++ /dev/null
@@ -1,239 +0,0 @@
----
-title: "异构服务中心通讯"
-lang: cn
-ref: multi-servicecenters
-permalink: /cn/docs/products/syncer/multi-servicecenters/
-excerpt: "了解如何使用异构、多服务中心通讯工具"
-last_modified_at: 2019-11-12T00:50:43-55:00
----
-
-{% include toc %}
-## ServiceCenter和Eureka异构服务中心通讯
-
-本案例模拟了异构服务中心之间的通讯场景,包括以下四个部分:  
-- EurekaServer: Eureka服务中心  
-- AccountServer:注册到Eureka的账号服务  
-- Servicecomb-ServiceCenter:Servicecomb-ServiceCenter服务中心  
-- HelloServer:注册到Servicecomb-ServiceCenter,需要使用AccountServer的服务  
-
-在传统的环境中,不同服务中心之间的实例是不能互相发现并访问的。当我们使用Syncer后,这将很容易实现。如下图:  
-![image](/assets/images/docs/syncer/multi-servicecenters.png)   
-
-### 运行环境
-   1. 2台linux机器: (假设为:10.0.0.10 和 10.0.0.11)
-   2. [JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
-   3. [Maven 3.x](https://maven.apache.org/install.html)
-   4. [Go 1.11.4](https://golang.google.cn/dl/)
-  
-### 运行前的准备:
-1. [安装 ServiceCenter发布包(>=1.3.0)](/cn/docs/products/service-center/install/) 
-```bash
-$ project_dir=`pwd`
-$ tar -zxvf  apache-servicecomb-service-center-1.3.0-linux-amd64.tar.gz
-```
-2. 下载[样例源码](https://github.com/apache/servicecomb-service-center/tree/master/syncer/samples/multi-servicecenters)
-```bash
-git clone https://github.com/apache/servicecomb-service-center.git
-cd ${project_dir}/servicecomb-service-center/syncer
-```
-
-### 步骤1:启动Eureka环境和服务
-机器: 10.0.0.10  
-#### 1. 编译项目
-```bash
-# 编译 EurekaServer 和 AccountServer
-$ cd samples/multi-servicecenters/eureka
-$ mvn clean install
-```
-#### 2. 启动EurekaServer:  
-- 修改启动配置
-   文件位置:${project_dir}/servicecomb-service-center/syncer/samples/multi-servicecenters/eureka/eureka-server/src/main/resources/application.yaml
-```yml
-spring:
-  application:
-    name: eureka-server
-server:
-  port : 8761
-#  servlet:
-#    context-path: /eureka
-eureka:
-  instance:
-    hostname : 10.0.0.10
-  client:
-    registerWithEureka : false
-    fetchRegistry : false
-    serviceUrl:
-      defaultZone : http://${eureka.instance.hostname}:${server.port}/eureka/
-management:
-  endpoints:
-    web:
-      exposure:
-        include: "*"
-```
-
-- 启动服务
-```bash
-# 启动 EurekaServer
-$ cd ${project_dir}/servicecomb-service-center/syncer/samples/multi-servicecenters/eureka/eureka-server/
-$ nohup mvn spring-boot:run & >> eureka-server.log 2>&1 &
-``` 
-   浏览器打开http://10.0.0.10:8761,若出现如下页面,则启动成功  
-   ![image](/assets/images/docs/syncer/eureka-server-success.jpg)
-
-#### 3. 启动AccountServer
-- 修改启动配置  
-   文件位置:${project_dir}/servicecomb-service-center/syncer/samples/multi-servicecenters/eureka/account-server/src/main/resources/application.yaml
-```yml
-spring:
-  application:
-    name: account-server
-server:
-  port: 8090
-eureka:
-  instance:
-    hostname: 10.0.0.10
-  client:
-    service-url:
-      defaultZone: http://${eureka.instance.hostname}:8761/eureka/
-management:
-  endpoints:
-    web:
-      exposure:
-        include: "*"
-```  
-
-- 启动服务  
-```bash
-#启动 AccountServer
-$ cd ${project_dir}/servicecomb-service-center/syncer/samples/multi-servicecenters/eureka/account-server
-$ mvn spring-boot:run
-# 出现如下字样则为成功
-2019-09-19 17:20:35.534  INFO 20890 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8090 (http) with context path ''
-2019-09-19 17:20:35.548  INFO 20890 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8090
-2019-09-19 17:20:35.551  INFO 20890 --- [           main] o.a.s.s.account.AccountApplication       : Started AccountApplication in 3.92 seconds (JVM running for 6.754)
-2019-09-19 17:20:35.617  INFO 20890 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_ACCOUNT-SERVER/10.0.0.10:account-server:8090 - registration status: 204
-``` 
-
-   此时打开http://10.0.0.10:8761,可以看到AccountServer已经注册成功  
-   ![image](/assets/images/docs/syncer/eureka-account-server-success.jpg)
-
-#### 4. 启动Syncer
-```bash
-$ cd ${project_dir}/apache-servicecomb-service-center-1.3.0-linux-amd64/
-$ ./syncer daemon --sc-addr http://10.0.0.10:8761/eureka --bind-addr 10.0.0.10:30190 --rpc-addr 10.0.0.10:30191 --sc-plugin=eureka  --node eureka
-#出现如下字样则为成功
-2019-09-19T17:28:28.809+0800  INFO  etcd/agent.go:55  start etcd success
-2019-09-19T17:28:28.809+0800  INFO  grpc/server.go:94 start grpc success
-2019-09-19T17:28:28.809+0800  DEBUG server/handler.go:39  is leader: true
-2019-09-19T17:28:28.809+0800  DEBUG server/handler.go:43  Handle Tick
-```
-
-### 步骤2:启动Servicecenter环境和服务  
-机器: 10.0.0.11   
-#### 1. 编译项目  
-```bash
-$ cd ${project_dir}/servicecomb-service-center/syncer/samples/multi-servicecenters/servicecenter/hello-server/
-$ GO111MODULE=on go build
-```   
-
-#### 2. 启动Servicecenter  
-- 修改启动配置:  
-   文件位置:${project_dir}/apache-servicecomb-service-center-1.3.0-linux-amd64/conf/app.conf  
-```bash
-frontend_host_ip = 10.0.0.11
-frontend_host_port = 30103
-###################################################################
-# sever options
-###################################################################
-# if you want to listen at ipv6 address, then set the httpaddr value like:
-# httpaddr = 2400:A480:AAAA:200::159        (global scope)
-# httpaddr = fe80::f816:3eff:fe17:c38b%eth0 (link-local scope)
-httpaddr = 10.0.0.11
-httpport = 30100
-# ...以下省略...
-```
-
-- 启动 ServiceCenter 和 Frontend
-```bash
-$ cd ${project_dir}/apache-servicecomb-service-center-1.3.0-linux-amd64
-# 启动 ServiceCenter
-$ ./start-service-center.sh
-# 启动 前端页面 Frontend
-$ ./start-frontend.sh
-```
-   浏览器打开http://10.0.0.11:30103,若出现如下页面,则启动成功  
-   ![image](/assets/images/docs/syncer/service-center-server-success.jpg)  
-
-#### 3. 启动HelloServer
-- 修改启动配置:  
-   文件位置:${project_dir}/servicecomb-service-center/syncer/samples/multi-servicecenters/servicecenter/hello-server/conf/microservice.yaml  
-```yml
-service: # 微服务配置
-  appId: eureka # eureka 中同步的实例appID均为:eureka
-  name: hello-server
-  version: 0.0.1
-  instance: # 实例信息
-    protocol: rest
-    listenAddress: 10.0.0.11:8091 #实例监听地址
-provider: # 服务端信息
-  appId: eureka
-  name: account-server
-  version: 0.0.1
-registry:
-  address: http://10.0.0.11:30100
-```  
-
-- 启动服务  
-```bash
-$ cd ${project_dir}/servicecomb-service-center/syncer/samples/multi-servicecenters/servicecenter/hello-server
-$ ./hello-server
-2019-09-19T18:37:50.645+0800	DEBUG	servicecenter/servicecenter.go:163	send heartbeat success
-2019-09-19T18:37:50.645+0800	WARN	servicecenter/servicecenter.go:85	discovery provider failed, appID = eureka, name = account-server, version = 0.0.1
-2019-09-19T18:37:50.645+0800	INFO	servicecenter/servicecenter.go:87	waiting for retry
-```  
-
-   此时打开http://10.0.0.11:30103,可以看到HelloServer已经注册成功  
-   ![image](/assets/images/docs/syncer/service-center-hello-server-success.jpg)  
-   但由于无法发现属于Eureka服务中心的AccountServer实例,HelloServer处于重试状态  
-   (==注:重试次数为3次,每次间隔30秒,所以我们需要在90秒内完成后面的操作==)  
-
-#### 4.启动Syncer  
-```bash
-$ cd ${project_dir}/apache-servicecomb-service-center-1.3.0-linux-amd64/
-$ ./syncer daemon --sc-addr http://10.0.0.11:30100 --bind-addr 10.0.0.11:30190 --rpc-addr 10.0.0.11:30191 --sc-plugin=servicecenter --join-addr 10.0.0.10:30190 --node servicecenter
-
-#出现以下内容则为Syncer成功启动,并同步了对方的实例
-2019-09-19T18:44:35.536+0800	DEBUG	server/handler.go:62	is leader: true
-2019-09-19T18:44:35.536+0800	DEBUG	server/handler.go:79	Receive serf user event
-2019-09-19T18:44:35.536+0800	DEBUG	serf/agent.go:130	member = servicecenter, groupName = 0204d59328090c2f4449a088d4e0f1d8
-2019-09-19T18:44:35.536+0800	DEBUG	serf/agent.go:130	member = eureka, groupName = 34f53a9520a11c01f02f58f733e856b3
-2019-09-19T18:44:35.536+0800	DEBUG	server/handler.go:97	Going to pull data from eureka 10.0.0.10:30191
-2019-09-19T18:44:35.536+0800	INFO	grpc/client.go:76	Create new grpc connection to 10.0.0.10:30191
-2019-09-19T18:44:35.538+0800	DEBUG	servicecenter/servicecenter.go:87	create service success orgServiceID= account-server, curServiceID = 80784229255ec96d90353e3c041bdf3586fdbbae
-2019-09-19T18:44:35.538+0800	DEBUG	servicecenter/servicecenter.go:90	trying to do registration of instance, instanceID = 10.0.0.10:account-server:8090
-2019-09-19T18:44:35.540+0800	DEBUG	servicecenter/sync.go:63	Registered instance successful, instanceID = 78bca3e2daca11e99638fa163eca30e0
-```  
-
-### 步骤3:结果验证
-1. 此时的HelloServer获取实例成功,并调用了AccountServer的CheckHealth接口  
-   ![image](/assets/images/docs/syncer/hello-server-discovery-success.jpg)  
-
-2. 分别打开Euraka和ServiceCenter的网页,两个服务中心里均包含了所有的实例信息  
-   ![image](/assets/images/docs/syncer/eureka-server-has-all.jpg)  
-   ![image](/assets/images/docs/syncer/service-center-server-has-all.jpg)  
-3. curl命令调用HelloServer的Login接口  
-```bash
-$ curl -X POST \
-http://192.168.88.75:8091/login \
--H 'Content-Type: application/json' \
--d '{
-  "user":"Jack",
-  "password":"123456"
-}'
-welcome Jack
-```  
-HelloServer与AccountServer分别会打印如下的信息  
-AccountServer  
-   ![image](/assets/images/docs/syncer/account-server-reply.jpg)   
-HelloServer  
-   ![image](/assets/images/docs/syncer/hello-server-result.jpg)  
diff --git a/_docs/cn/products/syncer/quick-start.md b/_docs/cn/products/syncer/quick-start.md
deleted file mode 100644
index a908287..0000000
--- a/_docs/cn/products/syncer/quick-start.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: "Syncer 快速入门"
-lang: cn
-ref: quick-start
-permalink: /cn/docs/products/syncer/quick-start/
-excerpt: "了解如何使用异构、多服务中心通讯工具"
-last_modified_at: 2019-11-12T00:50:43-55:00
----
-
-{% include toc %}
-## 异构、多服务中心通讯 Syncer
-Syncer是一个多服务中心的同步工具,专为大型微服务架构设计,用于在网络互通的情况下,不同技术栈服务中心、跨区域的实例同步,未来将对跨网络、跨云等场景提供支持。
-
-## 快速入门 
-1. 获取并启动服务中心
-
-以Service-center为例,详细参见:[ServiceCenter 环境安装](/cn/docs/products/service-center/install/)  
-
-2. 下载并解压[ServiceCenter发布包(>=1.3.0)](/cn/release/service-center-downloads/)  
-```bash
-# 解压tar包
-$ tar -zxvf  apache-servicecomb-service-center-1.3.0-linux-amd64.tar.gz
-$ cd apache-servicecomb-service-center-1.3.0-linux-amd64/
-```
-
-3. 启动ServiceCenter Syncer
-### 命令行参数说明:
-- node:         syncer名称,集群内成员名必须唯一。
-- sc-addr:      服务注册中心地址。支持集群模式,多个地址间使用英文半角","隔开。    
-- bind-addr:    Gossip协议通讯地址,用于Syncer间的消息传递、集群管理   
-- rpc-addr:     RPC数据传输地址,用于Syncer间的数据同步  
-- join-addr:    指向目标Syncer的BindAddr,当前Syncer将通过该地址加入网络   
-- mode:         运行模式配置,当前支持两种模式,单实例模式“single”和集群模式“cluster”, cluster模式下每个syncer拥有三个实例
-- cluster-name: 当mode为”cluster“时,Syncer集群的名字
-- cluster-port: 当mode为“cluster”时,Syncer三个实例之间一致性协商的端口
-
-
-假设有2个服务中心,每个服务中心都有一个用于微服务发现和注册的服务中心集群,如下所示:   
-
-|     Service center     | Local address |
-| :--------------------: | :-----------: |
-| http://10.0.0.10:30100 |   10.0.0.10   |
-| http://10.0.0.11:30100 |   10.0.0.11   |
-
-### 单例模式(Single Mode)
-
-分别在两个机器上启动两个syncer来完成这两个服务中心之间的微服务数据同步
-
-- 在10.0.0.10的机器上执行以下命令启动Syncer
-
-```bash
-$ ./syncer daemon --sc-addr http://10.0.0.10:30100 --bind-addr 10.0.0.10:30190 --rpc-addr 10.0.0.10:30191
-```
-
-- 在10.0.0.11的机器上执行以下命令启动Syncer,并加入10.0.0.10的gossip池
-
-```bash
-$ ./syncer daemon --sc-addr http://10.0.0.11:30100 --bind-addr 10.0.0.11:30190 --rpc-addr 10.0.0.11:30191 --join-addr 10.0.0.10:30191
-```
-
-### 集群模式(Cluster Mode)
-
-分别在两个机器上启动两个syncer集群来完成这两个服务中心之间的微服务数据同步
-
-- 在10.0.0.10的机器上启动syncer集群
-
-```bash
-$ ./syncer daemon --sc-addr http://10.0.0.10:30100 --bind-addr 10.0.0.10:30190 --rpc-addr 10.0.0.10:30191 --mode cluster --node syncer011 --cluster-port 30201 --join-addr 10.0.0.10:30190
-$ ./syncer daemon --sc-addr http://10.0.0.10:30100 --bind-addr 10.0.0.10:30290 --rpc-addr 10.0.0.10:30291 --mode cluster --node syncer012 --cluster-port 30202 --join-addr 10.0.0.10:30190
-$ ./syncer daemon --sc-addr http://10.0.0.10:30100 --bind-addr 10.0.0.10:30390 --rpc-addr 10.0.0.10:30391 --mode cluster --node syncer013 --cluster-port 30203 --join-addr 10.0.0.10:30190
-```
-
-- 在10.0.0.11机器上启动syncer集群
-
-```bash
-$ ./syncer daemon --sc-addr http://10.0.0.11:30100 --bind-addr 10.0.0.11:30190 --rpc-addr 10.0.0.11:30191 --mode cluster --node syncer021 --cluster-port 30201 --join-addr 10.0.0.10:30190
-$ ./syncer daemon --sc-addr http://10.0.0.11:30100 --bind-addr 10.0.0.11:30290 --rpc-addr 10.0.0.11:30291 --mode cluster --node syncer022 --cluster-port 30202 --join-addr 10.0.0.10:30190
-$ ./syncer daemon --sc-addr http://10.0.0.11:30100 --bind-addr 10.0.0.11:30390 --rpc-addr 10.0.0.11:30391 --mode cluster --node syncer023 --cluster-port 30203 --join-addr 10.0.0.10:30190
-```
-
-### 结果验证  
-将微服务实例注册到其中一个ServiceCener后30秒,可以从每个ServiceCenter获取有关该实例的信息。
diff --git a/_docs/cn/products/toolkit/oas-validator.md b/_docs/cn/products/toolkit/oas-validator.md
deleted file mode 100644
index 4d27c5a..0000000
--- a/_docs/cn/products/toolkit/oas-validator.md
+++ /dev/null
@@ -1,437 +0,0 @@
----
-title: "OpenAPI V3 Spec校验工具"
-lang: cn
-ref: oas-validator
-permalink: /cn/docs/products/toolkit/oas-validator/
-excerpt: "了解如何使用OpenAPI V3 Spec校验工具"
-last_modified_at: 2019-11-12T00:50:43-55:00
----
-
-{% include toc %}
-## 项目结构
-
-* oas-validator-core,核心API及骨架实现
-* oas-validator-core-spring,骨架的Spring Boot Starter
-* oas-validator-test,核心API的测试帮助类
-* oas-validator-compliance,合规性校验实现
-* oas-validator-compliance-spring,合规性校验的Spring Boot Starter
-* oas-validator-compatibility,兼容性校验实现
-* oas-validator-compatibility-spring,兼容性校验实现的Spring Boot Starter
-* oas-validator-web,校验工具的操作UI
-
-## 合规性校验
-
-OAS必须符合[OAS 3.0.2规范][openapi-3.0.2](比如属性的名称、REQUIED要求)。除此之外则是我们自己的定义的合规性检查。
-
-### 一些字符串匹配规则
-
-* <a name="lower-camel-case"></a>Lower Camel Case:首字母小写的驼峰,对应的正则`^[a-z]+((\d)|([A-Z0-9][a-z0-9]+))*([A-Z])?$`
-* <a name="upper-camel-case"></a>Upper Camel Case:首字母大写的驼峰,对应的正则`^[A-Z]([a-z0-9]+[A-Z]?)*$`
-* <a name="upper-hyphen-case"></a>Upper Hyphen Case:单词首字母大写,多个单词用`-`连接,比如`Content-Type`、`Accept`、`X-Rate-Limit-Limit`。对应的正则:`^([A-Z][a-z0-9]*-)*([A-Z][a-z0-9]*)$`
-
-### OpenAPI Object [doc][spec-openapi]
-
-<a name="openapi-compliance"></a>
-
-* `openapi`属性必须为3.0.x且>=3.0.2
-* `info`属性见[Info Object合规性检查](#info-compliance)
-* `paths`属性,必须提供见[Paths Object合规性检查](#paths-compliance)
-* `components`属性见[Components Object合规性检查](#components-compliance)
-* `tags`属性,至少提供一个[Tag Object][spec-tag]
-  * 见[Tag Object合规性检查](#tag-compliance)
-* `security`属性,不允许提供
-
-### Info Object [doc][spec-info]
-
-<a name="info-compliance"></a>
-
-* `description`属性,必须填写
-
-### Tag Object [doc][spec-tag]
-
-<a name="tag-compliance"></a>
-
-- `name`属性,必须是[Upper Camel Case](#upper-camel-case)
-- `description`属性,必须填写
-- 不得存在[Operation Object][spec-operation]没有引用过的tag
-
-### Paths Object [doc][spec-paths]
-
-<a name="paths-compliance"></a>
-
-* path必须是[Lower Camel Case](#lower-camel-case),包括[Path Templating][spec-path-templating]中的变量
-  * 见[Path Item Object合规性检查](#path-item-compliance)
-
-### Path Item Object [doc][spec-path-item]
-
-<a name="path-item-compliance"></a>
-
-* `get/post/put/delete/...`属性,见[Operation Object合规性检查](operation-compliance)
-* `parameters`属性,见[Parameter Object合规性检查](#parameter-compliance)
-
-### Operation Object [doc][spec-operation]
-
-<a name="operation-compliance"></a>
-
-* `summary`属性、必须填写
-* `operationId`属性,且[Lower Camel Case](#lower-camel-case)
-* `parameters`属性,见[Parameter Object合规性检查](#parameter-compliance)
-* `requestBody`属性,见[Request Body Object合规性检查](#request-body-compliance)
-* `responses`属性,见[Responses Object合规性检查](#responses-compliance)
-* `tags`属性,且只能写一个tag,且必须在[OpenAPI Object][spec-openapi] 的 `tags`属性里所定义的范围内
-  
-* `servers`属性,不允许提供
-
-### Parameter Object [doc][spec-parameter]
-
-<a name="parameter-compliance"></a>
-
-* `description`属性,必须填写
-* `name`属性
-  * 如果`in`为path、query、cookie,则那么必须是[Lower Camel Case](#lower-camel-case)
-  * 如果`in`为header,则那么必须是[Upper Hyphen Case](#upper-hyphen-case)
-* `schema`属性,见[Schema Object合规性检查](#schema-compliance)
-* `content`属性,见[Media Type Object合规性检查](#media-type-compliance)
-
-### Request Body Object [doc][spec-request-body]
-
-<a name="request-body-compliance"></a>
-
-* `description`属性,必须填写
-* `content`属性,见[Media Type Object合规性检查](#media-type-compliance)
-
-### Media Type Object [doc][spec-media-type]
-
-<a name="media-type-compliance"></a>
-
-* `schema`属性,必须填写。见[Schema Object合规性检查](#schema-compliance)
-* `encoding`属性,见[Encoding Object合规性检查](#encoding-compliance)
-
-### Responses Object [doc][spec-responses]
-
-<a name="responses-compliance"></a>
-
-* 见[Response Object合规性检查](#response-compliance)
-
-### Response Object [doc][spec-response]
-
-<a name="response-compliance"></a>
-
-* `description`属性,必须填写
-* `headers`属性,name(`headers`的key)必须是[Upper Hyphen Case](#upper-hyphen-case)
-  * 见[Header Object合规性检查](#header-compliance)
-* `content`属性,见[Media Type Object合规性检查](#media-type-compliance)
-
-### Schema Object [doc][spec-schema]
-
-<a name="schema-compliance"></a>
-
-* `title`属性,如果上级是[Schema Object][spec-schema]或[Components Object][spec-components],那么必须填写
-* `properties`属性,name(`properties`的key)必须是[Lower Camel Case](#lower-camel-case)
-  * Sub Schema见[Schema Object合规性检查](#schema-compliance)
-
-### Encoding Object [doc][spec-encoding]
-
-<a name="encoding-compliance"></a>
-
-* `headers`属性,name(`headers`的key)必须是[Upper Hyphen Case](#upper-hyphen-case)
-  * 见[Header Object合规性检查](#header-compliance)
-
-### Header Object [doc][spec-header]
-
-<a name="header-compliance"></a>
-
-* `description`属性,必须填写
-* `schema`属性,见[Schema Object合规性检查](#schema-compliance)
-* `content`属性,见[Media Type Object合规性检查](#media-type-compliance)
-
-### Components Object [doc][spec-components]
-
-<a name="components-compliance"></a>
-
-* `schemas`属性,name必须是[Upper Camel Case](#upper-camel-case)
-  * 见[Schema Object合规性检查](#schema-compliance)
-* `responses`属性,name必须是[Upper Camel Case](#upper-camel-case)
-  * 见[Response Object合规性检查](#response-compliance)
-* `parameters`属性,name必须是[Upper Camel Case](#upper-camel-case)
-  * 见[Parameter Object合规性检查](#parameter-compliance)
-* `examples`属性,name必须是[Upper Camel Case](#upper-camel-case)
-* `requestBodies`属性,name必须是[Upper Camel Case](#upper-camel-case)
-  * 见[Request Body合规性检查](#request-body-compliance)
-* `headers`属性,name必须是[Upper Hyphen Case](#upper-hyphen-case)
-  * 见[Header合规性检查](#header-compliance)
-* `links`属性,name必须是[Upper Camel Case](#upper-camel-case)
-* `callbacks`属性,name必须是[Upper Camel Case](#upper-camel-case)
-
-## 兼容性检查
-
-对新旧两个版本的OAS做兼容性检查。
-
-OAS可以使用[Reference Object][spec-reference]来描述Spec,两个不同的OAS会出现描述不同但语义相同的情况。比如下面的旧OAS没有使用[Reference Object][spec-reference],而新OAS则使用了的情况:
-
-旧OAS
-
-```yaml
-openapi: "3.0.0"
-info:
-  version: 1.0.0
-  title: Swagger Petstore
-  license:
-    name: MIT
-servers:
-  - url: http://petstore.swagger.io/v1
-paths:
-  /pets:
-    post:
-      summary: List all pets
-      operationId: listPets
-      requestBody:
-        content:
-          application/json:
-            schema:
-              type: array
-              items:
-                type: object
-                properties:
-                  Foo:
-                    type: string
-      responses:
-        '200':
-          description: A paged array of pets
-```
-
-新OAS
-
-```yaml
-paths:
-  /pets:
-    post:
-      operationId: listPets
-      requestBody:
-        content:
-          application/json: 
-            schema:
-              $ref: '#/components/schemas/Foo'
-      responses:
-        '200':
-          description: A paged array of pets
-components:
-  schemas:
-    Foo:
-      type: array
-      items:
-        type: object
-        properties:
-          Foo:
-            type: string
-```
-
-因此在检查兼容性的时候会将新旧OAS的[Reference Object][spec-reference]做解析,然后再检查,下面是一段[swagger-parser][swagger-parser]的例子:
-
-```java
-OpenAPIV3Parser parser = new OpenAPIV3Parser();
-
-ParseOptions parseOptions = new ParseOptions();
-parseOptions.setResolve(true);
-parseOptions.setResolveCombinators(true);
-parseOptions.setResolveFully(true);
-parseOptions.setFlatten(false);
-
-SwaggerParseResult parseResult = parser.readContents(content, null, parseOptions);
-```
-
-因此,检查下来如果发现不兼容,那么所报告的位置会和原文档有所不同。
-
-### Paths Object [doc][spec-paths]
-
-<a name="paths-compatibility"></a>
-
-* 新OAS必须包含旧OAS的所有的`path`,如果`path`使用了[Path Templating][spec-path-templating],只要变量名发生了变化,那么即使语义上相同也会被认为不同,比如`/pets/{foo}`和`/pets/{bar}`会被认定为不同。
-  * 见[Path Item Object兼容性检查](#path-item-compatibility)
-
-### Path Item Object [doc][spec-path-item]
-
-<a name="path-item-compatibility"></a>
-
-* 新OAS必须包含旧OAS的所有的get/put/post/delete/...[Operation Object][spec-operation]
-
-### Operation Object [doc][spec-operation]
-
-<a name="operation-compatibility"></a>
-
-* `operationId`属性,新旧OAS必须完全一致。
-* `parameters`属性,对它检查须在考虑到[Path Item Object parameters属性][spec-path-item-parameters]的情况下进行:
-  * 新OAS可以新增[Parameter Object][spec-parameter],但是新增的[Parameter Object][spec-parameter]的`required`属性必须为`false`
-  * 新OAS可以删除[Parameter Object][spec-parameter]
-  * 针对单个[Parameter Object][spec-parameter]的修改的检查见[Parameter Object兼容性检查](#parameter-compatibility)(在同一个[Operation Object][spec-operation]下[Parameter Object][spec-parameter]依靠`name`和`in`两个属性作为ID)。
-* `requestBody`属性,见[Request Body Object兼容性检查](#request-body-compatibility)
-* `responses`属性,见[Responses Object兼容性检查](#responses-compatibility)
-
-### Parameter Object [doc][spec-parameter]
-
-<a name="parameter-compatibility"></a>
-
-* `required`属性,只允许`true(旧) -> false(新)`
-* `allowEmptyValue`属性,只允许`false(旧) -> true(新)`的变化
-* `style`属性,新旧OAS必须保持一致
-* `explode`属性,新旧OAS必须保持一致
-* `allowReserved`属性,只允许`false(旧) -> true(新)`的变化
-* `schema`属性,见[Schema Object兼容性检查](#schema-compatibility)
-* `content`属性,新OAS必须包含旧OAS的所有media type(`content`的key),且不能新增media type
-  * 见[Media Type Object兼容性检查](#media-type-compatibility)
-
-### Request Body Object [doc][spec-request-body]
-
-<a name="request-body-compatibility"></a>
-
-* `content`属性,新OAS必须包含旧OAS的所有media type(`content`的key)
-  * 见[Media Type Object兼容性检查](#media-type-compatibility)
-* `required`属性,只允许`true(旧) -> false(新)`的变化
-
-### Media Type Object [doc][spec-media-type]
-
-<a name="media-type-compatibility"></a>
-
-* `schema`属性,见[Schema Object兼容性检查](#schema-compatibility)
-* `encoding`属性,该属性仅适用于`requestBody`,因此新旧OAS的property name(`encoding`的key)必须完全一致
-  * 见[Encoding Object兼容性检查](#encoding-compatibility)
-
-### Responses Object [doc][spec-responses]
-
-<a name="responses-compatibility"></a>
-
-* `default`属性,如果旧OAS没有定义`default`,那么新OAS也不能定义`default`。
-* `{Http Status Code}`属性,新OAS不允许新增。
-* 见[Response Object兼容性检查](#response-compatibility)
-
-### Response Object [doc][spec-response]
-
-<a name="response-compatibility"></a>
-
-* `headers`属性,新OAS必须包含旧OAS的所有header name(`headers`的key),可以新增header name
-  * [Header Object][spec-header]见[Header Object兼容性检查](#header-compatibility)
-* `content`属性,新OAS必须包含旧OAS的所有media type(`content`的key),可以新增media type
-  - [Media Type Object][spec-media-type]见[Media Type Object兼容性检查](#media-type-compatibility)
-
-### Schema Object [doc][spec-schema]
-
-<a name="schema-compatibility"></a>
-
-OAS中定义,Schema Object可以直接或间接用在:
-
-* 请求类:[Parameter Object][spec-parameter]、[Request Body Object][spec-request-body]、[Header Object][spec-header]
-* 响应类:[Header Object][spec-header]、[Response Object][spec-response]
-
-不同用途的兼容性检查规则有所不同。
-
-### 用做请求时
-
-原则上,当Schema Object用在请求时,只允许从紧到松的变化。
-
-* `type, format`组合所允许的变化范围
-
-| 旧(type,format)  | 新(type,format)                                              |
-| ---------------- | ------------------------------------------------------------ |
-| integer, null    | integer, int64<br />number, double<br />number, null         |
-| integer, int32   | integer, int64<br />integer, null<br />number, float<br />number, double<br />number, null |
-| integer, int64   | integer, null<br />number, double<br />number, null          |
-| number, null     | number, double                                               |
-| number, float    | number, null<br />number, double                             |
-| number, double   | number, null                                                 |
-| string, null     | string, password                                             |
-| string, password | string, null                                                 |
-
-* `allOf`、`oneOf`、`anyOf`属性,在combine之后再做检查
-* `multipleOf`属性,如果旧OAS为null。新OAS必须==旧OAS或者新OAS是旧OAS的因子,比如6(旧)->3(新)
-* `maximum`、`maxLength`、`maxItems`、`maxProperties`,如果旧OAS为null,那么新OAS也必须是null。其他情况,新OAS必须>=旧OAS。
-* `minimum`、`minLenght`、`minItems`、`minProperties`,如果旧OAS为null,那么新OAS也必须是null。其他情况,新OAS必须<=旧OAS。
-* `exclusiveMaximum`、`exclusiveMinimum`属性,仅允许`true(旧)->false(新)`的变化
-* `uniqueItems`属性,只允许`true(旧)->false(新)`的变化。
-* `required`属性,新OAS必须==旧OAS,或者新OAS是旧OAS的子集。
-* `enum`属性,新OAS必须==旧OAS,或者新OAS是旧OAS的超集。
-* `properties`属性,新OAS可以新增property name(`properties`的key)或者减少property name。
-* `nullable`属性,只允许`false(旧)->true(新)`的变化。
-* `discriminator`属性,新旧OAS必须完全一致。
-* `xml`属性,新旧OAS必须完全一致。
-* `readOnly`、`writeOnly`,新旧OAS必须完全一致。
-
-### 用做响应时
-
-原则上,当Schema Object用在响应时,只允许从松到紧的变化。
-
-* `type, format`组合所允许的变化范围
-
-| 旧(type,format)  | 新(type,format)                    |
-| ---------------- | ---------------------------------- |
-| integer, null    | integer, int64<br />integer, int32 |
-| integer, int64   | integer, null<br />interger, int32 |
-| number, null     | number, double<br />number, float  |
-| number, double   | number, null<br />number, float    |
-| string, null     | string, password                   |
-| string, password | string, null                       |
-
-* `allOf`、`oneOf`、`anyOf`属性,在combine之后再做检查
-* `multipleOf`属性,如果旧OAS为null。新OAS必须==旧OAS或者新OAS是旧OAS的倍数,比如3(旧)->6(新)
-* `maximum`、`maxLength`、`maxItems`、`maxProperties`,如果旧OAS为null,那么新OAS也必须是null。其他情况,新OAS必须<=旧OAS。
-* `minimum`、`minLenght`、`minItems`、`minProperties`,如果旧OAS为null,那么新OAS也必须是null。其他情况,新OAS必须>=旧OAS。
-* `exclusiveMaximum`、`exclusiveMinimum`属性,仅允许`false(旧)->true(新)`的变化
-* `uniqueItems`属性,只允许`false(旧)->true(新)`的变化。
-* `required`属性,新OAS必须==旧OAS或者,新OAS是旧OAS的超集。
-* `enum`属性,新OAS必须==旧OAS,或者新OAS是旧OAS的子集。
-* `properties`属性,新OAS可以新增property name(`properties`的key)或者减少property name。
-* `nullable`属性,只允许`true(旧)->false(新)`的变化。
-* `discriminator`属性,新旧OAS必须完全一致。
-* `xml`属性,新旧OAS必须完全一致。
-* `readOnly`、`writeOnly`,新旧OAS必须完全一致。
-
-### Encoding Object [doc][spec-encoding]
-
-<a name="encoding-compatibility"></a>
-
-PS. Encoding Object仅针对Request Body Object有用
-
-* `contentType`属性,新旧OAS必须保持一致
-* `headers`属性,新OAS不能新增旧OAS的header name(`headers`的key),但是可以删除header name
-  * [Header Object][spec-header]见[Header Object兼容性检查](#header-compatibility)
-* `style`属性,新旧OAS必须保持一致
-* `explode`属性,新旧OAS必须保持一致
-* `allowReserved`属性,只允许`false(旧) -> true(新)`的变化
-
-### Header Object [doc][spec-header]
-
-<a name="header-compatibility"></a>
-
-- `schema`属性,见[Schema Object兼容性检查](#schema-compatibility)
-
-### Components Object [doc][spec-components]
-
-<a name="components-compatibility"></a>
-
-[Components Object][spec-components]定义的都是可复用OAS Object,而在检查兼容性的时候所有`$ref`都已被解析了,因此不需要对[Components Object][spec-components]的属性做兼容性检查。
-
-
-[spec-operation]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#operationObject
-[openapi-3.0.2]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md
-[spec-openapi]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#openapi-object
-[spec-server]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#serverObject
-[spec-info]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#infoObject
-[spec-paths]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#paths-object
-[spec-path-item]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#pathItemObject
-[spec-parameter]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#parameterObject
-[spec-request-body]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#requestBodyObject
-[spec-security-scheme]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#securitySchemeObject
-[spec-components]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#components-object
-[spec-tag]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject
-[spec-schema]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#schemaObject
-
-[spec-media-type]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#media-type-object
-[spec-response]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#response-object
-[spec-path-templating]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#path-templating
-[spec-parameterIn]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#parameterIn
-[spec-encoding]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#encodingObject
-[spec-header]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#header-object
-[spec-info]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#infoObject
-[spec-reference]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#reference-object
-[swagger-parser]: https://github.com/swagger-api/swagger-parser
-[spec-path-item-parameters]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#user-content-pathitemparameters
-[spec-responses]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#responsesObject
diff --git a/_docs/cn/products/toolkit/quick-start.md b/_docs/cn/products/toolkit/quick-start.md
deleted file mode 100644
index 5c299a0..0000000
--- a/_docs/cn/products/toolkit/quick-start.md
+++ /dev/null
@@ -1,242 +0,0 @@
----
-title: "Toolkit 快速入门"
-lang: cn
-ref: quick-start
-permalink: /cn/docs/products/toolkit/quick-start/
-excerpt: "了解如何使用一键式微服务开发工具"
-last_modified_at: 2019-11-12T00:50:43-55:00
----
-
-{% include toc %}
-## 一键式微服务开发工具 Toolkit
-Apache ServiceComb Toolkit 是基于契约的微服务开发工具套件。提供契约、代码、文档相互转换及校验的能力,帮助用户一键式快速构建基于流行微服务框架和流行编程模型的微服务工程,降低微服务入门成本,使用户聚焦业务开发,提升遗留系统重构、开发效率。  
- 
-## 快速入门
-### 1 从源码构建工具和插件
-构建环境要求:
-
-* [Java 8](http://java.oracle.com)
-
-* [Apache maven 3.5.0 or greater](http://maven.apache.org/)
-
-```shell
-# 从github获取toolkit最新源码
-$ git clone https://github.com/apache/servicecomb-toolkit.git
-$ cd toolkit
-
-# 构建打包
-$ mvn clean install
-```
-
-
-### 2 使用toolkit-maven-plugin插件
-#### 2.1 配置
-在maven项目的pom文件中配置
-```xml
-<plugin>
-    <groupId>org.apache.servicecomb.toolkit</groupId>
-    <artifactId>toolkit-maven-plugin</artifactId>
-    <version>0.2.0-SNAPSHOT</version>
-    <configuration>
-        <!-- 输入源。设置为 code,表示解析当前代码;设置为 contract,表示解析指定目录的契约文件。不设置则默认为 code -->
-        <sourceType>code</sourceType>
-        <!-- 生成契约文件的类型,不设置则默认为 yaml -->
-        <contractFileType>yaml</contractFileType>
-        <!-- 生成文档的类型,不设置则默认为 html -->
-        <documentType>html</documentType>
-        <!-- 生成契约文件、文档的根目录,不设置则默认为运行命令所在目录下的 target 目录,生成的微服务工程在 project 目录,契约文件在 contract 目录,文档在 document 目录 -->
-        <outputDirectory>./target</outputDirectory>
-        <!-- 被解析的契约文件路径,在 sourceType 设置为 contract 时有效,且必须设置 -->
-        <contractLocation>./contract</contractLocation>
-        <!-- 被校验的契约文件目录,在 sourceType 设置为 contract 时有效,且必须设置 -->
-        <sourceContractPath>./target/contract</sourceContractPath>
-        <!-- 样本契约文件目录,必须设置 -->
-        <destinationContractPath>./contract</destinationContractPath>
-        <!-- 生成的微服务代码工程配置 -->
-        <service>
-            <!-- 微服务的类型,可生成 provider/consumer/all,默认值为 all -->
-            <serviceType>all</serviceType>
-            <!-- 微服务的 groupid,用户可选,默认值为 domain.orgnization.project -->
-            <groupId>domain.orgnization.project</groupId>
-            <!-- 微服务的 artifactId,用户可选,默认值为 sample -->
-            <artifactId>sample</artifactId>
-            <!-- 微服务的 artifactVersion,用户可选,默认值为 0.1.0-SNAPSHOT -->
-            <artifactVersion>0.1.0-SNAPSHOT</artifactVersion>
-            <!-- 微服务的 packageName,用户可选,默认值为 domain.orgnization.project.sample -->
-            <packageName>domain.orgnization.project.sample</packageName>
-            <!-- 微服务框架,用户可选。设置为 ServiceComb,生成ServiceComb风格的微服务项目;设置为 SpringCloud,生成SpringCloud风格的微服务项目。默认值为 ServiceComb -->
-            <microServiceFramework>ServiceComb</microServiceFramework>
-            <!-- 服务提供者的服务id。仅包含服务消费者的场景(serviceType=consumer)必须设置该值 -->            
-            <providerServiceId>servicecomb-provider</providerServiceId>
-            <!-- 服务id,默认值为artifactId的值 -->
-            <serviceId>servicecomb-consumer</serviceId>
-        </service>
-    </configuration>
-</plugin>
-```
-
-#### 2.2 命令
-```shell
-# 生成契约,文档和微服务工程
-mvn toolkit:generate
-
-# 校验代码和契约一致性
-mvn toolkit:verify
-```
-
-#### 2.2.1 解析代码,生成微服务代码工程、OpenAPI规范契约、文档
-
-配置项(不显式设置 `<configuration>` 则使用默认配置)
-例:
-```xml
-<plugin>
-    <groupId>org.apache.servicecomb.toolkit</groupId>
-    <artifactId>toolkit-maven-plugin</artifactId>
-    <version>0.2.0-SNAPSHOT</version>
-    <configuration>
-        <!-- 输入源。设置为 code,表示解析当前代码;设置为 contract,表示解析指定目录的契约文件。不设置则默认为 code -->
-        <sourceType>code</sourceType>
-        <!-- 生成契约文件、文档的根目录,不设置则默认为运行命令所在目录下的 target 目录,生成的微服务工程在 project 目录,契约文件在 contract 目录,文档在 document 目录 -->
-        <outputDirectory>./target</outputDirectory>
-        <!-- 生成的微服务代码工程配置 -->
-        <service>
-            <!-- 微服务的类型,可生成 provider/consumer/all,默认值为 all -->
-            <serviceType>all</serviceType>
-        </service>
-    </configuration>
-</plugin>
-```
-
-运行命令
-```shell
-mvn toolkit:generate
-```
-
-代码生成契约现已支持以下注解(类级别)编写的restful接口
->RestController, RestSchema, RpcSchema, RequestMapping
-
-代码生成契约时,restful接口方法修饰符必须指定为public
-
-
-#### 2.2.2 解析契约,生成微服务工程、文档
-
-配置项(不显式设置 `<configuration>` 则使用默认配置)
-例:
-```xml
-<plugin>
-    <groupId>org.apache.servicecomb.toolkit</groupId>
-    <artifactId>toolkit-maven-plugin</artifactId>
-    <version>0.2.0-SNAPSHOT</version>
-    <configuration>
-        <!-- 输入源。设置为 code,表示解析当前代码;设置为 contract,表示解析指定目录的契约文件。不设置则默认为 code -->
-        <sourceType>contract</sourceType>
-        <!-- 被解析的契约文件路径,在 sourceType 设置为 contract 时有效,且必须设置 -->
-        <contractLocation>./contract</contractLocation>
-        <!-- 生成契约文件、文档的根目录,不设置则默认为运行命令所在目录下的 target 目录,生成的微服务工程在 project 目录,契约文件在 contract 目录,文档在 document 目录 -->
-        <outputDirectory>./target</outputDirectory>
-        <!-- 生成的微服务代码工程配置 -->
-        <service>
-            <!-- 微服务的类型,可生成 provider/consumer/all,默认值为 all -->
-            <serviceType>provider</serviceType>
-        </service>
-    </configuration>
-</plugin>
-```
-
-运行命令
-```shell
-mvn toolkit:generate
-```
-
-#### 2.2.3 代码和契约一致性校验
-
-配置项
-例:
-```xml
-<plugin>
-    <groupId>org.apache.servicecomb.toolkit</groupId>
-    <artifactId>toolkit-maven-plugin</artifactId>
-    <version>0.2.0-SNAPSHOT</version>
-    <configuration>
-        <!-- 输入源。设置为 code,表示解析当前代码;设置为 contract,表示解析指定目录的契约文件。不设置则默认为 code -->
-        <sourceType>code</sourceType>
-        <!-- 样本契约文件目录,必须设置 -->
-        <destinationContractPath>./contract</destinationContractPath>
-    </configuration>
-</plugin>
-```
-
-运行命令
-```shell
-mvn toolkit:verify
-```
-
-
-### 3 使用toolkit cli工具
-可执行jar包位于toolkit/cli/target/bin目录下
-```shell
-$ java -jar toolkit-cli-{version}.jar help
-```
-#### 3.1 契约生成微服务工程
-```shell
-$ java -jar toolkit-cli-{version}.jar  codegenerate -m ServiceComb -i swagger.yaml -o ./project -p SpringMVC
-```
-> **codegenerate** 命令选项说明:
-* -m, --microservice-framework : 指定微服务框架,现支持ServiceComb  
-例:-m ServiceComb
-* -p, --programming-model : 指定编程模型,可选JAX-RS,POJO,SpringMVC,SpringBoot  
-例:-p SpringMvc
-* -i, --input : 指定遵循OpenAPI规范的契约文件,支持yaml和json格式,支持指定本地和网络文件  
-例:-i http://petstore.swagger.io/v2/swagger.json
-* -o, --output : 生成的项目代码输出路径  
-例:-o ./project
-* --group-id : 指定生成的项目的group id  
-例:--group-id com.demo
-* --artifact-id : 指定生成的项目的artifact id     
-例:--artifact-id springmvc-example
-* --artifact-version : 指定生成的项目的artifact version  
-例:--artifact-version 1.0.0
-* --api-package : 指定生成项目的api package  
-例:--api-package com.demo.api
-* --model-package : 指定生成项目的model package   
-例:--model-package com.demo.model
-* -t, --service-type : 指定生成的微服务项目的微服务类型。可选值为provider,consumer,all                  
-例:--service-type provider  
-
-#### 3.2 契约生成文档
-```shell
-$ java -jar toolkit-cli-{version}.jar docgenerate -i swagger.yaml -o ./document
-```
-> **docgenerate** 命令选项说明:
-* -i, --input : 指定遵循OpenAPI规范的契约文件,支持yaml和json格式,支持指定本地和网络文件  
-例:-i http://petstore.swagger.io/v2/swagger.json
-* -o, --output : 文档输出路径   
-例:-o ./document
-* -f, --format : 指定输出文档风格,现支持swagger-ui
-例:-f swagger-ui
-
-#### 3.3 契约风格检查
-
-```shell
-$ java -jar toolkit-cli-{version}.jar checkstyle oas.yaml
-或者
-$ java -jar toolkit-cli-{version}.jar cs oas.yaml
-```
-
-> **checkstyle** Command argument
-* &lt;file&gt; OpenAPI v3 spec yaml文件
-
-见[风格检查规则](/cn/docs/products/toolkit/oas-validator/#合规性校验)
-
-#### 3.4 契约兼容性检查
-
-```shell
-$ java -jar toolkit-cli-{version}.jar checkcompatibility left-oas.yaml right-oas.yaml
-或者
-$ java -jar toolkit-cli-{version}.jar cc left-oas.yaml right-oas.yaml
-```
-
-> **checkcompatibility** Command argument
-* &lt;files&gt; Two OpenAPI v3 spec yaml file
-
-见[兼容性检查规则](/cn/docs/products/toolkit/oas-validator/#兼容性检查)
diff --git a/_docs/getstarted/getting-started.md b/_docs/getstarted/getting-started.md
deleted file mode 100644
index 6d676aa..0000000
--- a/_docs/getstarted/getting-started.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: "Getting Started"
-lang: en
-ref: getting-started
-permalink: /docs/getting-started/
-excerpt: "ServiceComb Getting Started"
-last_modified_at: 2019-11-12T00:50:43-55:00
----
-
-{% include toc %}
-## Getting Started
-Apache ServiceComb is an open source solution for microservices. It consists of multiple components that can be flexibly adapted to different scenarios through the combination of components. This guide can help you get started quickly with Apache ServiceComb, which is the best place to start trying for first-time users.  
-1. Download [the ServiceComb release](/release/)component  
-2. [Install service-center](/docs/products/service-center/install/)
-3. [Registration&Discovery](/docs/products/service-center/registration-discovery/)
-4. Select the quick start instructions for the appropriate development language to use.  
-- [Development of microservices application based on java microservice SDK](/docs/products/java-chassis/quick-start/)  
-- [Use mesher to merge into the servicecomb microservice system](/docs/products/mesher/quick-start/)
-5. If the project involves multi-party collaboration, or legacy systems want to transform into microservices
-[A contract-based microservice development toolkit](/docs/products/toolkit/quick-start/)
-
-## Advanced  
-1. [A multiple servicecenters synchronization tool](/docs/products/syncer/quick-start/)
-
-## More  
-After completing the above, you can learn in depth through each service user manual:  
-[ServiceComb User Manual](/docs/users/)
diff --git a/_docs/introduction/introduction.md b/_docs/introduction/introduction.md
deleted file mode 100644
index 03f01d4..0000000
--- a/_docs/introduction/introduction.md
+++ /dev/null
@@ -1,126 +0,0 @@
----
-title: "Introduction"
-lang: en
-ref: introduction
-permalink: /docs/introduction/
-excerpt: "ServiceComb Introduction"
-last_modified_at: 2019-11-12T00:50:43-55:00
----
-
-{% include toc %}
-
-## Apache ServiceComb
-
-Apache ServiceComb provides a complete open-source microservices solution that integrates the open-source ecosystem. Committed to helping enterprises, users, and developers to microservice applications to the cloud easily, to achieve efficient operation and maintenance management of microservice applications.
-
-### ServiceComb Architecture
-
-ServiceComb, as a microservices solution, contains multiple products. The combination of different products can easily cope with different scenarios of microservices, which facilitates the use of microservices on the cloud.
-
-![1](/assets/images/docs/servicecomb/servicecomb.jpg)
-
-### Service Registry(Service Center):
-
-ServiceCenter is a service registry. Like other service registry, its main role is to solve the problem of service registration and discovery, that is the problem of dynamic routing. At the same time, in order to better solve the problem of cross-team collaboration, it adds support for contract (based on OpenAPI specifications) services. If it is used with contract tools (Toolkit) or Java microservice development kit (Java Chassis), communication Interfaces will become transparent, allow [...]
-
-Learn more:[User manual](/docs/products/service-center/install/)
-
-### Configuration Center(Kie)
-
-Kie is a semantic distributed system configuration center. It is designed for cloud-native distributed systems. It aims to provide users with the ability to configure dynamic delivery. At the same time, the key rules are changed from traditional splicing (a.b.timeout = 10s) Redesigned into easy-to-understand semantic type (timeout (service = a, version = b) = 10s), which is convenient for operation and maintenance personnel to understand configurations and manage complex distributed syst [...]
-
-Learn more:[User manual](http://servicecomb.apache.org/docs/kie/0.1.0/index.html)
-
-### Distributed transaction(Pack)
-
-Apache ServiceComb Pack is an eventually data consistency solution for micro-service applications.
-
-Features
-- High availability. The coordinator is stateless and thus can have multiple instances.
-- High reliability. All transaction events are stored in database permanently.
-- High performance. Transaction events are reported to coordinator via gRPC and transaction payloads are serialized/deserialized by Kyro.
-- Low invasion. All you need to do is add 2-3 annotations and the corresponding compensate methods.
-- Easy to deploy. All components can boot via docker.
-- Support both forward(retry) and backward(compensate) recovery.
-- Easy to extend other coordination protocol which is based on the Pack, now we have Saga and TCC support out of box.
-
-Learn more:[User manual](https://docs.servicecomb.io/saga/en_US/)
-
-### Java microservice SDK(Java Chassis)
-
-Apache ServiceComb Java Chassis is a Software Development Kit (SDK) for rapid development of microservices in Java, providing service registration, service discovery, dynamic routing, and service management features
-
-- High performance
-
-   The transport capability of Java Chassis is based on Vert.x, which enables Java Chassis to process massive requests with relatively less hardware resources, and support reactive develop style.
-
-- Native support for OpenAPI
-
-   Java Chassis describes the APIs of the microservices via Swagger natively, to help developers to design microservices that comply to OpenAPI standard.
-
-- Flexible develop style
-
-   Currently Java Chassis allow developers to develop their microservice APIs in SpringMVC/JAX-RS/transparent RPC styles, and to send the request in RPC/RestTemplate styles. And there are three kind of build-in transport mode: Rest over Vertx/Rest over Servlet/Highway. All of these features can be combined and replaced easily, because they are decoupled and all based on the Swagger schema, which can provide high flexibility.
-
-- Out-of-box microservice governance features
-
-   Java Chassis provides a lot of features for microservice governance and monitor.
-
-- Multi languages support
-
-   Via ServiceComb Mesher, the microservices built by other languages are also able to work with ServiceComb components. And Java Chassis can communicate with such microservices and make use of the built-in capabilities.
-
-Learn more:[Quick start](/docs/products/java-chassis/quick-start/)  [User manual](https://docs.servicecomb.io/java-chassis/en_US/index.html)
-
-### Application runs as a microservice in any language (Mesher)
-
-Mesher is a service mesh project of Apache ServiceComb. It supports applications of any development language in any running environment to quickly access the ServiceComb microservice system. Mesher is implemented using the go language based on the go-chassis open-source framework. It supports plug-in support for microservice capabilities such as load balancing, flow control, call chain tracking, blowdown and degradation, service governance, and dynamic configuration management. Mesher cu [...]
-
-Learn more:[Quick start](/docs/products/mesher/quick-start/)  [User manual](http://servicecomb.apache.org/docs/mesher/1.6.3/index.html)
-
-### Authnz of microservice(Fence)
-
-The overall idea of Apache ServiceComb-fence is to combine the OAuth 2 and OpenID Connect protocols to provide the requirements for user diversity authentication. The focus is on ensuring authentication within the system (including using third-party authentication capabilities). OAuth 2 and OpenID connect protocols were originally designed to "provide authentication capabilities to third parties." Apache ServiceComb-fence meets the protocol standards in terms of solution design and capab [...]
-
-Learn more:[User manual](https://github.com/apache/servicecomb-fence/blob/master/README.md)
-
-### A contract-based microservice development toolkit(Toolkit)
-
-Apache ServiceComb Toolkit is a contract-based microservice development toolkit. Provides the ability to convert and verify contracts, code, and documents, helping users quickly build microservice projects based on popular microservices frameworks and popular programming models, reducing the cost of microservices entry, enabling users to focus on business development, enhance refactoring and development efficiency.
-
-Features
-- Code extraction service contract
-
-   In applications developed based on the SpringMVC/POJO/JAX-RS model, one-click generation of service contract files conforming to the OpenAPI specification.
-
-- Service contract generation microservice project
-
-   Enter a service contract that conforms to the OpenAPI specification, one-click generation of a microservice project with ServiceComb/SpringCloud/Swagger as the base microservice framework and SpringMVC/POJO/JAX-RS or SpringBoot as programming model.
-
-- Service contract and code consistency check
-
-   Verify that the actual implementation of the application (such as the data and service API) is consistent with the agreed service contract description.
-
-- Service contract style checking and compatibility checking
-
-   The style checking checks whether the contract conforms to [OAS 3.0.2 specification] [openapi-3.0.2] and custom rules; the compatibility checking checks whether new OAS spec compatible with old spec
-
-- Service contract/code generation document
-
-   Enter a service contract that conforms to the OpenAPI specification, one-click generation of a document in html format.
-
-Learn more:[Quick start](/docs/products/toolkit/quick-start/)
-
-### Multiple servicecenters synchronization tools(Syncer)
-
-Syncer is a multiple servicecenters synchronization tool, which is specially designed for large microservice architectures. It is used to synchronize differ-structure servicecenters and cross-region instances in the case of network interconnection. In the future, it will provide support for cross-network, cross-cloud and other scenarios. Syncer exists in the form of a servicecenter's companion system. It is mainly responsible for finding instances from the current service center and broa [...]
-
-- Zero intrusion in business architecture. Syncer synchronizes instance information for the service center in a transparent form. It does not participate in the original business process, and the service does not need to sense its existence.
-- Unbound servicecenter, compatible with ecology, supports access to differ-structure servicecenters.
-- Construct a centerless peer-to-peer network based on Serf (the implementation of the gossip protocol). Members can join and leave freely without affecting the Syncer network and servicecenter.
-- It is transmitted in the network with a unified data structure, and the conversion of the data structure is distributed to each Syncer. It only needs to handle the conversion between the current service center data structure and SyncData to achieve maximum data compatibility.
-- Support the service center in the form of golang plug-in, users can freely expand the servicecenter that needs to be accessed. The new servicecenter is added, and the data can be synchronized in the Syncer network by simply converting to SyncerData in its accompanying Syncer without the cooperation of other members.
-- Service configuration, deployment, upgrade, and maintenance are still completed in a single servicecenter, without additional business maintenance costs.
-
-Learn more:[Quick start](/docs/products/syncer/quick-start/)
-
diff --git a/_docs/products/java-chassis/advance.md b/_docs/products/java-chassis/advance.md
deleted file mode 100644
index f00572e..0000000
--- a/_docs/products/java-chassis/advance.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "Advance microservice development"
-lang: en
-ref: advance
-permalink: /docs/products/java-chassis/advance/
-excerpt: "Introduce how to use handler chain with ServiceComb in the BMI application"
-last_modified_at: 2017-09-03T10:01:43-04:00
----
-
-This guide shows how to reinforce microservices with **ServiceComb**\'s handler chain. From here you can learn how to use ServiceComb\'s handler chain by the following links below:
-
-* [Load Balance](/docs/products/java-chassis/load-balance/). Distribute requests equally among service instances.
-
-* [Flow Control](/docs/products/java-chassis/flow-control/). Limit number of requests of a microservice.
-
-* [Service Management](/docs/products/java-chassis/service-management). Isolate abnormal services and stop cascading failure in microservice application.
-
-* [Distributed Tracing](/docs/products/java-chassis/distributed-tracing). Visualize the flow of requests through microservices.
-
-## What's next
-
-* See [ServiceComb User Guide](/docs/users/)
-
-* Learn more from [the Company application](/docs/linuxcon-workshop-demo/) for a more complete example of microservice applications integrated with ServiceComb
diff --git a/_docs/products/java-chassis/bmi.md b/_docs/products/java-chassis/bmi.md
deleted file mode 100644
index d15f347..0000000
--- a/_docs/products/java-chassis/bmi.md
+++ /dev/null
@@ -1,214 +0,0 @@
----
-title: "Develop microservice application in minutes"
-lang: en
-ref: bmi
-permalink: /docs/products/java-chassis/bmi/
-excerpt: "Introduce how to develop a microservice application using ServiceComb in minutes through the BMI sample"
-last_modified_at: 2017-09-06T00:50:00-55:00
----
-
-{% include toc %}
-## Before you begin
-Walk through the instructions in the [Quick Start](/docs/products/java-chassis/quick-start/).
-
-## Develop BMI microservice application in minutes
-The workflow of BMI application have been introduced in [Quick start](/docs/products/java-chassis/quick-start/). It contains two separate microservices:
-
-- **BMI calculator service**:provides computing services.
-
-- **Web service**:provides both user interface and gateway service.
-
-Before we start, we need to add some common dependencies in the parent project of the services'.
-```java
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.servicecomb</groupId>
-        <artifactId>java-chassis-dependencies</artifactId>
-        <version>1.0.0-m1</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.hibernate</groupId>
-      <artifactId>hibernate-validator</artifactId>
-    </dependency>
-  </dependencies>
-```
-**Notice**: The `java-chassis-dependencies` is imported as pom to unify version management of dependencies.
-
-Now we will introduce the detailed implementation of these two microservices. The full code is on [github](https://github.com/apache/servicecomb-samples/tree/1.3.0/java-chassis-samples/bmi).
-### Implementation of calculator
-The calculator service provides capability of calculating BMI. It contains three parts:
-
-* Detailed calculation implementation
-
-* Service endpoint definition
-
-* Service startup entry
-
-#### Detailed calculation implementation
-Implement detailed calculation according to the formula \\(BMI=\frac{weight}{height^2}\\).
-
-```java
-public interface CalculatorService {
-  double calculate(double height, double weight);
-}
-
-@Service
-public class CalculatorServiceImpl implements CalculatorService {
-  @Override
-  public double calculate(double height, double weight) {
-    if (height <= 0 || weight <= 0) {
-      throw new IllegalArgumentException("Arguments must be above 0");
-    }
-    double heightInMeter = height / 100;
-    return weight / (heightInMeter * heightInMeter);
-  }
-}
-```
-
-#### Service endpoint definition
-Service endpoint is defined to generate service contract. First of all, define the endpoint interface:
-```java
-public interface CalculatorEndpoint {
-  double calculate(double height, double weight);
-}
-```
-Introduce ServiceComb dependency:
-```xml
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>spring-boot-starter-provider</artifactId>
-    </dependency>
-```
-Expose calculator service's restful endpoint:
-```java
-@RestSchema(schemaId = "calculatorRestEndpoint")
-@RequestMapping("/")
-public class CalculatorRestEndpoint implements CalculatorEndpoint {
-
-  private final CalculatorService calculatorService;
-
-  @Autowired
-  public CalculatorRestEndpoint(CalculatorService calculatorService) {
-    this.calculatorService = calculatorService;
-  }
-
-  @Override
-  @GetMapping("/bmi")
-  public double calculate(double height, double weight) {
-    return calculatorService.calculate(height, weight);
-  }
-}
-```
-
-ServiceComb supports SpringMvc simplified annotations, e.g. `GetMapping`, since version 0.3.0.
-{: .notice--info}
-
-Note that ServiceComb can auto-generate service contract when annotating endpoints with `@RestSchema`. Then configure the endpoint in  `microservice.yaml` as follows to register the contract and microservice to service center.
-```yaml
-APPLICATION_ID: bmi
-service_description:
-  name: calculator
-  version: 0.0.1
-servicecomb:
-  service:
-    registry:
-      address: http://127.0.0.1:30100
-  rest:
-    address: 0.0.0.0:7777
-```
-
-#### Service startup entry
-Enable *ServiceComb* microservice framework by adding `@EnableServiceComb` annotation.
-```java
-@SpringBootApplication
-@EnableServiceComb
-public class CalculatorApplication {
-  public static void main(String[] args) {
-    SpringApplication.run(CalculatorApplication.class, args);
-  }
-}
-```
-
-### Implementation of webapp service
-The web service provides both the user interface and gateway service. It contains three parts:
-
-* User interface
-
-* Gateway and routing rules
-
-* Service startup entry
-
-The user interface was developed using [Bootstrap](http://getbootstrap.com/).
-
-#### Gateway and routing rules
-The gateway service was implemented using the [Netflix Zuul](https://github.com/Netflix/zuul/wiki).
-
-Introduce ServiceComb dependency:
-```xml
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>spring-boot-starter-discovery</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>spring-boot-starter-servicecomb</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>spring-cloud-zuul</artifactId>
-    </dependency>
-```
-
-ServiceComb added `spring-cloud-zuul` module to provide better compatibility with zuul since version 0.4.0-SNAPSHOT.
-{: .notice--info}
-
-Configure routing rules and service endpoint in `application.yaml`.
-```yaml
-zuul:
-  routes:
-    calculator: /calculator/**
-
-# disable netflix eureka since it's not used for service discovery
-ribbon:
-  eureka:
-    enabled: false
-
-server:
-  port: 8889
-```
-Enable service discovery with zuul by putting the application information and service center address in `microservice.yaml`.
-```yaml
-APPLICATION_ID: bmi
-service_description:
-  name: gateway
-  version: 0.0.1
-servicecomb:
-  service:
-    registry:
-      address: http://127.0.0.1:30100
-```
-#### Service startup entry
-Add annotations to enable `ServiceComb` and `Zuul`:
-```java
-@SpringBootApplication
-@EnableZuulProxy
-@EnableServiceComb
-public class GatewayApplication {
-  public static void main(String[] args) {
-    SpringApplication.run(GatewayApplication.class, args);
-  }
-}
-```
-
-Now you can refer to [quick start](/docs/products/java-chassis/quick-start/#run-microservice-application) to verify the services.
-
-## What's next
-
-* Learn [advance microservice development](/docs/products/java-chassis/advance/)
diff --git a/_docs/products/java-chassis/distributed-tracing.md b/_docs/products/java-chassis/distributed-tracing.md
deleted file mode 100644
index c6c8af5..0000000
--- a/_docs/products/java-chassis/distributed-tracing.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-title: "Distributed Tracing"
-lang: en
-ref: distributed-tracing
-permalink: /docs/products/java-chassis/distributed-tracing/
-excerpt: "Introduce how to use distributed tracing with ServiceComb in the BMI application"
-last_modified_at: 2017-09-03T10:01:43-04:00
----
-
-{% include toc %}
-Distributed handler chain tracing is used to monitor the network latencies and visualize the flow of requests through microservices. This guide shows how to use distributed tracing with **ServiceComb** in the BMI application.
-
-## Before you start
-
-Walk through [Develop microservice application in minutes](/docs/products/java-chassis/bmi/) and have **BMI application** running. 
-
-## Enable
-
-1. Add distributed tracing dependency in `pom.xml` of *BMI calculator service*:
-
-   ```xml
-       <dependency>
-         <groupId>org.apache.servicecomb</groupId>
-         <artifactId>handler-tracing-zipkin</artifactId>
-       </dependency>
-   ```
-
-2. Add handler chain of distributed tracing in `microservice.yaml` of *BMI calculator service*:
-
-   ```yaml
-   servicecomb:
-     handler:
-       chain:
-         Provider:
-           default: tracing-provider
-   ```
-
-3. Add distributed tracing dependency in `pom.xml` of *BMI web service*:
-
-   ```xml
-       <dependency>
-         <groupId>org.apache.servicecomb</groupId>
-         <artifactId>spring-cloud-zuul-zipkin</artifactId>
-       </dependency>
-   ```
-
-The above configurations have already set up in the code. All you need to do is as follows:
-
-1. Run *Zipkin* distributed service inside Docker.
-
-   ```bash
-   docker run -d -p 9411:9411 openzipkin/zipkin
-   ```
-
-2. Restart *BMI calculator service* with the following command:
-
-   ```bash
-   mvn spring-boot:run -Drun.jvmArguments="-Dcse.handler.chain.Provider.default=tracing-provider"
-   ```
-   or 
-   ```bash
-   #spring-boot-maven-plugin 2.x
-    mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dcse.handler.chain.Provider.default=tracing-provider"
-   ```
-   
-3. Restart *BMI web service* with the following command:
-
-   ```bash
-   #spring-boot-maven-plugin 1.x
-   mvn spring-boot:run -Drun.jvmArguments="-Dservicecomb.tracing.enabled=true"
-   ```
-   or
-   ```bash
-   #spring-boot-maven-plugin 2.x
-    mvn spring-boot:run -Dspring-boot.run.jvmArguments="--Dservicecomb.tracing.enabled=true"
-   ```
-
-## Verification
-
-1. Visit <a>http://localhost:8889</a> . Input a positive height and weight and then click *Submit* button.
-
-2. Visit <a>http://localhost:9411</a> to checkout the status of distributed tracing and get the following figure.
-
-![Distributed tracing result](/assets/images/distributed-tracing-result.png){: .align-center}
-
-## What's next
-
-* Learn more about [Distributed Tracing](/docs/users/distributed-tracing/)
-
-* Read [Distributed Tracing with ServiceComb and Zipkin](/docs/tracing-with-servicecomb/)
-
-* See [ServiceComb User Guide](/docs/users/)
-
-* Learn more from [the Company application](/docs/linuxcon-workshop-demo/) for a more complete example of microservice applications integrated with ServiceComb
-
- ```
-
- ```
\ No newline at end of file
diff --git a/_docs/products/java-chassis/flow-control.md b/_docs/products/java-chassis/flow-control.md
deleted file mode 100644
index c7dcae5..0000000
--- a/_docs/products/java-chassis/flow-control.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: "Flow Control"
-lang: en
-ref: flow-control
-permalink: /docs/products/java-chassis/flow-control/
-excerpt: "Introduce how to use flow control with ServiceComb in the BMI application"
-last_modified_at: 2017-09-03T10:01:43-04:00
----
-
-{% include toc %}
-Flow control mechanism controls the transmission speed to avoid microservices being overloaded. This guide shows how to use flow control with **ServiceComb** in the BMI application. 
-
-## Before you start
-
-Walk through [Develop microservice application in minutes](/docs/products/java-chassis/bmi/) and have **BMI application** running. 
-
-## Enable
-
-1. Add flow control dependency in `pom.xml` of *BMI calculator service*:
-
-   ```xml
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>handler-flowcontrol-qps</artifactId>
-    </dependency>
-   ```
-
-2. Add handler chain and configurations of flow control in `microservice.yaml` of *BMI calculator service*:
-
-   ```yaml
-   servicecomb:
-     handler:
-       chain:
-         Provider:
-           default: qps-flowcontrol-provider
-     flowcontrol:
-       Provider:
-         qps:
-           limit:
-             gateway: 1
-   ```
-
-The above configurations have already set up in the code. All you need to do is to stop all **BMI calculator services** and then start a new one with the following command:
-
-```bash
-#spring-boot-maven-plugin 1.x
-mvn spring-boot:run -Drun.jvmArguments="-Dcse.handler.chain.Provider.default=qps-flowcontrol-provider -Dcse.flowcontrol.Provider.qps.limit.gateway=1"
-```
-or
-```bash
-#spring-boot-maven-plugin 2.x
-mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dcse.handler.chain.Provider.default=qps-flowcontrol-provider -Dcse.flowcontrol.Provider.qps.limit.gateway=1"
-```
-
-## Verification
-
-Visit <a>http://localhost:8889</a>. Input a positive height and weight and then click *Submit* button twice or more in less than one second. You will see the web page change from the left one to the right one.
-
-![Flow control result](/assets/images/flow-control-result.png){: .align-center}
-
-## What's next
-
-* See quick start for [Service Management](/docs/products/java-chassis/service-management/)
-
-* Learn more about [Flow Control](/docs/users/service-configurations/#rate-limiting-policy)
diff --git a/_docs/products/java-chassis/load-balance.md b/_docs/products/java-chassis/load-balance.md
deleted file mode 100644
index 4e1d8d8..0000000
--- a/_docs/products/java-chassis/load-balance.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: "Load Balance"
-lang: en
-ref: load-balance
-permalink: /docs/products/java-chassis/load-balance/
-excerpt: "Introduce how to use load balance with ServiceComb in the BMI application"
-last_modified_at: 2017-09-03T10:01:43-04:00
----
-
-{% include toc %}
-When we scale up *BMI calculator service*, requests from *BMI web service* need to distribute equally to each *BMI calculator service*. This guide shows how to use load balance with **ServiceComb** in the BMI application. 
-
-## Before you start
-
-Walk through [Develop microservice application in minutes](/docs/products/java-chassis/bmi/) and have **BMI application** running. 
-
-## Enable
-
-The simple embedded load balancer will be used by default. No extra configurations needed.
-
-## Verification
-
-Run one more *BMI calculator service* with the following command: 
-```bash
-#spring-boot-maven-plugin 1.x
-mvn spring-boot:run -Drun.jvmArguments="-Dcse.rest.address=0.0.0.0:7778"
-```
-or 
-```bash
-#spring-boot-maven-plugin 2.x
-mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dcse.rest.address=0.0.0.0:7778"
-```
-
-To better distinguish different running instances, we added a new interface that returns instance id in the implementation of BMI calculator, details can refer to [the implementation of BMI calculator](https://github.com/apache/servicecomb-samples/tree/1.3.0/java-chassis-samples/bmi/calculator). Besides, a different service port is needed to avoid port conflict.
-
-Now you can see the instance id in the following figures shows up alternately by clicking the *Submit* button.
-
-![Load balance result](/assets/images/load-balance-result.png){: .align-center}
-
-## What's next
-
-* See quick start for [Flow Control](/docs/products/java-chassis/flow-control/)
-
-* Learn more about [Load Balance](/docs/users/service-configurations/#load-balancing-policy)
diff --git a/_docs/products/java-chassis/quick-start.md b/_docs/products/java-chassis/quick-start.md
deleted file mode 100644
index 21c5db7..0000000
--- a/_docs/products/java-chassis/quick-start.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: "Get started"
-lang: en
-ref: quick-start
-permalink: /docs/products/java-chassis/quick-start/
-excerpt: "Introduce how to run microservice applications using ServiceComb"
-last_modified_at: 2017-09-06T00:50:43-55:00
----
-
-{% include toc %}
-## Install Java development environment
-
-* Install Git, details can refer to [Git Installing Guide](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git){:target="_blank"}.
-
-* Install JDK 1.8, details can refer to [JDK Installing Guide](https://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html){:target="_blank"}.
-
-* Install Maven 3.x, details can refer to [Maven Installing Guide](https://maven.apache.org/install.html){:target="_blank"}.
-
-* Download ServiceComb-Samples.
-
-   ```bash
-   git clone https://github.com/apache/servicecomb-samples.git
-   cd servicecomb-samples/java-chassis-samples/bmi
-   mvn clean install
-   ```
-
-## Run Service Center
-**Service Center** enables capabilities of service registration and service discovery in **ServiceComb**. It can run inside docker.
-```bash
-docker pull servicecomb/service-center
-docker run -d -p 30100:30100 servicecomb/service-center:latest
-```
-*Reference to [Install of ServiceCenter](/docs/products/service-center/install/) to learn deploying Service Center as a local binary.*   
-
-## Create your first microservice application
-Let\'s start the journey of microservice with a simple **Body Mass Index(BMI)** application. The [BMI](https://en.wikipedia.org/wiki/Body_mass_index){:target="_blank"} is an attempt to quantify the amount of tissue mass in an individual. This application contains two separate microservices:
-
-* **BMI calculator service**:A microservice provides calculation of BMI.
-
-* **Web service**:A microservice provides both user interface and gateway service.
-
-The workflow of the application is shown as follows:  
-![workflow of BMI](/assets/images/quick-start-sample-workflow-en.png){: .align-center}
-
-Note that the dotted lines indicate the process of service registration and discovery.
-
-## Run microservice application
-
-1. Enter BMI codes directory.
-
-   ```bash
-   cd servicecomb-samples/java-chassis-samples/bmi
-   ```
-
-   **Note**: In windows development environment, the docker runs inside the virtual machine. The IP address of **Service Center** needs to be modified as the virtual machine\'s IP address. Modify the 2 configuration files [calculator\|webapp]/src/main/resources/microservice.yaml, changed <a>http://127.0.0.1:30100</a> to <a>http://192.168.99.100:30100</a> , where 192.168.99.100 is the virtual machine\'s IP address.
-
-2. Run microservices.
-
-   ```bash
-   cd calculator; mvn spring-boot:run
-   cd webapp; mvn spring-boot:run
-   ```
-
-3. Verify the application. Visit <a>http://localhost:8889</a> in browser. Then input your height and weight to verify.
-
-   ![BMI user interface](/assets/images/bmi-interface.png){: .align-center}
-
-## What's next
-
-* Learn how to [develop microservice application in minutes](/docs/products/java-chassis/bmi/).
diff --git a/_docs/products/java-chassis/service-management.md b/_docs/products/java-chassis/service-management.md
deleted file mode 100644
index 43b463d..0000000
--- a/_docs/products/java-chassis/service-management.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: "Service Management"
-lang: en
-ref: service-management
-permalink: /docs/products/java-chassis/service-management/
-excerpt: "Introduce how to use service management with ServiceComb in the BMI application"
-last_modified_at: 2017-09-03T10:01:43-04:00
----
-
-{% include toc %}
-Service management is mainly used to solve or ease avalanche effect of microservices. Abnormal microservices will be isolated and stop cascading failure to reduce unnecessary resource. This guide shows how to use service management with **ServiceComb** in the BMI application.
-
-## Before you start
-
-Walk through [Develop microservice application in minutes](/docs/products/java-chassis/bmi/) and have **BMI application** running. 
-
-## Enable
-
-1. Add service management dependency in `pom.xml` of *BMI calculator service*:
-
-   ```xml
-       <dependency>
-         <groupId>org.apache.servicecomb</groupId>
-         <artifactId>handler-bizkeeper</artifactId>
-       </dependency>
-   ```
-
-2. Configure handler chain of service management and fallback strategy:
-
-   ```yaml
-   servicecomb:
-     handler:
-       chain:
-         Provider:
-           default: bizkeeper-provider
-     circuitBreaker:
-       Provider:
-         calculator:
-           requestVolumeThreshold: 3
-     fallbackpolicy:
-       Provider:
-         policy: returnnull
-   ```
-
-The above configurations have already set up in the code. All you need to do is to restart the *BMI calculator services* with the following command:
-
-```bash
-#spring-boot-maven-plugin 1.x
-mvn spring-boot:run -Drun.jvmArguments="-Dcse.handler.chain.Provider.default=bizkeeper-provider -Dcse.circuitBreaker.Provider.calculator.requestVolumeThreshold=3 -Dcse.fallbackpolicy.Provider.policy=returnnull"
-```
-or
-```bash
-#spring-boot-maven-plugin 2.x
-mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dcse.handler.chain.Provider.default=bizkeeper-provider -Dcse.circuitBreaker.Provider.calculator.requestVolumeThreshold=3 -Dcse.fallbackpolicy.Provider.policy=returnnull"
-```
-
-## Verification
-
-1. Circuit-break microservices. Visit <a>http://localhost:8889</a>, enter a negative height or weight and click the *Submit* button three times or more continuously. Then the web page should look like the left one in fig-1.
-
-2. Verify serivces are in circuit-break status. Enter a positive height and weight, then click *Submit* button. The web page still looks like the left one in fig-1. In the meanwhile, no exceptions show in the log of *BMI calculator service*. Instead it shows lines contain "fallback called". 
-
-3. Verify the service back online again. Wait for about 15 seconds, enter a positive height and weight, then click *Submit* button. You will see the service works fine again like the right one in fig-1.
-
-![Service management result](/assets/images/service-management-result.png){: .align-center}
-fig-1 Service management result
-{: .figure-caption}
-
-## What's next
-
-* See quick start for [Distributed Tracing](/docs/products/java-chassis/distributed-tracing/)
-
-* Learn more about [Service Management](/docs/users/service-configurations/)
diff --git a/_docs/products/mesher/advance.md b/_docs/products/mesher/advance.md
deleted file mode 100644
index 6b65f34..0000000
--- a/_docs/products/mesher/advance.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: Development Advanced
-lang: en
-ref: advance
-permalink: /docs/products/mesher/advance/
-excerpt: Describe how to use mesher's advanced microservice capabilities
-last_modified_at: 2019-08-08T14:01:43.000Z
----
-
-This guide will show you how to use the advanced features of **mesher** to support the microservices system better.
-
-- [mesher for load balance](/docs/products/mesher/load-balance/) Support for flexible and configurable microservice load balancing strategies.
-
-- [mesher for flow control](/docs/products/mesher/flow-control/) Support microservice request flow control capabilities.
-
-- [mesher for service management](/docs/products/mesher/service-management/) Supports micro-service grayscale publishing, service fusing and other management capabilities.
-
-- [mesher for distributed tracing](/docs/products/mesher/distributed-tracing) Supports the ability to track the chain of call relationships of microservices.
-
-# What's next
-
-- See [ServiceComb User Guide](/users/)
-
-- Learn more from [the Company application](/docs/linuxcon-workshop-demo/) for a more complete example of microservice applications integrated with ServiceComb
diff --git a/_docs/products/mesher/distributed-tracing.md b/_docs/products/mesher/distributed-tracing.md
deleted file mode 100644
index c6132cb..0000000
--- a/_docs/products/mesher/distributed-tracing.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: Distributed Tracing
-lang: en
-ref: distributed-tracing
-permalink: /docs/products/mesher/distributed-tracing/
-excerpt: Introduce how to use distributed tracing with mesher
-last_modified_at: 2019-08-08T14:01:43.000Z
----
-
-- Distributed handler chain tracking provides the ability of tracing microservice call relationships and watching processing time. It is used to make it easy for users to check the health of microservices in a distributed environment. This guide will show you how to use the distributed handler chain tracking capabilities provided by **mesher**.
-
-# Foreword
-
-- Walk through [mesher-quick-start](/docs/products/mesher/quick-start/) and have **mesher display programs** running.
-
-# Enable
-
-- 1 Added zipkin library dependency in mesher main file.
-
-  ```bash
-  _ "github.com/go-chassis/go-chassis-plugins/tracing/zipkin"
-  ```
-
-- 2 Add default handlers in bootstrap.go as shown by the arrows in the figure.
-
-  ![tracing-func](/assets/images/mesher/mesher-tracing-func.png)
-
-- 3 Recompile and replace the executable file of **mesher_webapp** and **mesher_calculator**. Then start the mesher service respectively.
-
-- 4 Running Zipkin Distributed tracking service with docker.
-
-  ```bash
-  docker run -d -p 9411:9411 openzipkin/zipkin
-  ```
-
-- 5 Click on the _Submit_ button to initiate http call.
-
-- 6 Open <http://192.168.88.64:9411> to view the distributed tracking results. You can see the call chains and processing time of http call.
-
-  ![Distributed tracking rendering 30111](/assets/images/mesher/mesher-tracing-30111.png)
-
-# What's next
-
-- Learn more about [Distributed Tracing](/docs/users/distributed-tracing/)
-
-- Read [Distributed Tracing with ServiceComb and Zipkin](/docs/tracing-with-servicecomb/)
-
-- See [ServiceComb User Guide](/docs/users/)
-
-- Learn more from [the Company application](/docs/linuxcon-workshop-demo/) for a more complete example of microservice applications integrated with ServiceComb
-
-  ``
diff --git a/_docs/products/mesher/flow-control.md b/_docs/products/mesher/flow-control.md
deleted file mode 100644
index 43324e0..0000000
--- a/_docs/products/mesher/flow-control.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: Flow Control
-lang: en
-ref: flow-control
-permalink: /docs/products/mesher/flow-control/
-excerpt: Describe how to use the flow control capabilities provided by mesher
-last_modified_at: 2019-08-08T14:01:43.000Z
----
-
-- Flow control avoids microservice overload operations by controlling the data transfer rate. This guide will show you how to use the flow control capabilities provided by **mesher**
-
-# Before you start
-
-- Walk through [mesher-quick-start](/docs/products/mesher/quick-start/) and have **mesher display programs** running.
-
-# Enable
-
-- Change the configuration file **chassis.yaml** of **mesher_calculator**. Add a flow control configuration in **chassis.yaml** as follows. Restart the service.
-
-  ```yaml
-  flowcontrol:
-   Provider:
-     qps:
-       enabled: true                 # enable rate limiting or not
-       global:
-         limit: 0                    # default limit of provider
-       limit:
-         Server: 0                  # rate limit for request from a provider
-  ```
-
-  The frequency limit configuration make the request accepted per second is 0 which means no service is provided.
-
-# Verification
-
-- Click the _Submit_ button and you can see that the request was rejected due to the flow control of mesher. Now the request can not reach real httpserver.
-
-![flow-control-req](/assets/images/mesher/mesher-flow-control-fail.png)
-
-![flow-control-log](/assets/images/mesher/mesher-flow-control-log.png)
-
-# What's next
-
-- See quick start for [Service Management](/docs/products/mesher/service-management/)
-
-- Learn more about [Flow Control](/docs/users/service-configurations/#rate-limiting-policy)
diff --git a/_docs/products/mesher/load-balance.md b/_docs/products/mesher/load-balance.md
deleted file mode 100644
index e8f8c31..0000000
--- a/_docs/products/mesher/load-balance.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-title: Load Balance
-lang: en
-ref: load-balance
-permalink: /docs/products/mesher/load-balance/
-excerpt: Describe how to use the load balancing capabilities provided by mesher
-last_modified_at: 2019-08-08T14:01:43.000Z
----
-
-- mesher supports flexible load balancing algorithms. This guide will show you how to use the load balancing capabilities provided by **mesher**.
-
-# Foreword
-
-- Walk through [mesher-quick-start](/docs/products/mesher/quick-start/) and have **mesher display programs** running.
-
-# Enable
-
-- You can start a new **mesher_calculator** and **httpserver_calculator** instance for load balancing testing by using the program in example directory [test_balance](https://github.com/apache/servicecomb-mesher/tree/master/examples/quick_start/test_balance)
-
-- 1 Change the **service name** in file **microservice.yaml** to **calculator**. Change the listening address and port in file **chassis.yaml** to avoid conflicts.
-
-  ```bash
-  listenAddress: 127.0.0.1:40101  -----》  listenAddress: 192.168.88.64:40102
-  listenAddress: 127.0.0.1:30101  -----》  listenAddress: 192.168.88.64:30108
-  listenAddress: 127.0.0.1:30102  -----》  listenAddress: 192.168.88.64:30109
-  ```
-
-- 2 Start running mesher_calculator by cmd:
-
-  ```bash
-  export SPECIFIC_ADDR=127.0.0.1:4537
-  ./mesher
-  ```
-
-- 3 The **Roundbin** load balancing algorithm is used by default and the Random, SessionStickiness load balancing algorithms are also supported. We configure the load balancing method **Random** by modifing configuration file chassis.yaml of **mesher_webapp**.
-
-  ```yaml
-  loadbalance:
-    strategy:
-      name: Random
-  ```
-
-- 4 Run a new services instance of **httpserver_calculator** which is listenning on port 4537.
-
-# Verification
-
-- Multiple clicks the _Submit_ button and we can see that the BMI Instance ID in the following two interfaces appear randomly.
-
-  ![mesher-test-httppy1](/assets/images/mesher/mesher-testpythonhttp.png)<br>
-
-  ![mesher-test-httppy2](/assets/images/mesher/mesher-testpythonhttp2.png)
-
-## What's next
-
-- See quick start for [Flow Control](/docs/products/mesher/flow-control/)
-
-- Learn more about [Load Balance](/docs/users/service-configurations/#load-balancing-policy)
diff --git a/_docs/products/mesher/quick-start.md b/_docs/products/mesher/quick-start.md
deleted file mode 100644
index e330f0a..0000000
--- a/_docs/products/mesher/quick-start.md
+++ /dev/null
@@ -1,139 +0,0 @@
----
-title: Quick Start
-lang: en
-ref: quick-start
-permalink: /docs/products/mesher/quick-start/
-excerpt: Describe how to use mesher to merge into the servicecomb microservice system
-last_modified_at: 2019-08-08T14:01:43.000Z
----
-
-# Install development environment
-
-- Install **git**. Get details [git Installation tutorial](https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git){:target="_blank"}.
-
-- Install **golang 1.12.7**. Get details [Go Installation tutorial](https://golang.google.cn/doc/install){:target="_blank"}.
-
-- Install **python 2.7**. Get details [python Installation tutorial](https://wiki.python.org/moin/BeginnersGuide/Download){:target="_blank"}.
-
-- Install **nodejs v10.16.2**. Get details [nodejs download](https://nodejs.org/en/download/){:target="_blank"}。
-
-# Run Service Center
-
-In the **ServiceComb** microservices framework, **Service Center** provides service registration and service discovery.
-
-```bash
-docker pull servicecomb/service-center
-docker run -d -p 30100:30100 servicecomb/service-center:latest
-```
-
-_Reference to [service center install](/docs/products/service-center/install/#run-with-release-package) to learn deploying Service Center and front as a local binary._
-
-# Use mesher to merge into the servicecomb microservice system
-
-## Background
-
-- This use case is mainly to help users get started quickly with **mesher sidecar** mode. We hope that users can understand the working mode of mesher and learn how to merge the existing http service into the ServiceComb micro-service system with mesher. The final goal is to help user get the micro-service capabilities such as load balancing, flow control, service management and call chain tracing provided by servicecomb. The full case will be submitted to [Case Download](https://github. [...]
-
-## mesher use case service introduction
-
-- 1 **httpserver_calculator**. A http server based on python which is for BMI calculator and can be developed by any language.
-- 2 **httpserver_webapp**. A http server based on nodejs which is used for displaying results on the browser.
-- 3 **mesher_webapp**. A mesher instance which serves for httpserver_webapp via sidecar mode.
-- 4 **mesher_calculator**. A mesher instance which serves for httpserver_calculator via sidecar mode.
-- 5 **servicecenter**. Servicecenter which receives registration of mesher service and provides services as service discovery, routing query, service monitoring and so on.
-
-![mesher deployment diagram](/assets/images/mesher/mesher-deployment-simple.png)
-
-## Process details
-
-- 1 The browser[192.168.88.78] execute a http call to the **httpserver_webapp** service with url []()<http://192.168.88.64:4597/calculator/bmi>.
-- 2 The httpserver_webapp service receives the request and execute http call []()<http://calculator/bmi>. Because the proxy is set as []()<http://127.0.0.1:30101>, the request initiated by **httpserver_webapp** will be forwarded to the **mesher_webapp** service.
-- 3 **mesher_webapp** gets the address of the service name(the service name **calculator** here is configured in microservice.yaml) from the **servicecenter** and forwarded to **mesher_calculator**.
-- 4 **mesher_calculator** service forward http requests to the **httpserver_calculator** service.
-- 5 **httpserver_calculator** will calculate according to the input parameters(height and weight). The result containing service id and body mass index will be displayed on the browser. The flow chart is as follows:
-
-  ![mesher-flow-chart](/assets/images/mesher/mesher-flowchart-simple.png)
-
-## Environmental construction
-
-- 1 Compile **mesher** [download](https://github.com/apache/servicecomb-mesher). Download the project and get the executable mesher(linux) or mesher.exe(windows) by README.md.
-
-- 2 Create **mesher_webapp** which serves for **httpserver_webapp**. In the mesher directory execute the following linux command to create mesher_webapp. In order to the run mesher you also need to copy the conf.
-
-  ```bash
-  mkdir /usr/local/src/mesher_webapp
-  cp ./mesher /usr/local/src/mesher_webapp
-  cp -r ./conf /usr/local/src/mesher_webapp
-  ```
-
-  Change **service name** in microservice.yaml from hellemesher to **webapp**. Change the listening service address in chassis.yaml from 127.0.0.1 to **intranet ip**(Viewed by cmd ifconfig in linux, such as 192.168.88.64).
-
-  ```bash
-  listenAddress: 127.0.0.1:40101  -----》  listenAddress: 192.168.88.64:40101
-  listenAddress: 127.0.0.1:30101  -----》  listenAddress: 192.168.88.64:30101
-  listenAddress: 127.0.0.1:30102  -----》  listenAddress: 192.168.88.64:30102
-  ```
-
-- 3 Create mesher_calculator service.
-
-  ```bash
-  mkdir /usr/local/src/mesher_calculator
-  cp ./mesher /usr/local/src/mesher_calculator
-  cp -r ./conf /usr/local/src/mesher_calculator
-  ```
-
-  Change the **service name** in conf file **microservice.yaml** from hellemesher to **calculator**.<br>
-  Change the listening address and port in conf file **chassis.yaml**.
-
-  ```bash
-  listenAddress: 127.0.0.1:40101  -----》  listenAddress: 192.168.88.64:40107
-  listenAddress: 127.0.0.1:30101  -----》  listenAddress: 192.168.88.64:30111
-  listenAddress: 127.0.0.1:30102  -----》  listenAddress: 192.168.88.64:30112
-  ```
-
-- 4 Run mesher_webapp and mesher_calculator respectively by cmd.
-
-  ```bash
-  cd /usr/local/src/mesher_calculator
-  export SPECIFIC_ADDR=127.0.0.1:4540
-  ./mesher
-  ```
-
-  ```bash
-  cd /usr/local/src/mesher_webapp
-  ./mesher
-  ```
-
-- 5 Run **httpserver_webapp**.
-
-  ```bash
-  cd /usr/local/src/httpserver_webapp
-  npm install
-  export http_proxy=http://127.0.0.1:30101
-  node ./httpserver_webapp.js
-  ```
-
-- 6 Run **httpserver_calculator** program as BMI calculator. You need to install python2.7 and this service relies on package BaseHTTPServer.
-
-  ```bash
-  cd /usr/local/src/httpserver_calculator
-  ./httpserver_calculator.py
-  ```
-
-## Start testing
-
-- 1 Open url <http://192.168.88.64:30103> in browser(You need to start the front service of the service-center. Referring <http://servicecomb.apache.org/docs/service-center/install/#run-with-release-package>). You can see services information in web. The name **webapp** represents the **mesher_webapp** which is the service name configured in microservice.yaml. The name **calculator** represents the **mesher_calculator** which is the service name configured in microservice.yaml. **SERVICE [...]
-
-  ![Service-center-monitoring](/assets/images/mesher/mesher-servercenter.png)
-
-- 2 Open <http://192.168.88.64:4597> in browser and you can see the following interface.
-
-  ![mesher_calculatormi-test](/assets/images/mesher/mesher-testinit.png)
-
-- 3 Enter the parameters (180, 70) and click submit.
-
-  ![mesher-testhttp](/assets/images/mesher/mesher-testpythonhttp.png)
-
-# What's next
-
-- Read [mesher quick start advance](/docs/products/mesher/advance/)
diff --git a/_docs/products/mesher/service-management.md b/_docs/products/mesher/service-management.md
deleted file mode 100644
index 6db5f63..0000000
--- a/_docs/products/mesher/service-management.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: Service Management
-lang: en
-ref: service-management
-permalink: /docs/products/mesher/service-management/
-excerpt: Describe how to use the service management capabilities provided by mesher
-last_modified_at: 2019-08-08T14:01:43.000Z
----
-
-- Service management is mainly used to effectively control and manage a large number of microservices in distributed systems. This guide will show you how to use the service management capabilities provided by **mesher**.
-
-# Before you start
-
-- Walk through [mesher-quick-start](/docs/products/mesher/quick-start/), [mesher-load-balance](/docs/products/mesher/load-balance/) and have **mesher display programs** running.
-
-# Grayscale release
-
-## Configuration
-
-- 1 Change the version number to **1.1.1** and **1.1.2** respectively in conf **microservice.yaml** of two **mesher_calculator** instances. Restart the mesher service and you can see that the service version number has changed in **servicecenter**.
-
-  ![mesher-ser-manage-ver](/assets/images/mesher/mesher-ser-manage-ver.png)
-
-- 2 Change weight options in configuration file router.yaml of mesher_webapp. Then restart service.
-
-  ```yaml
-  routeRule:
-    calculator:        #service name
-      - precedence: 2    #precedence of route rule
-        route:           #route rule list
-        - tags:
-            version: 1.1.1
-          weight: 70     #weight of 20%
-        - tags:
-            version: 1.1.2
-          weight: 30     #weight of 20%
-  ```
-
-## Verification
-
-- Click the _Submit_ button repeatedly and you can see that the BMI Instance ID keep changing according to the weight configuration.
-
-# Circuit breaker
-
-## Configuration
-
-- 1 Change the circuit breaker configuration in conf chassis.yaml of mesher_webapp.
-
-  ```yaml
-  isolation:
-    Consumer:
-      timeout:
-        enabled: true
-      timeoutInMilliseconds: 1000            
-      maxConcurrentRequests: 1
-  circuitBreaker:
-    Consumer:
-      enabled: true
-      forceOpen: false
-      forceClosed: false
-      sleepWindowInMilliseconds: 10000    
-      requestVolumeThreshold: 1          
-      errorThresholdPercentage: 1
-  fallback:
-    Consumer:
-      enabled: true
-      maxConcurrentRequests: 1
-  fallbackpolicy:
-    Consumer:
-      policy: returnnull
-  ```
-
-- 2 Stop the service instances in directory test_balance.
-
-## Verification
-
-- 1 The circuit breaker of mesher_webapp takes effect when a negative parameter is passed in. The first picture is the log of **mesher_webapp**. The second picture is the return value when inputing negative parameter. The third picture is the return value when the circuit breaker of mesher_webapp takes effect.
-
-  ![mesher-circuitbreaker](/assets/images/mesher/mesher-circuitbreaker.png)
-
-  ![mesher-circuitbreaker-ret](/assets/images/mesher/mesher-circuitbreaker-ret.png)
-
-  ![mesher-circuitbreaker-ret-nil](/assets/images/mesher/mesher-circuitbreaker-ret-nil.png)
-
-- 2 The service is automatically restored after 10 seconds because of the conf parameter **sleepWindowInMilliseconds**.
-
-# What's next
-
-- Read [mesher distributed tracing](/docs/products/mesher/distributed-tracing/)
-
-- More about [service management](/docs/users/service-configurations/)
diff --git a/_docs/products/pack/dataconsistency.md b/_docs/products/pack/dataconsistency.md
deleted file mode 100644
index e289a1e..0000000
--- a/_docs/products/pack/dataconsistency.md
+++ /dev/null
@@ -1,462 +0,0 @@
----
-title: "Data consistency solution"
-lang: en
-ref: dataconsistency
-permalink: /docs/products/pack/dataconsistency/
-excerpt: "Introduce how to use Saga data consistency solution provided by ServiceComb"
-last_modified_at: 2017-09-03T10:01:43-04:00
----
-
-{% include toc %}
-This demo shows you how to use the Saga solution provided by ServiceComb to ensure the microservice for data consistency.
-
-With microservice architecture, each of the services may have its own database technology and it's not feasible to ensure all transactions on these services are either committed or rolled back with database. In this demo, we make use of Saga to ensure eventual data consistency among services, the payment is only executed after car rental, flight booking, and hotel-reservation are completed.
-
-Travel application demo including four services
-- flight booking service
-- car rental service
-- hotel reservation service
-- payment service
-
-![Saga-demo]({{ site.url }}{{ site.baseurl }}/assets/images/saga-demo.png)
-
-## Running Demo
-
-Note, demo is in the [ServiceComb-Saga](https://github.com/apache/servicecomb-saga) project.
-
-1. Prerequisites
-- [Oracle JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
-- [Maven 3.x](https://maven.apache.org/install.html)
-- [Docker](https://www.docker.com/get-docker)
-- [MySQL](https://dev.mysql.com/downloads/)
-- [Service Center](https://github.com/apache/servicecomb-service-center)
-- [Docker compose](https://docs.docker.com/compose/install/)
-
-2. Configuration
-	Set service center address of each microservice in *microservice.yaml* file
-
-	```yaml
-	APPLICATION_ID: saga
-	service_description:
-	  name: flight-booking-service
-	  version: 0.0.1
-	servicecomb:
-	  service:
-	    registry:
-	      address: http://sc.servicecomb.io:30100 #choose Service Center provided by ServiceComb
-	  rest:
-	    address: 0.0.0.0:8080
-	  handler:
-	    chain:
-	      Consumer:
-	        default: loadbalance
-	```
-
-	Set deployment script in *saga-demo/docker-compose.yaml* file
-
-	```yaml
-	version: '2.1'
-
-	services:
-	  service-center: #choose Service Center image provided by ServiceComb
-	    image: "servicecomb/service-center"
-	    hostname: service-center
-	    ports:
-	      - "30100:30100"
-
-	  mysql:  #choose mysql image with 5.7 version
-	    image: "mysql/mysql-server:5.7"
-	    hostname: mysql
-	    environment:
-	      - MYSQL_ROOT_PASSWORD=password
-	      - MYSQL_DATABASE=saga
-	      - MYSQL_USER=saga
-	      - MYSQL_PASSWORD=password
-	    ports:
-	      - "3306:3306"
-	    healthcheck:
-	        test: ["CMD-SHELL", "nc -z localhost 3306 &> /dev/null; echo $$?"]
-	        interval: 30s
-	        timeout: 10s
-	        retries: 5
-
-	  car-rental-service:
-	    image: "car-rental-service:0.0.2-SNAPSHOT"
-	    hostname: car
-	    links:
-	      - "service-center:sc.servicecomb.io"
-	    ports:
-	      - "8080:8080"
-
-	  flight-booking-service:
-	    image: "flight-booking-service:0.0.2-SNAPSHOT"
-	    hostname: flight
-	    links:
-	      - "service-center:sc.servicecomb.io"
-	    ports:
-	      - "8081:8080"
-
-	  hotel-reservation-service:
-	    image: "hotel-reservation-service:0.0.2-SNAPSHOT"
-	    hostname: hotel
-	    links:
-	      - "service-center:sc.servicecomb.io"
-	    ports:
-	      - "8082:8080"
-
-	  payment-service:
-	    image: "payment-service:0.0.2-SNAPSHOT"
-	    hostname: payment
-	    links:
-	      - "service-center:sc.servicecomb.io"
-	    ports:
-	      - "8080"
-
-	  saga:
-	    image: "saga-spring:0.0.2-SNAPSHOT"
-	    hostname: saga
-	    links:
-	      - "mysql:mysql.servicecomb.io"
-	      - "service-center:sc.servicecomb.io"
-	      - "car-rental-service:car.servicecomb.io"
-	      - "flight-booking-service:flight.servicecomb.io"
-	      - "hotel-reservation-service:hotel.servicecomb.io"
-	      - "payment-service:payment.servicecomb.io"
-	    environment:
-	      - JAVA_OPTS=-Dspring.profiles.active=prd,servicecomb -Dcse.service.registry.address=http://sc.servicecomb.io:30100
-	    ports:
-	      - "8083:8080"
-	    depends_on:
-	      mysql:
-	        condition: service_healthy
-	```
-
-3. Run the following command to create docker images in saga project root folder
-
-	```bash
-	mvn package -DskipTests -Pdocker -Pdemo
-	```
-
-4. Start application up in saga/saga-demo/ with the following command
-
-	```bash
-	docker-compose up
-	```
-
-## Verify services
-
-1. Use [Saga API](https://github.com/apache/servicecomb-saga/blob/master/docs/api/api.md) to set request content and save it to *request.json*
-
-	```json
-	{
-	  "policy": "BackwardRecovery",
-	  "requests": [
-	    {
-	      "id": "request-car",
-	      "type": "rest",
-	      "serviceName": "car-rental-service",
-	      "transaction": {
-	        "method": "post",
-	        "path": "/rentals",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      },
-	      "compensation": {
-	        "method": "put",
-	        "path": "/rentals",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      }
-	    },
-	    {
-	      "id": "request-hotel",
-	      "type": "rest",
-	      "serviceName": "hotel-reservation-service",
-	      "transaction": {
-	        "method": "post",
-	        "path": "/reservations",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      },
-	      "compensation": {
-	        "method": "put",
-	        "path": "/reservations",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      }
-	    },
-	    {
-	      "id": "request-flight",
-	      "type": "rest",
-	      "serviceName": "flight-booking-service",
-	      "transaction": {
-	        "method": "post",
-	        "path": "/bookings",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      },
-	      "compensation": {
-	        "method": "put",
-	        "path": "/bookings",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      }
-	    },
-	    {
-	      "id": "request-payment",
-	      "type": "rest",
-	      "serviceName": "payment-service",
-	      "parents": [
-	        "request-car",
-	        "request-flight",
-	        "request-hotel"
-	      ],
-	      "transaction": {
-	        "method": "post",
-	        "path": "/payments",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      },
-	      "compensation": {
-	        "method": "put",
-	        "path": "/payments",
-	        "params": {
-	          "form": {
-	            "customerId": "mike"
-	          }
-	        }
-	      }
-	    }
... 51342 lines suppressed ...