http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/08e1b43f/content/cn/developers/submit-codes/index.html
----------------------------------------------------------------------
diff --git a/content/cn/developers/submit-codes/index.html 
b/content/cn/developers/submit-codes/index.html
new file mode 100644
index 0000000..2e7afd4
--- /dev/null
+++ b/content/cn/developers/submit-codes/index.html
@@ -0,0 +1,567 @@
+<!doctype html>
+<!--
+  Minimal Mistakes Jekyll Theme 4.4.1 by Michael Rose
+  Copyright 2017 Michael Rose - mademistakes.com | @mmistakes
+  Free for personal and commercial use under the MIT license
+  https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt
+-->
+<html lang="cn" class="no-js">
+  <head>
+    <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>代码提交指南 - Apache incubator ServiceComb</title>
+
+
+
+
+<meta name="description" content="介绍如何向 ServiceComb 项目提交代ç 
">
+
+
+
+
+<meta name="author" content="">
+
+<meta property="og:locale" content="cn">
+<meta property="og:site_name" content="Apache incubator ServiceComb">
+<meta property="og:title" content="代码提交指南">
+
+
+  <link rel="canonical" 
href="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/developers/submit-codes/";>
+  <meta property="og:url" 
content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/developers/submit-codes/";>
+
+
+
+  <meta property="og:description" content="介绍如何向 ServiceComb 
项目提交代码">
+
+
+
+  <meta name="twitter:site" content="@ServiceComb">
+  <meta name="twitter:title" content="代码提交指南">
+  <meta name="twitter:description" content="介绍如何向 ServiceComb 
项目提交代码">
+  <meta name="twitter:url" content="">
+
+  
+    <meta name="twitter:card" content="summary">
+    
+  
+
+  
+
+
+
+  
+
+  
+
+
+
+
+
+
+
+
+
+
+
+
+  <script type="application/ld+json">
+    {
+      "@context" : "http://schema.org";,
+      "@type" : "Person",
+      "name" : "Apache incubator ServiceComb",
+      "url" : "http://github.com/pages/ServiceComb/servicesomb.github.io";,
+      "sameAs" : null
+    }
+  </script>
+
+
+
+  <meta name="google-site-verification" 
content="HvJjNd7vvJ-yjSTHlBiIWEYxp_Hrz-PYEY5Idz9LRcA" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="/feed.xml" type="application/atom+xml" rel="alternate" 
title="Apache incubator ServiceComb Feed">
+
+<!-- http://t.co/dKP3o1e -->
+<meta name="HandheldFriendly" content="True">
+<meta name="MobileOptimized" content="320">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+<script>
+  document.documentElement.className = 
document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
+</script>
+<script 
src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js";></script>
+<script src="/assets/js/prism.js"></script>
+
+<script type="text/javascript" async
+  
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML";>
+</script>
+
+<link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css";
 
integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M"
 crossorigin="anonymous">
+
+<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"; 
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
 crossorigin="anonymous"></script>
+<script 
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"; 
integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4"
 crossorigin="anonymous"></script>
+<script 
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"; 
integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1"
 crossorigin="anonymous"></script>
+<!-- For all browsers -->
+<link rel="stylesheet" href="/assets/css/main.css">
+<link rel="stylesheet" href="/assets/css/prism.css">
+
+<!--[if lte IE 9]>
+  <style>
+    /* old IE unsupported flexbox fixes */
+    .greedy-nav .site-title {
+      padding-right: 3em;
+    }
+    .greedy-nav button {
+      position: absolute;
+      top: 0;
+      right: 0;
+      height: 100%;
+    }
+  </style>
+<![endif]-->
+
+<meta http-equiv="cleartype" content="on">
+
+    <!-- start custom head snippets -->
+
+<!-- insert favicons. use http://realfavicongenerator.net/ -->
+<link 
href="https://fonts.cat.net/css?family=Roboto:400,500,700|Source+Code+Pro" 
rel="stylesheet">
+<script src="/assets/js/custom.js"></script>
+<!-- end custom head snippets -->
+
+  </head>
+
+  <body class="layout--single">
+
+    <!--[if lt IE 9]>
+<div class="notice--danger align-center" style="margin: 0;">You are using an 
<strong>outdated</strong> browser. Please <a 
href="http://browsehappy.com/";>upgrade your browser</a> to improve your 
experience.</div>
+<![endif]-->
+    <div class="masthead">
+  <div class="masthead__inner-wrap">
+    <div class="masthead__menu">
+      <nav id="site-nav" class="greedy-nav">
+             
+          <a class="site-title active" href="/cn"><img 
src="//assets/images/ServiceComb-logo-1.png"></a>
+             
+        <ul class="visible-links">
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/docs/quick-start/">快速入门</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/users/">用户手册</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a class="active" href="/cn/developers/">开发者手册</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/year-archive/">博文</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/faqs/">常见问题</a>
+              
+            </li>
+          
+        </ul>
+        <button><div class="navicon"></div></button>
+        <ul class="hidden-links hidden"></ul>
+        <div class="nav-lang">
+          
+            
+            
+            <a href=/developers/submit-codes/>English</a>
+          
+        </div>
+      </nav>
+    </div>
+  </div>
+</div>
+
+
+    
+
+
+
+<div id="main" role="main">
+  
+  <div class="sidebar sticky">
+      
+      <div class="back-to-home">首页 > <a href="/cn/">ServiceComb</a></div>
+      
+  
+  
+    
+      
+      
+      
+    
+    
+      
+
+<nav class="nav__list">
+  
+  <input id="ac-toc" name="accordion-toc" type="checkbox" />
+  <label for="ac-toc">切换菜单</label>
+  <ul class="nav__items">
+    
+      <li>
+        
+          
+          
+
+          <a href="/cn/developers/"><span class="nav__sub-title 
nav__sub-title-with-url">开发者指南</span></a>
+        
+
+        
+      </li>
+    
+      <li>
+        
+          
+          
+
+          <a href="/cn/developers/setup-develop-environment/"><span 
class="nav__sub-title nav__sub-title-with-url">开发环境准备</span></a>
+        
+
+        
+      </li>
+    
+      <li>
+        
+          
+          
+
+          <a href="/cn/developers/submit-codes/"><span class="nav__sub-title 
nav__sub-title-with-url">代码提交指南</span></a>
+        
+
+        
+      </li>
+    
+  </ul>
+</nav>
+
+    
+  
+  </div>
+
+
+
+  <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
+    <meta itemprop="headline" content="代码提交指南">
+    <meta itemprop="description" content="介绍如何向 ServiceComb 
项目提交代码">
+    
+    <meta itemprop="dateModified" content="September 08, 2017">
+
+    <div class="page__inner-wrap">
+      
+        
+          <header>
+            <h1 class="page__title" itemprop="headline">代码提交指南
+</h1>
+            
+          </header>
+        
+      
+
+      <section class="page__content" itemprop="text">
+        <aside class="sidebar__right">
+<nav class="toc">
+    <!-- <header><h4 class="nav__title"><i class="fa fa-file-text"></i> 
在本页上</h4></header> -->
+<ul class="toc__menu" id="markdown-toc">
+  <li><a href="#贡献途径" 
id="markdown-toc-贡献途径">贡献途径</a></li>
+  <li><a href="#运行测试" 
id="markdown-toc-运行测试">运行测试</a></li>
+  <li><a href="#pr指南" id="markdown-toc-pr指南">PR指南</a>    <ul>
+      <li><a href="#fork仓库" 
id="markdown-toc-fork仓库">Fork仓库</a></li>
+      <li><a href="#配置git和提交修改" id="markdown-toc-é…
ç½®git和提交修改">配置git和提交修改</a></li>
+      <li><a href="#创建pr" id="markdown-toc-创建pr">创建PR</a></li>
+      <li><a href="#冲突解决" 
id="markdown-toc-冲突解决">冲突解决</a></li>
+    </ul>
+  </li>
+</ul>
+
+  </nav>
+</aside>
+
+<h2 id="贡献途径">贡献途径</h2>
+<p>  ServiceComb正在不断成长中,也希望能找到更多志同道合的同伴一起成长和进步。向ServiceComb
 贡献的途径有多种:</p>
+<ul>
+  <li>完善文档。完善网站上的文档或者
项目中的介绍文档和API说明文档。å…
¶ä¸­ï¼Œç½‘站文档的完善可通过网站最底端的<strong>报告本网页问题</strong>或<strong>在Github上编辑此页</strong>对文档å†
…容进行完善。</li>
+  <li>
+    <p>实现功能特性需求或修复BUG。项目的功能特性需求或者
已发现但未修复的BUG都会在项目中的issue处看到,以<a 
href="https://github.com/ServiceComb/saga/issues";>Saga</a>项目为例,一般都会带有类似
 <strong>enhancement</strong> 或类似 <strong>bug</strong> 的æ 
‡ç­¾æ¥è¯´æ˜Žè¿™æ˜¯åŠŸèƒ½éœ€æ±‚è¿˜æ˜¯BUG,读者可以结合自己的å…
´è¶£ç‚¹æ¥é€‰æ‹©ã€‚此外,您也可以通过日常使用或阅读代ç 
æ—¶å‘现BUG并以Issue的方式进行描述并针对该BUG提交PR,帮助我们进一步改进。同时,也欢迎您提出需求并在实现后提交PR。</p>
+
+    <p><img src="/assets/images/find-features-by-example.png" alt="寻觅
功能需求示例" class="align-center" /></p>
+  </li>
+</ul>
+
+<h2 id="运行测试">运行测试</h2>
+<p>  在您提交代码前,请先按ç…
§é¡¹ç›®README中说明的自动测试部分对代ç 
çš„功能性和实现上的正确性进行验证。</p>
+
+<h2 id="pr指南">PR指南</h2>
+<p>  在 <a href="https://github.com/ServiceComb";>Github</a> 
上面可以很方便地提交 <a 
href="https://help.github.com/articles/about-pull-requests/";>Pull Request 
(PR)</a>,下面将以本网站项目<a 
href="https://github.com/ServiceComb/ServiceComb.github.io";>ServiceComb/ServiceComb.github.io</a>
 为例(如果是å…
¶ä»–项目,请替换项目名ServiceComb.github.io)。</p>
+
+<h3 id="fork仓库">Fork仓库</h3>
+
+<p>  进入 ServiceComb/ServiceComb.github.io 的 <a 
href="https://github.com/ServiceComb/ServiceComb.github.io";>github 页面</a> 
,点击右上角按钮 <code class="highlighter-rouge">Fork</code> 进行 
Fork。</p>
+
+<p><img src="/assets/images/fork-repo.jpg" 
alt="体质指数应用运行界面" class="align-center" /></p>
+
+<h3 id="配置git和提交修改">配置git和提交修改</h3>
+
+<ul>
+  <li>
+    <p>将代码克隆到本地:</p>
+
+    <div class="language-shell highlighter-rouge"><pre 
class="highlight"><code>git clone 
https://github.com/&lt;your_github_name&gt;/ServiceComb.github.io.git
+</code></pre>
+    </div>
+
+    <p>注意:请将 &lt;your_github_name&gt; 
替换为您的github名字。</p>
+  </li>
+</ul>
+
+<p>  clone完成后,origin会默认指向github上的远程fork地址。</p>
+
+<ul>
+  <li>
+    <p>将 ServiceComb/ServiceComb.github.io 添加
为本地仓库的远程分支 upstream:</p>
+
+    <div class="language-shell highlighter-rouge"><pre 
class="highlight"><code><span class="nb">cd </span>ServiceComb.github.io
+git remote add upstream 
https://github.com/ServiceComb/ServiceComb.github.io.git
+</code></pre>
+    </div>
+  </li>
+  <li>
+    <p>检查远程仓库设置:</p>
+
+    <div class="language-shell highlighter-rouge"><pre 
class="highlight"><code>git remote -v
+origin https://github.com/&lt;your_github_name&gt;/ServiceComb.github.io.git 
<span class="o">(</span>fetch<span class="o">)</span>
+origin    
https://github.com/&lt;your_github_name&gt;/ServiceComb.github.io.git <span 
class="o">(</span>push<span class="o">)</span>
+upstream  https://github.com/ServiceComb/ServiceComb.github.io.git <span 
class="o">(</span>fetch<span class="o">)</span>
+upstream  https://github.com/ServiceComb/ServiceComb.github.io.git <span 
class="o">(</span>push<span class="o">)</span>
+</code></pre>
+    </div>
+  </li>
+  <li>
+    <p>新建分支以便在分支上做修改:</p>
+
+    <div class="language-shell highlighter-rouge"><pre 
class="highlight"><code>git checkout -b &lt;your_branch_name&gt;
+</code></pre>
+    </div>
+  </li>
+</ul>
+
+<p>  注意: &lt;your_branch_name&gt; 
为您自定义的分支名字。</p>
+
+<p>  创建完成后可进行代码更改。</p>
+
+<ul>
+  <li>
+    <p>提交代码到远程分支:</p>
+
+    <div class="language-shell highlighter-rouge"><pre 
class="highlight"><code>git commit -a -m <span 
class="s2">"&lt;you_commit_message&gt;"</span>
+git push origin &lt;your_branch_name&gt;
+</code></pre>
+    </div>
+  </li>
+</ul>
+
+<p>  更多 git 使用方法请访问:<a 
href="https://www.atlassian.com/git/tutorials/setting-up-a-repository";>git 
使用</a>,这里不赘述。</p>
+
+<h3 id="创建pr">创建PR</h3>
+
+<p>  在浏览器切换到自己的 github 
页面,切换分支到提交的分支 &lt;your_branch_name&gt; 
,依次点击 <code class="highlighter-rouge">New pull request</code> 和 
<code class="highlighter-rouge">Create pull request</code> 
按钮进行创建,如下图所示:</p>
+
+<p class="figure-caption"><img src="/assets/images/new-pr.jpg" 
alt="体质指数应用运行界面" class="align-center" />
+fig-1 New pull request</p>
+
+<p class="figure-caption"><img src="/assets/images/create-pr.jpg" 
alt="体质指数应用运行界面" class="align-center" />
+fig-2 Create pull request</p>
+
+<p>  至此,您的PR创建完成,更多关于 PR 请阅读 <a 
href="https://help.github.com/categories/collaborating-with-issues-and-pull-requests/";>collaborating-with-issues-and-pull-requests</a>
 。</p>
+
+<h3 id="冲突解决">冲突解决</h3>
+<p>  提交PR时的代ç 
å†²çªä¸€èˆ¬æ˜¯ç”±äºŽå¤šäººç¼–辑同一个文件引起的,解决冲突主要通过以下步骤即可:</p>
+<ol>
+  <li>切换至主分支
+    <div class="language-bash highlighter-rouge"><pre 
class="highlight"><code>git checkout master
+</code></pre>
+    </div>
+  </li>
+  <li>同步远端主分支至本地
+    <div class="language-bash highlighter-rouge"><pre 
class="highlight"><code>git pull upstream master
+</code></pre>
+    </div>
+  </li>
+  <li>切换回刚才的分支(假设分支名为fix)
+    <div class="language-bash highlighter-rouge"><pre 
class="highlight"><code>git checkout fix 
+</code></pre>
+    </div>
+  </li>
+  <li>进行rebase
+    <div class="language-bash highlighter-rouge"><pre 
class="highlight"><code>git rebase -i master
+</code></pre>
+    </div>
+    
<p>此时会弹出修改记录的文件,一般直接保存即可。然后会提示哪些文件出现了冲突,此时可打开冲突文件对冲突部分进行修改,将提示的所有冲突文件的冲突都解决后,执行</p>
+    <div class="language-bash highlighter-rouge"><pre 
class="highlight"><code>git add .
+git rebase --continue
+</code></pre>
+    </div>
+    <p>依此往复,直至屏幕出现类似 <em>rebase successful</em> 字æ 
·å³å¯ï¼Œæ­¤æ—¶æ‚¨å¯ä»¥è¿›è¡Œå¾€æäº¤PR的分支进行更新:</p>
+    <div class="language-bash highlighter-rouge"><pre 
class="highlight"><code>git push -f origin fix
+</code></pre>
+    </div>
+  </li>
+</ol>
+
+        
+      </section>
+
+      <footer class="page__meta">
+        
+        
+
+
+        
+      </footer>
+
+      
+
+      
+
+    </div>
+
+    
+  </article>
+
+  
+  
+</div>
+
+
+    <script async 
src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
+    <div align="center" style="margin: 0 0;">
+    <ins class="adsbygoogle"
+         style="display:block; border-bottom: initial;"
+         data-ad-client="ca-pub-7328585512091257"
+         data-ad-slot="3049671934"
+         data-ad-format="auto"></ins>
+    </div>
+
+    <div class="page__footer">
+      <footer>
+        <!-- start custom footer snippets -->
+
+<!-- end custom footer snippets -->
+        <div class="container">
+  <div class="row justify-content-md-center">
+    
+    <div class="col">
+      <ul>
+        <p class="header">资源</p>
+        <li><a href="/cn/docs/quick-start/">快速入门</a></li>
+        <li><a href="/cn/users/user-guide/">用户指南</a></li>
+        <li><a href="/cn/slides/">资料</a></li>
+        <li><a href="/cn/users/faq/">常见问题</a></li>
+      </ul>
+    </div>
+    <div class="col">
+      <ul>
+        <p class="header">贡献</p>
+        <li><a 
href="https://github.com/ServiceComb/ServiceComb.github.io/issues/new?title=Issue
 with _developers/cn/submit-codes.md">报告本网页问题</a></li>
+        <li><a 
href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_developers/cn/submit-codes.md";>在Github上编辑此页</a></li>
+        <li><a href="/cn/developers/submit-codes/">代码提交指南</a></li>
+      </ul>
+    </div>
+    <div class="col">
+      <ul class="social-icons">
+        <p class="header">社区</p>
+        <li>
+            <a 
href="https://groups.google.com/forum/#!forum/servicecomb-developers"; 
target="_blank"><span class="group">开发者</span></a> |
+            <a 
href="https://groups.google.com/forum/#!forum/servicecomb-users"; 
target="_blank">用户</span></a>
+        </li>
+        <li>
+            <a href="http://github.com/ServiceComb"; target="_blank"><span 
class="github">Github</span></a>
+        </li>
+        <li>
+            <a href="https://twitter.com/ServiceComb"; target="_blank"><span 
class="twitter">Twitter</span></a>
+        </li>
+        <li>
+            <a href="/feed.xml" target="_blank"><span 
class="rss">Feed</span></a>
+        </li>
+      </ul>
+    </div>
+  </div>
+</div>
+<div class="page__footer-bottom">
+  <div>&copy; 2017 Apache incubator ServiceComb. 技术来自于 <a 
href="http://jekyllrb.com"; rel="nofollow">Jekyll</a> &amp; <a 
href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/"; 
rel="nofollow">Minimal Mistakes</a>.</div>
+</div>
+
+      </footer>
+    </div>
+
+    <script src="/assets/js/main.min.js"></script>
+
+
+
+
+  <script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+  
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-101622733-1', 'auto');
+  ga('send', 'pageview');
+</script>
+
+
+
+
+
+
+
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/08e1b43f/content/cn/docs/autoscale-on-company/index.html
----------------------------------------------------------------------
diff --git a/content/cn/docs/autoscale-on-company/index.html 
b/content/cn/docs/autoscale-on-company/index.html
new file mode 100644
index 0000000..ae19e9f
--- /dev/null
+++ b/content/cn/docs/autoscale-on-company/index.html
@@ -0,0 +1,885 @@
+<!doctype html>
+<!--
+  Minimal Mistakes Jekyll Theme 4.4.1 by Michael Rose
+  Copyright 2017 Michael Rose - mademistakes.com | @mmistakes
+  Free for personal and commercial use under the MIT license
+  https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt
+-->
+<html lang="cn" class="no-js">
+  <head>
+    <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>微服务化后的按需精细化资源控制 - Apache incubator 
ServiceComb</title>
+
+
+
+
+<meta name="description" 
content="本篇将介绍使用kubernetes的弹性伸缩能力在微服务化的Company中实现按需精细化资源控制的实践">
+
+
+
+
+<meta name="author" content="Zen Lin">
+
+<meta property="og:locale" content="cn">
+<meta property="og:site_name" content="Apache incubator ServiceComb">
+<meta property="og:title" 
content="微服务化后的按需精细化资源控制">
+
+
+  <link rel="canonical" 
href="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/docs/autoscale-on-company/";>
+  <meta property="og:url" 
content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/docs/autoscale-on-company/";>
+
+
+
+  <meta property="og:description" 
content="本篇将介绍使用kubernetes的弹性伸缩能力在微服务化的Company中实现按需精细化资源控制的实践">
+
+
+
+  <meta name="twitter:site" content="@ServiceComb">
+  <meta name="twitter:title" 
content="微服务化后的按需精细化资源控制">
+  <meta name="twitter:description" 
content="本篇将介绍使用kubernetes的弹性伸缩能力在微服务化的Company中实现按需精细化资源控制的实践">
+  <meta name="twitter:url" content="">
+
+  
+    <meta name="twitter:card" content="summary">
+    
+  
+
+  
+    <meta name="twitter:creator" content="@">
+  
+
+
+
+  
+
+  
+
+
+
+
+
+  <meta property="og:type" content="article">
+  <meta property="article:published_time" content="2017-08-24T00:00:00+08:00">
+
+
+
+
+
+
+
+
+  <script type="application/ld+json">
+    {
+      "@context" : "http://schema.org";,
+      "@type" : "Person",
+      "name" : "Apache incubator ServiceComb",
+      "url" : "http://github.com/pages/ServiceComb/servicesomb.github.io";,
+      "sameAs" : null
+    }
+  </script>
+
+
+
+  <meta name="google-site-verification" 
content="HvJjNd7vvJ-yjSTHlBiIWEYxp_Hrz-PYEY5Idz9LRcA" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="/feed.xml" type="application/atom+xml" rel="alternate" 
title="Apache incubator ServiceComb Feed">
+
+<!-- http://t.co/dKP3o1e -->
+<meta name="HandheldFriendly" content="True">
+<meta name="MobileOptimized" content="320">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+<script>
+  document.documentElement.className = 
document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
+</script>
+<script 
src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js";></script>
+<script src="/assets/js/prism.js"></script>
+
+<script type="text/javascript" async
+  
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML";>
+</script>
+
+<link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css";
 
integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M"
 crossorigin="anonymous">
+
+<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"; 
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
 crossorigin="anonymous"></script>
+<script 
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"; 
integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4"
 crossorigin="anonymous"></script>
+<script 
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"; 
integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1"
 crossorigin="anonymous"></script>
+<!-- For all browsers -->
+<link rel="stylesheet" href="/assets/css/main.css">
+<link rel="stylesheet" href="/assets/css/prism.css">
+
+<!--[if lte IE 9]>
+  <style>
+    /* old IE unsupported flexbox fixes */
+    .greedy-nav .site-title {
+      padding-right: 3em;
+    }
+    .greedy-nav button {
+      position: absolute;
+      top: 0;
+      right: 0;
+      height: 100%;
+    }
+  </style>
+<![endif]-->
+
+<meta http-equiv="cleartype" content="on">
+
+    <!-- start custom head snippets -->
+
+<!-- insert favicons. use http://realfavicongenerator.net/ -->
+<link 
href="https://fonts.cat.net/css?family=Roboto:400,500,700|Source+Code+Pro" 
rel="stylesheet">
+<script src="/assets/js/custom.js"></script>
+<!-- end custom head snippets -->
+
+  </head>
+
+  <body class="layout--single">
+
+    <!--[if lt IE 9]>
+<div class="notice--danger align-center" style="margin: 0;">You are using an 
<strong>outdated</strong> browser. Please <a 
href="http://browsehappy.com/";>upgrade your browser</a> to improve your 
experience.</div>
+<![endif]-->
+    <div class="masthead">
+  <div class="masthead__inner-wrap">
+    <div class="masthead__menu">
+      <nav id="site-nav" class="greedy-nav">
+             
+          <a class="site-title active" href="/cn"><img 
src="//assets/images/ServiceComb-logo-1.png"></a>
+             
+        <ul class="visible-links">
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/docs/quick-start/">快速入门</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/users/">用户手册</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/developers/">开发者手册</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/year-archive/">博文</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/faqs/">常见问题</a>
+              
+            </li>
+          
+        </ul>
+        <button><div class="navicon"></div></button>
+        <ul class="hidden-links hidden"></ul>
+        <div class="nav-lang">
+          
+            
+            
+            <a href=/docs/autoscale-on-company/>English</a>
+          
+        </div>
+      </nav>
+    </div>
+  </div>
+</div>
+
+
+    
+
+
+
+<div id="main" role="main">
+  
+  <div class="sidebar sticky">
+      
+      <div class="back-to-home">首页 > <a href="/cn/">ServiceComb</a></div>
+      
+  
+
+<div itemscope itemtype="http://schema.org/Person";>
+
+  
+
+  <div class="author__content">
+    <h3 class="author__name" itemprop="name">Zen Lin</h3>
+    
+      <p class="author__bio" itemprop="description">
+           
+             
+               To enjoy in opensource community.
+             
+           
+      </p>
+    
+  </div>
+
+  <div class="author__urls-wrapper">
+    <button class="btn btn--inverse">关注</button>
+    <ul class="author__urls social-icons">
+      
+
+      
+        <li>
+          <a href="http://zenlintechnofreak.github.io"; itemprop="url">
+            <i class="fa fa-fw fa-chain" aria-hidden="true"></i> 网站
+          </a>
+        </li>
+      
+
+      
+        <li>
+          <a href="mailto:[email protected]";>
+            <meta itemprop="email" content="[email protected]" />
+            <i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> 
电子邮箱
+          </a>
+        </li>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      <!--
+  <li>
+    <a href="http://link-to-whatever-social-network.com/user/"; 
itemprop="sameAs">
+      <i class="fa fa-fw" aria-hidden="true"></i> Custom Social Profile Link
+    </a>
+  </li>
+-->
+    </ul>
+  </div>
+</div>
+
+  
+  </div>
+
+
+
+  <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
+    <meta itemprop="headline" 
content="微服务化后的按需精细化资源控制">
+    <meta itemprop="description" 
content="本篇将介绍使用kubernetes的弹性伸缩能力在微服务化的Company中实现按需精细化资源控制的实践">
+    <meta itemprop="datePublished" content="August 24, 2017">
+    
+
+    <div class="page__inner-wrap">
+      
+        
+          <header>
+            <h1 class="page__title" 
itemprop="headline">微服务化后的按需精细化资源控制
+</h1>
+            
+              <p class="page__meta"><i class="fa fa-clock-o" 
aria-hidden="true"></i> 
+
+
+
+
+  少于 1 分钟 阅读
+
+</p>
+            
+          </header>
+        
+      
+
+      <section class="page__content" itemprop="text">
+        <p>  <a href="/cn/docs/company-on-kubernetes/">上文</a> 
介绍了在K8S上快速部署Company示例,本文将继续在K8S上演示使用K8S的弹性伸缩能力进行Company示例的按需精细化资源控制,以此体验微服务化给大家带来的好处。</p>
+
+<h2 id="环境准备">环境准备</h2>
+
+<h5 id="k8s环境准备">K8S环境准备:</h5>
+
+<p>  为使K8S具备弹性伸缩能力,需要先在K8S中安装
监控器Heapster和Grafana:</p>
+
+<p>  具体读者踩了坑后更新的heapster的安装脚本作者
放在:<a 
href="https://github.com/zenlinTechnofreak/LinuxCon-Beijing-WorkShop/tree/autoscal/kubernetes/heapster/deploy";>heapster</a>,可直接获取下载获取,需要调整一个参数,后直接运行kube.sh脚本进行安è£
…。</p>
+
+<div class="language-bash highlighter-rouge"><pre class="highlight"><code>vi 
LinuxCon-Beijing-WorkShop/kubernetes/heapster/deploy/kube-config/influxdb/heapster.yaml
+</code></pre>
+</div>
+
+<div class="language-yaml highlighter-rouge"><pre 
class="highlight"><code><span class="s">spec</span><span class="pi">:</span>
+  <span class="s">replicas</span><span class="pi">:</span> <span 
class="s">1</span>
+  <span class="s">template</span><span class="pi">:</span>
+    <span class="s">metadata</span><span class="pi">:</span>
+      <span class="s">labels</span><span class="pi">:</span>
+        <span class="s">task</span><span class="pi">:</span> <span 
class="s">monitoring</span>
+        <span class="s">k8s-app</span><span class="pi">:</span> <span 
class="s">heapster</span>
+    <span class="s">spec</span><span class="pi">:</span>
+      <span class="s">serviceAccountName</span><span class="pi">:</span> <span 
class="s">heapster</span>
+      <span class="s">containers</span><span class="pi">:</span>
+      <span class="pi">-</span> <span class="s">name</span><span 
class="pi">:</span> <span class="s">heapster</span>
+        <span class="s">image</span><span class="pi">:</span> <span 
class="s">gcr.io/google_containers/heapster-amd64:v1.4.1</span>
+        <span class="s">imagePullPolicy</span><span class="pi">:</span> <span 
class="s">IfNotPresent</span>
+        <span class="s">command</span><span class="pi">:</span>
+        <span class="pi">-</span> <span class="s">/heapster</span>
+<span class="c1">#集群内安装直接使用kubernetes</span>
+        <span class="pi">-</span> <span class="s">--source=kubernetes</span>
+<span class="c1">#集群外安装请直接将下面的服务地址替换为k8s 
api server地址</span>
+<span class="c1">#        - 
--source=kubernetes:http://10.229.43.65:6443?inClusterConfig=false</span>
+         <span class="pi">-</span> <span 
class="s">--sink=influxdb:http://monitoring-influxdb:8086</span>
+</code></pre>
+</div>
+
+<h5 id="启动company">启动Company:</h5>
+
+<p>  下载Comany支持弹性伸缩的代码:</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>git 
clone https://github.com/ServiceComb/ServiceComb-Company-WorkShop.git
+
+<span class="nb">cd </span>LinuxCon-Beijing-WorkShop/kubernetes/
+
+bash start-autoscale.sh 
+</code></pre>
+</div>
+
+<p>  在Company的deployment.yaml中, 增加
了如下限定资源的字段,这将限制每个pod被限制在200mill-core(1000毫core
 == 1 core)的cpu使用率以内。</p>
+
+<div class="language-yaml highlighter-rouge"><pre class="highlight"><code>    
<span class="s">resources</span><span class="pi">:</span>
+      <span class="s">limits</span><span class="pi">:</span>
+        <span class="s">cpu</span><span class="pi">:</span> <span 
class="s">200m</span>
+</code></pre>
+</div>
+<p>  在 start-autoscale.sh 
中,对每个deployment创建HPA(pod水平弹性伸缩器)资源,限定每个pod的副本数弹性伸缩时控制在1到10之间,并限定每个pod的cpuå
 ç”¨çŽ‡å°äºŽ50%,结合前面限定了200mcore,故
,每个pod的的平均cpu占
用率会被HPA通过弹性伸缩能力控制在100mcore以内。</p>
+
+<div class="language-shell highlighter-rouge"><pre 
class="highlight"><code><span class="c"># Create Horizontal Pod 
Autoscaler</span>
+kubectl autoscale deployment zipkin --cpu-percent<span class="o">=</span>50 
--min<span class="o">=</span>1 --max<span class="o">=</span>10
+kubectl autoscale deployment company-bulletin-board --cpu-percent<span 
class="o">=</span>50 --min<span class="o">=</span>1 --max<span 
class="o">=</span>10
+kubectl autoscale deployment company-worker --cpu-percent<span 
class="o">=</span>50 --min<span class="o">=</span>1 --max<span 
class="o">=</span>10
+kubectl autoscale deployment company-doorman --cpu-percent<span 
class="o">=</span>50 --min<span class="o">=</span>1 --max<span 
class="o">=</span>10
+kubectl autoscale deployment company-manager --cpu-percent<span 
class="o">=</span>50 --min<span class="o">=</span>1 --max<span 
class="o">=</span>10
+kubectl autoscale deployment company-beekeeper --cpu-percent<span 
class="o">=</span>50 --min<span class="o">=</span>1 --max<span 
class="o">=</span>10
+</code></pre>
+</div>
+
+<p>  当运行start-autoscale.sh之后,å…
·å¤‡å¼¹æ€§ä¼¸ç¼©å™¨çš„company已经被创建,可通过下面指令进行HPA的查询:</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code> 
kubectl get hpa
+</code></pre>
+</div>
+
+<h5 id="启动压测">启动压测:</h5>
+
+<div class="language-shell highlighter-rouge"><pre 
class="highlight"><code><span class="nb">export</span> <span 
class="nv">$HOST</span><span 
class="o">=</span>&lt;heapster-ip&gt;:&lt;heapster-port&gt;
+bash LinuxCon-Beijing-WorkShop/kubernetes/stress-test.sh
+</code></pre>
+</div>
+
+<p>  该脚本不断循环执行 1s内向Company请求计算 fibonacci 
数值200次,对Company造成请求压力:</p>
+
+<div class="language-shell highlighter-rouge"><pre 
class="highlight"><code><span class="nv">FIBONA_NUM</span><span 
class="o">=</span><span class="sb">`</span>curl -s -H <span 
class="s2">"Authorization: </span><span class="nv">$Authorization</span><span 
class="s2">"</span> -XGET <span class="s2">"http://</span><span 
class="nv">$HOST</span><span class="s2">/worker/fibonacci/term?n=6"</span><span 
class="sb">`</span>
+</code></pre>
+</div>
+
+<h2 id="测试过程与结果">测试过程与结果</h2>
+
+<p>  分别查看HPA状态以及Grafana,如下:</p>
+
+<p class="figure-caption"><img src="/assets/images/company-autoscale-1.png" 
alt="图1" class="align-center" />
+图1 启动阶段</p>
+
+<p class="figure-caption"><img src="/assets/images/company-autoscale-2.png" 
alt="图2" class="align-center" />
+图2 启动阶段</p>
+
+<p class="figure-caption"><img src="/assets/images/company-autoscale-3.png" 
alt="图3" class="align-center" />
+图3 过程</p>
+
+<p class="figure-caption"><img src="/assets/images/company-autoscale-4.png" 
alt="图4" class="align-center" />
+图4 结果</p>
+
+<p class="figure-caption"><img src="/assets/images/company-autoscale-5.png" 
alt="图5" class="align-center" />
+图5 结果</p>
+
+<p>  从以上过程可以分析出,以下几点:</p>
+
+<p>  1. 
压力主要集中在company-manager这个pod上,K8S的autoscaler通过弹性增åŠ
 è¯¥pod的副本数量,最终达到目标:每个pod的cpu占
用率低于限定值的50%(图5,Usage default company-manager/Request 
default company-manager = 192/600 
约等于图4中的33%),并保持稳定。</p>
+
+<p>  2. 在弹性伸缩过程中,在还没稳定前可能造成丢包
,如图3。</p>
+
+<p>  3. Company启动会导致系统资源负载暂时性加大,故
Grafana上看到的cpu占
用率曲线会呈现波峰状,但随着系统稳定运行后,HPA会按ç…
§ç³»ç»Ÿçš„稳定资源消耗准确找到匹é…
çš„副本数。图3中副本数已超过实际
所需3个,但随着系统稳定,最终还是稳定维持在3个副本。</p>
+
+<p>  4. 
在HPA以及Grafana可以看到缩放和报告数据都会有延迟,按ç…
§å®˜æ–¹æ–‡æ¡£è¯´æ³•,只有在最近3分钟内没有重新缩放的情
况下,才会进行放大。 
从最后一次重新缩放,缩小比例将等待5分钟。 
而且,只有在avg/ Target降低到0.9以下或者增加到1.1以上(10%
容差)的情况下,才可能会进行缩放。</p>
+
+<p>  以上,就是本次对Compan示例弹性伸缩的å…
¨è¿‡ç¨‹ï¼Œ<strong>Martin Fowler 在2014å¹´3月的<a 
href="http://martinfowler.com/articles/microservices.html";>文章
</a>中提到:</strong></p>
+
+<blockquote>
+  <p>  <strong>微服务是一种架构风æ 
¼ï¼Œä¸€ä¸ªå¤§åž‹å¤æ‚软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务ä»
…关注于完成一件任务并很好地完成该任务。在所有情
况下,每个任务代表着一个小的业务能力。</strong></p>
+</blockquote>
+
+<p>  <strong>国内实践微服务的先行者王磊å…
ˆç”Ÿä¹Ÿåœ¨ã€Šå¾®æœåŠ¡æž¶æž„ä¸Žå®žè·µã€‹ä¸€ä¹¦ä¸­è¿›è¡Œäº†å…
¨é¢è®ºè¿°ã€‚</strong></p>
+
+<p>  Company使用ServiceComb进行微服务化改造后,å…
·å¤‡äº†å¾®æœåŠ¡çš„å±žæ€§ï¼Œæ•…
可以对单个负载较大的company-manager这个微服务进行精细化的控制,达到按需的目的,相比ä¼
 
统单体架构来讲,这将大大帮助准确有效地化解应用瓶颈,提高资源的利用效率。</p>
+
+
+        
+      </section>
+
+      <footer class="page__meta">
+        
+        
+  
+
+
+  
+  
+  
+
+  <p class="page__taxonomy">
+    <strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> 标签: 
</strong>
+    <span itemprop="keywords">
+    
+      
+      
+      <a href="/tags/#kubernetes" class="page__taxonomy-item" 
rel="tag">kubernetes</a><span class="sep">, </span>
+    
+      
+      
+      <a href="/tags/#%E5%BC%B9%E6%80%A7%E4%BC%B8%E7%BC%A9" 
class="page__taxonomy-item" rel="tag">弹性伸缩</a>
+    
+    </span>
+  </p>
+
+
+
+
+
+        
+          
+            
+              <p class="page__date"><strong><i class="fa fa-fw fa-calendar" 
aria-hidden="true"></i> 最新的:</strong> <time 
datetime="2017-08-24T00:00:00+08:00">2017年8月24日</time></p>
+            
+          
+        
+      </footer>
+
+      <section class="page__share">
+  
+    <h4 class="page__share-title">分享</h4>
+  
+
+  <a 
href="https://twitter.com/intent/tweet?via=ServiceComb&text=微服务化后的按需精细化资源控制
 /cn/docs/autoscale-on-company/" class="btn btn--twitter" title="分享 
Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> 
Twitter</span></a>
+
+  <a 
href="https://www.facebook.com/sharer/sharer.php?u=/cn/docs/autoscale-on-company/";
 class="btn btn--facebook" title="分享 Facebook"><i class="fa fa-fw 
fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
+
+  <a href="https://plus.google.com/share?url=/cn/docs/autoscale-on-company/"; 
class="btn btn--google-plus" title="分享 Google Plus"><i class="fa fa-fw 
fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
+
+  <a 
href="https://www.linkedin.com/shareArticle?mini=true&url=/cn/docs/autoscale-on-company/";
 class="btn btn--linkedin" title="分享 LinkedIn"><i class="fa fa-fw 
fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
+</section>
+
+
+      
+  <nav class="pagination">
+    
+      <a href="/docs/autoscale-on-company/" class="pagination--pager" 
title="On-demand Resource Control for Micro-serviced Company by Autoscale
+">向前</a>
+    
+    
+      <a href="/docs/stress-test-on-company-with-jmeter-in-k8s/" 
class="pagination--pager" title="Stress test on Company Demo with Jmeter in 
Kubernetes Cluster
+">向后</a>
+    
+  </nav>
+
+
+    </div>
+
+    
+      <div class="page__comments">
+  
+  
+    <section id="static-comments">
+      
+        <!-- Start static comments -->
+        <div class="js-comments">
+          
+        </div>
+        <!-- End static comments -->
+
+        <!-- Start new comment form -->
+        <h4 class="page__comments-title">留下评论</h4>
+        <p 
class="small">您的电子邮箱地址并不会被展示。请填写标记为必
须的字段。 <span class="required">*</span></p>
+        <form id="new_comment" class="page__comments-form js-form form" 
method="post" 
action="https://api.staticman.net/v1/entry/ServiceComb/servicesomb.github.io/master";>
+          <div class="form__spinner">
+            <i class="fa fa-spinner fa-spin fa-3x fa-fw"></i>
+            <span class="sr-only">正在加载...</span>
+          </div>
+
+          <fieldset>
+            <label for="comment-form-message">评论 <small 
class="required">*</small></label>
+            <textarea type="text" rows="3" id="comment-form-message" 
name="fields[message]" tabindex="1"></textarea>
+            <div class="small help-block"><a 
href="https://daringfireball.net/projects/markdown/";>Markdown语法已支持。</a></div>
+          </fieldset>
+          <fieldset>
+            <label for="comment-form-name">姓名 <small 
class="required">*</small></label>
+            <input type="text" id="comment-form-name" name="fields[name]" 
tabindex="2" />
+          </fieldset>
+          <fieldset>
+            <label for="comment-form-email">电子邮箱 <small 
class="required">*</small></label>
+            <input type="email" id="comment-form-email" name="fields[email]" 
tabindex="3" />
+          </fieldset>
+          <fieldset>
+            <label for="comment-form-url">网站(可选)</label>
+            <input type="url" id="comment-form-url" name="fields[url]" 
tabindex="4"/>
+          </fieldset>
+          <fieldset class="hidden" style="display: none;">
+            <input type="hidden" name="options[slug]" 
value="autoscale-on-company">
+            <label for="comment-form-location">Not used. Leave blank if you 
are a human.</label>
+            <input type="text" id="comment-form-location" 
name="fields[hidden]" autocomplete="off"/>
+          </fieldset>
+          <!-- Start comment form alert messaging -->
+          <p class="hidden js-notice">
+            <strong class="js-notice-text"></strong>
+          </p>
+          <!-- End comment form alert messaging -->
+          <fieldset>
+            <button type="submit" id="comment-form-submit" tabindex="5" 
class="btn btn--large">提交评论</button>
+          </fieldset>
+        </form>
+        <!-- End new comment form -->
+      
+    </section>
+  
+</div>
+
+    
+  </article>
+
+  
+  
+    <div class="page__related">
+      <h4 class="page__related-title">猜您还喜欢</h4>
+      <div class="grid__wrapper">
+        
+          
+
+
+
+<div class="grid__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你
刷任务 - ServiceComb JIRA入门指南
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRAå…
¥é—¨æŒ‡å—
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  少于 1 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+          
+
+
+
+<div class="grid__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/docs/service-center-ui/" rel="permalink">Service-Center 
Management UI Console
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">An introduction 
Service-Center Management Console
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  2 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+          
+
+
+
+<div class="grid__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/docs/service-center-ui/" rel="permalink">Service-Center 
Management UI Console
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">An introduction 
Service-Center Management Console
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  2 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+          
+
+
+
+<div class="grid__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/cn/docs/how-to-reform-a-legacy-system/" 
rel="permalink">最头疼的遗留系统该如何改造?
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" 
itemprop="description">微服务是否是业界期待已久
的企业架构解决方案?在对遗留系统进行微服务的改造
过程中存在怎样的困难和挑战,应该注意些什么?
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  1 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+      </div>
+    </div>
+  
+</div>
+
+
+    <script async 
src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
+    <div align="center" style="margin: 0 0;">
+    <ins class="adsbygoogle"
+         style="display:block; border-bottom: initial;"
+         data-ad-client="ca-pub-7328585512091257"
+         data-ad-slot="3049671934"
+         data-ad-format="auto"></ins>
+    </div>
+
+    <div class="page__footer">
+      <footer>
+        <!-- start custom footer snippets -->
+
+<!-- end custom footer snippets -->
+        <div class="container">
+  <div class="row justify-content-md-center">
+    
+    <div class="col">
+      <ul>
+        <p class="header">资源</p>
+        <li><a href="/cn/docs/quick-start/">快速入门</a></li>
+        <li><a href="/cn/users/user-guide/">用户指南</a></li>
+        <li><a href="/cn/slides/">资料</a></li>
+        <li><a href="/cn/users/faq/">常见问题</a></li>
+      </ul>
+    </div>
+    <div class="col">
+      <ul>
+        <p class="header">贡献</p>
+        <li><a 
href="https://github.com/ServiceComb/ServiceComb.github.io/issues/new?title=Issue
 with 
_posts/cn/2017-08-24-autoscale-on-company.md">报告本网页问题</a></li>
+        <li><a 
href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_posts/cn/2017-08-24-autoscale-on-company.md";>在Github上编辑此页</a></li>
+        <li><a href="/cn/developers/submit-codes/">代码提交指南</a></li>
+      </ul>
+    </div>
+    <div class="col">
+      <ul class="social-icons">
+        <p class="header">社区</p>
+        <li>
+            <a 
href="https://groups.google.com/forum/#!forum/servicecomb-developers"; 
target="_blank"><span class="group">开发者</span></a> |
+            <a 
href="https://groups.google.com/forum/#!forum/servicecomb-users"; 
target="_blank">用户</span></a>
+        </li>
+        <li>
+            <a href="http://github.com/ServiceComb"; target="_blank"><span 
class="github">Github</span></a>
+        </li>
+        <li>
+            <a href="https://twitter.com/ServiceComb"; target="_blank"><span 
class="twitter">Twitter</span></a>
+        </li>
+        <li>
+            <a href="/feed.xml" target="_blank"><span 
class="rss">Feed</span></a>
+        </li>
+      </ul>
+    </div>
+  </div>
+</div>
+<div class="page__footer-bottom">
+  <div>&copy; 2017 Apache incubator ServiceComb. 技术来自于 <a 
href="http://jekyllrb.com"; rel="nofollow">Jekyll</a> &amp; <a 
href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/"; 
rel="nofollow">Minimal Mistakes</a>.</div>
+</div>
+
+      </footer>
+    </div>
+
+    <script src="/assets/js/main.min.js"></script>
+
+
+
+
+  <script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+  
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-101622733-1', 'auto');
+  ga('send', 'pageview');
+</script>
+
+
+
+
+
+
+
+  
+  <script>
+    (function ($) {
+    var $comments = $('.js-comments');
+
+    $('#new_comment').submit(function () {
+      var form = this;
+
+      $(form).addClass('disabled');
+      $('#comment-form-submit').html('<i class="fa fa-spinner fa-spin 
fa-fw"></i> 正在加载...');
+
+      $.ajax({
+        type: $(this).attr('method'),
+        url: $(this).attr('action'),
+        data: $(this).serialize(),
+        contentType: 'application/x-www-form-urlencoded',
+        success: function (data) {
+          $('#comment-form-submit').html('已提交');
+          $('.page__comments-form .js-notice').removeClass('notice--danger');
+          $('.page__comments-form .js-notice').addClass('notice--success');
+          
showAlert('感谢您的评论!被批准后它会立即在此站点展示。');
+        },
+        error: function (err) {
+          console.log(err);
+          $('#comment-form-submit').html('提交评论');
+          $('.page__comments-form .js-notice').removeClass('notice--success');
+          $('.page__comments-form .js-notice').addClass('notice--danger');
+          showAlert('很抱歉,您的提交存在错误。请确保所有必
填字段都已填写正确,然后再试一次。');
+          $(form).removeClass('disabled');
+        }
+      });
+
+      return false;
+    });
+
+    function showAlert(message) {
+      $('.page__comments-form .js-notice').removeClass('hidden');
+      $('.page__comments-form .js-notice-text').html(message);
+    }
+  })(jQuery);
+  </script>
+
+
+
+
+
+
+
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/08e1b43f/content/cn/docs/communication-btw-sc-ms/index.html
----------------------------------------------------------------------
diff --git a/content/cn/docs/communication-btw-sc-ms/index.html 
b/content/cn/docs/communication-btw-sc-ms/index.html
new file mode 100644
index 0000000..ae487bf
--- /dev/null
+++ b/content/cn/docs/communication-btw-sc-ms/index.html
@@ -0,0 +1,795 @@
+<!doctype html>
+<!--
+  Minimal Mistakes Jekyll Theme 4.4.1 by Michael Rose
+  Copyright 2017 Michael Rose - mademistakes.com | @mmistakes
+  Free for personal and commercial use under the MIT license
+  https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt
+-->
+<html lang="cn" class="no-js">
+  <head>
+    <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Communication Between Service-Center and MicroServices - Apache 
incubator ServiceComb</title>
+
+
+
+
+<meta name="description" content="An introduction of how service-center and 
microservices work together">
+
+
+
+
+<meta name="author" content="Asif Siddiqui">
+
+<meta property="og:locale" content="cn">
+<meta property="og:site_name" content="Apache incubator ServiceComb">
+<meta property="og:title" content="Communication Between Service-Center and 
MicroServices">
+
+
+  <link rel="canonical" 
href="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/docs/communication-btw-sc-ms/";>
+  <meta property="og:url" 
content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/docs/communication-btw-sc-ms/";>
+
+
+
+  <meta property="og:description" content="An introduction of how 
service-center and microservices work together">
+
+
+
+  <meta name="twitter:site" content="@ServiceComb">
+  <meta name="twitter:title" content="Communication Between Service-Center and 
MicroServices">
+  <meta name="twitter:description" content="An introduction of how 
service-center and microservices work together">
+  <meta name="twitter:url" content="">
+
+  
+    <meta name="twitter:card" content="summary">
+    
+  
+
+  
+    <meta name="twitter:creator" content="@asif_diatm">
+  
+
+
+
+  
+
+  
+
+
+
+
+
+  <meta property="og:type" content="article">
+  <meta property="article:published_time" content="2017-08-09T00:00:00+08:00">
+
+
+
+
+
+
+
+
+  <script type="application/ld+json">
+    {
+      "@context" : "http://schema.org";,
+      "@type" : "Person",
+      "name" : "Apache incubator ServiceComb",
+      "url" : "http://github.com/pages/ServiceComb/servicesomb.github.io";,
+      "sameAs" : null
+    }
+  </script>
+
+
+
+  <meta name="google-site-verification" 
content="HvJjNd7vvJ-yjSTHlBiIWEYxp_Hrz-PYEY5Idz9LRcA" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="/feed.xml" type="application/atom+xml" rel="alternate" 
title="Apache incubator ServiceComb Feed">
+
+<!-- http://t.co/dKP3o1e -->
+<meta name="HandheldFriendly" content="True">
+<meta name="MobileOptimized" content="320">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+<script>
+  document.documentElement.className = 
document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
+</script>
+<script 
src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js";></script>
+<script src="/assets/js/prism.js"></script>
+
+<script type="text/javascript" async
+  
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML";>
+</script>
+
+<link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css";
 
integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M"
 crossorigin="anonymous">
+
+<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"; 
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
 crossorigin="anonymous"></script>
+<script 
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"; 
integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4"
 crossorigin="anonymous"></script>
+<script 
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"; 
integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1"
 crossorigin="anonymous"></script>
+<!-- For all browsers -->
+<link rel="stylesheet" href="/assets/css/main.css">
+<link rel="stylesheet" href="/assets/css/prism.css">
+
+<!--[if lte IE 9]>
+  <style>
+    /* old IE unsupported flexbox fixes */
+    .greedy-nav .site-title {
+      padding-right: 3em;
+    }
+    .greedy-nav button {
+      position: absolute;
+      top: 0;
+      right: 0;
+      height: 100%;
+    }
+  </style>
+<![endif]-->
+
+<meta http-equiv="cleartype" content="on">
+
+    <!-- start custom head snippets -->
+
+<!-- insert favicons. use http://realfavicongenerator.net/ -->
+<link 
href="https://fonts.cat.net/css?family=Roboto:400,500,700|Source+Code+Pro" 
rel="stylesheet">
+<script src="/assets/js/custom.js"></script>
+<!-- end custom head snippets -->
+
+  </head>
+
+  <body class="layout--single">
+
+    <!--[if lt IE 9]>
+<div class="notice--danger align-center" style="margin: 0;">You are using an 
<strong>outdated</strong> browser. Please <a 
href="http://browsehappy.com/";>upgrade your browser</a> to improve your 
experience.</div>
+<![endif]-->
+    <div class="masthead">
+  <div class="masthead__inner-wrap">
+    <div class="masthead__menu">
+      <nav id="site-nav" class="greedy-nav">
+             
+          <a class="site-title active" href="/cn"><img 
src="//assets/images/ServiceComb-logo-1.png"></a>
+             
+        <ul class="visible-links">
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/docs/quick-start/">快速入门</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/users/">用户手册</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/developers/">开发者手册</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/year-archive/">博文</a>
+              
+            </li>
+          
+            
+            <li class="masthead__menu-item">
+              
+              
+              
+                <a href="/cn/faqs/">常见问题</a>
+              
+            </li>
+          
+        </ul>
+        <button><div class="navicon"></div></button>
+        <ul class="hidden-links hidden"></ul>
+        <div class="nav-lang">
+          
+            
+            
+            <a href=/docs/communication-btw-sc-ms/>English</a>
+          
+        </div>
+      </nav>
+    </div>
+  </div>
+</div>
+
+
+    
+
+
+
+<div id="main" role="main">
+  
+  <div class="sidebar sticky">
+      
+      <div class="back-to-home">首页 > <a href="/cn/">ServiceComb</a></div>
+      
+  
+
+<div itemscope itemtype="http://schema.org/Person";>
+
+  
+
+  <div class="author__content">
+    <h3 class="author__name" itemprop="name">Asif Siddiqui</h3>
+    
+      <p class="author__bio" itemprop="description">
+           
+             
+               Gopher, PaaS and Microservice
+             
+           
+      </p>
+    
+  </div>
+
+  <div class="author__urls-wrapper">
+    <button class="btn btn--inverse">关注</button>
+    <ul class="author__urls social-icons">
+      
+
+      
+        <li>
+          <a href="http://asifdxtreme.github.io"; itemprop="url">
+            <i class="fa fa-fw fa-chain" aria-hidden="true"></i> 网站
+          </a>
+        </li>
+      
+
+      
+        <li>
+          <a href="mailto:[email protected]";>
+            <meta itemprop="email" 
content="[email protected]" />
+            <i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> 
电子邮箱
+          </a>
+        </li>
+      
+
+      
+
+      
+        <li>
+          <a href="https://twitter.com/asif_diatm"; itemprop="sameAs">
+            <i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> 
Twitter
+          </a>
+        </li>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      <!--
+  <li>
+    <a href="http://link-to-whatever-social-network.com/user/"; 
itemprop="sameAs">
+      <i class="fa fa-fw" aria-hidden="true"></i> Custom Social Profile Link
+    </a>
+  </li>
+-->
+    </ul>
+  </div>
+</div>
+
+  
+  </div>
+
+
+
+  <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
+    <meta itemprop="headline" content="Communication Between Service-Center 
and MicroServices">
+    <meta itemprop="description" content="An introduction of how 
service-center and microservices work together">
+    <meta itemprop="datePublished" content="August 09, 2017">
+    <meta itemprop="dateModified" content="August 09, 2017">
+
+    <div class="page__inner-wrap">
+      
+        
+          <header>
+            <h1 class="page__title" itemprop="headline">Communication Between 
Service-Center and MicroServices
+</h1>
+            
+              <p class="page__meta"><i class="fa fa-clock-o" 
aria-hidden="true"></i> 
+
+
+
+
+  1 分钟 阅读
+
+</p>
+            
+          </header>
+        
+      
+
+      <section class="page__content" itemprop="text">
+        <p>Service-Center(<a 
href="https://github.com/ServiceComb/service-center";>SC</a>) is a service 
registry that allows services to register their instance information and to 
discover providers of a given service.
+SC uses etcd to store all the information of micro-service and its instances. 
Below is the diagram stating the working principles and flow of SC.</p>
+
+<h4 id="on-startup">On StartUp</h4>
+<p>Here we assume that micro-services are written using <a 
href="https://github.com/ServiceComb/java-chassis";>java-chassis</a> sdk. So 
when micro-service boots up then java-chassis sdk does the following list of 
tasks.</p>
+
+<ol>
+  <li>
+    <p>On startup provider registers the micro-service to SC if not registered 
earlier and also register its instance information like its Ip and Port on 
which instance is running.</p>
+  </li>
+  <li>
+    <p>SC stores the provider information in etcd.</p>
+  </li>
+  <li>
+    <p>On startup consumer retrieves the list of all provider instance from SC 
using the micro-service name of the provider.</p>
+  </li>
+  <li>
+    <p>Consumer sdk stores all the information of provider instances in its 
cache.</p>
+  </li>
+  <li>
+    <p>Consumer sdk creates a web socket connection to SC to watch all the 
provider instance information, if there is any change in the provider then sdk 
updates it’s cache information.</p>
+  </li>
+</ol>
+
+<p><img src="/assets/images/onStartup.PNG" alt="OnStartup" 
class="align-center" /></p>
+
+<h4 id="communication-between-consumer---provider">Communication between 
Consumer -&gt; Provider</h4>
+<p>Once the bootup is successful then the consumer can communicate with 
providers flawlessly, below is the diagram illustrating the communication 
between provider and consumer.</p>
+
+<p><img src="/assets/images/communication.PNG" alt="Communication" 
class="align-center" /></p>
+
+<p>Provider instance regularly sends heartbeat signal every 30 seconds to SC, 
if SC does not recieve the heartbeat for particular instance then the 
information in etcd expires and the provider instance information is 
removed.<br />
+Consumer watches the information of provider instances from SC and if there is 
any change then the cache is updated.<br />
+When Consumer needs to communicate to Provider then consumer reads endpoints 
of the provider instances from cache and do loadbalancing to communicate to 
Provider.</p>
+
+        
+      </section>
+
+      <footer class="page__meta">
+        
+        
+  
+
+
+  
+  
+  
+
+  <p class="page__taxonomy">
+    <strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> 标签: 
</strong>
+    <span itemprop="keywords">
+    
+      
+      
+      <a href="/tags/#%E6%9C%8D%E5%8A%A1%E4%B8%AD%E5%BF%83" 
class="page__taxonomy-item" rel="tag">服务中心</a>
+    
+    </span>
+  </p>
+
+
+
+
+
+        
+          
+            
+              <p class="page__date"><strong><i class="fa fa-fw fa-calendar" 
aria-hidden="true"></i> 最新的:</strong> <time 
datetime="2017-08-09">2017年8月9日</time></p>
+            
+          
+        
+      </footer>
+
+      <section class="page__share">
+  
+    <h4 class="page__share-title">分享</h4>
+  
+
+  <a href="https://twitter.com/intent/tweet?via=ServiceComb&text=Communication 
Between Service-Center and MicroServices /cn/docs/communication-btw-sc-ms/" 
class="btn btn--twitter" title="分享 Twitter"><i class="fa fa-fw fa-twitter" 
aria-hidden="true"></i><span> Twitter</span></a>
+
+  <a 
href="https://www.facebook.com/sharer/sharer.php?u=/cn/docs/communication-btw-sc-ms/";
 class="btn btn--facebook" title="分享 Facebook"><i class="fa fa-fw 
fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
+
+  <a 
href="https://plus.google.com/share?url=/cn/docs/communication-btw-sc-ms/"; 
class="btn btn--google-plus" title="分享 Google Plus"><i class="fa fa-fw 
fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
+
+  <a 
href="https://www.linkedin.com/shareArticle?mini=true&url=/cn/docs/communication-btw-sc-ms/";
 class="btn btn--linkedin" title="分享 LinkedIn"><i class="fa fa-fw 
fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
+</section>
+
+
+      
+  <nav class="pagination">
+    
+      <a href="/docs/communication-btw-sc-ms/" class="pagination--pager" 
title="Communication Between Service-Center and MicroServices
+">向前</a>
+    
+    
+      <a href="/docs/company-on-kubernetes/" class="pagination--pager" 
title="One-click Deployment at Kubernetes
+">向后</a>
+    
+  </nav>
+
+
+    </div>
+
+    
+      <div class="page__comments">
+  
+  
+    <section id="static-comments">
+      
+        <!-- Start static comments -->
+        <div class="js-comments">
+          
+        </div>
+        <!-- End static comments -->
+
+        <!-- Start new comment form -->
+        <h4 class="page__comments-title">留下评论</h4>
+        <p 
class="small">您的电子邮箱地址并不会被展示。请填写标记为必
须的字段。 <span class="required">*</span></p>
+        <form id="new_comment" class="page__comments-form js-form form" 
method="post" 
action="https://api.staticman.net/v1/entry/ServiceComb/servicesomb.github.io/master";>
+          <div class="form__spinner">
+            <i class="fa fa-spinner fa-spin fa-3x fa-fw"></i>
+            <span class="sr-only">正在加载...</span>
+          </div>
+
+          <fieldset>
+            <label for="comment-form-message">评论 <small 
class="required">*</small></label>
+            <textarea type="text" rows="3" id="comment-form-message" 
name="fields[message]" tabindex="1"></textarea>
+            <div class="small help-block"><a 
href="https://daringfireball.net/projects/markdown/";>Markdown语法已支持。</a></div>
+          </fieldset>
+          <fieldset>
+            <label for="comment-form-name">姓名 <small 
class="required">*</small></label>
+            <input type="text" id="comment-form-name" name="fields[name]" 
tabindex="2" />
+          </fieldset>
+          <fieldset>
+            <label for="comment-form-email">电子邮箱 <small 
class="required">*</small></label>
+            <input type="email" id="comment-form-email" name="fields[email]" 
tabindex="3" />
+          </fieldset>
+          <fieldset>
+            <label for="comment-form-url">网站(可选)</label>
+            <input type="url" id="comment-form-url" name="fields[url]" 
tabindex="4"/>
+          </fieldset>
+          <fieldset class="hidden" style="display: none;">
+            <input type="hidden" name="options[slug]" 
value="communication-btw-sc-ms">
+            <label for="comment-form-location">Not used. Leave blank if you 
are a human.</label>
+            <input type="text" id="comment-form-location" 
name="fields[hidden]" autocomplete="off"/>
+          </fieldset>
+          <!-- Start comment form alert messaging -->
+          <p class="hidden js-notice">
+            <strong class="js-notice-text"></strong>
+          </p>
+          <!-- End comment form alert messaging -->
+          <fieldset>
+            <button type="submit" id="comment-form-submit" tabindex="5" 
class="btn btn--large">提交评论</button>
+          </fieldset>
+        </form>
+        <!-- End new comment form -->
+      
+    </section>
+  
+</div>
+
+    
+  </article>
+
+  
+  
+    <div class="page__related">
+      <h4 class="page__related-title">猜您还喜欢</h4>
+      <div class="grid__wrapper">
+        
+          
+
+
+
+<div class="grid__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/cn/docs/jira_beginner_guide/" rel="permalink">老司机带你
刷任务 - ServiceComb JIRA入门指南
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRAå…
¥é—¨æŒ‡å—
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  少于 1 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+          
+
+
+
+<div class="grid__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/docs/service-center-ui/" rel="permalink">Service-Center 
Management UI Console
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">An introduction 
Service-Center Management Console
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  2 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+          
+
+
+
+<div class="grid__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/docs/service-center-ui/" rel="permalink">Service-Center 
Management UI Console
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" itemprop="description">An introduction 
Service-Center Management Console
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  2 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+          
+
+
+
+<div class="grid__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
+        <a href="/cn/docs/how-to-reform-a-legacy-system/" 
rel="permalink">最头疼的遗留系统该如何改造?
+</a>
+      
+    </h2>
+    <p class="archive__item-excerpt" 
itemprop="description">微服务是否是业界期待已久
的企业架构解决方案?在对遗留系统进行微服务的改造
过程中存在怎样的困难和挑战,应该注意些什么?
+</p>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  1 分钟 阅读
+
+</p>
+    
+  </article>
+</div>
+
+        
+      </div>
+    </div>
+  
+</div>
+
+
+    <script async 
src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
+    <div align="center" style="margin: 0 0;">
+    <ins class="adsbygoogle"
+         style="display:block; border-bottom: initial;"
+         data-ad-client="ca-pub-7328585512091257"
+         data-ad-slot="3049671934"
+         data-ad-format="auto"></ins>
+    </div>
+
+    <div class="page__footer">
+      <footer>
+        <!-- start custom footer snippets -->
+
+<!-- end custom footer snippets -->
+        <div class="container">
+  <div class="row justify-content-md-center">
+    
+    <div class="col">
+      <ul>
+        <p class="header">资源</p>
+        <li><a href="/cn/docs/quick-start/">快速入门</a></li>
+        <li><a href="/cn/users/user-guide/">用户指南</a></li>
+        <li><a href="/cn/slides/">资料</a></li>
+        <li><a href="/cn/users/faq/">常见问题</a></li>
+      </ul>
+    </div>
+    <div class="col">
+      <ul>
+        <p class="header">贡献</p>
+        <li><a 
href="https://github.com/ServiceComb/ServiceComb.github.io/issues/new?title=Issue
 with 
_posts/cn/2017-08-09-communication-btw-sc-ms.md">报告本网页问题</a></li>
+        <li><a 
href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_posts/cn/2017-08-09-communication-btw-sc-ms.md";>在Github上编辑此页</a></li>
+        <li><a href="/cn/developers/submit-codes/">代码提交指南</a></li>
+      </ul>
+    </div>
+    <div class="col">
+      <ul class="social-icons">
+        <p class="header">社区</p>
+        <li>
+            <a 
href="https://groups.google.com/forum/#!forum/servicecomb-developers"; 
target="_blank"><span class="group">开发者</span></a> |
+            <a 
href="https://groups.google.com/forum/#!forum/servicecomb-users"; 
target="_blank">用户</span></a>
+        </li>
+        <li>
+            <a href="http://github.com/ServiceComb"; target="_blank"><span 
class="github">Github</span></a>
+        </li>
+        <li>
+            <a href="https://twitter.com/ServiceComb"; target="_blank"><span 
class="twitter">Twitter</span></a>
+        </li>
+        <li>
+            <a href="/feed.xml" target="_blank"><span 
class="rss">Feed</span></a>
+        </li>
+      </ul>
+    </div>
+  </div>
+</div>
+<div class="page__footer-bottom">
+  <div>&copy; 2017 Apache incubator ServiceComb. 技术来自于 <a 
href="http://jekyllrb.com"; rel="nofollow">Jekyll</a> &amp; <a 
href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/"; 
rel="nofollow">Minimal Mistakes</a>.</div>
+</div>
+
+      </footer>
+    </div>
+
+    <script src="/assets/js/main.min.js"></script>
+
+
+
+
+  <script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+  
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-101622733-1', 'auto');
+  ga('send', 'pageview');
+</script>
+
+
+
+
+
+
+
+  
+  <script>
+    (function ($) {
+    var $comments = $('.js-comments');
+
+    $('#new_comment').submit(function () {
+      var form = this;
+
+      $(form).addClass('disabled');
+      $('#comment-form-submit').html('<i class="fa fa-spinner fa-spin 
fa-fw"></i> 正在加载...');
+
+      $.ajax({
+        type: $(this).attr('method'),
+        url: $(this).attr('action'),
+        data: $(this).serialize(),
+        contentType: 'application/x-www-form-urlencoded',
+        success: function (data) {
+          $('#comment-form-submit').html('已提交');
+          $('.page__comments-form .js-notice').removeClass('notice--danger');
+          $('.page__comments-form .js-notice').addClass('notice--success');
+          
showAlert('感谢您的评论!被批准后它会立即在此站点展示。');
+        },
+        error: function (err) {
+          console.log(err);
+          $('#comment-form-submit').html('提交评论');
+          $('.page__comments-form .js-notice').removeClass('notice--success');
+          $('.page__comments-form .js-notice').addClass('notice--danger');
+          showAlert('很抱歉,您的提交存在错误。请确保所有必
填字段都已填写正确,然后再试一次。');
+          $(form).removeClass('disabled');
+        }
+      });
+
+      return false;
+    });
+
+    function showAlert(message) {
+      $('.page__comments-form .js-notice').removeClass('hidden');
+      $('.page__comments-form .js-notice-text').html(message);
+    }
+  })(jQuery);
+  </script>
+
+
+
+
+
+
+
+  </body>
+</html>

Reply via email to