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/<your_github_name>/ServiceComb.github.io.git +</code></pre> + </div> + + <p>注æï¼è¯·å° <your_github_name> æ¿æ¢ä¸ºæ¨ç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/<your_github_name>/ServiceComb.github.io.git <span class="o">(</span>fetch<span class="o">)</span> +origin https://github.com/<your_github_name>/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 <your_branch_name> +</code></pre> + </div> + </li> +</ul> + +<p>ããæ³¨æï¼ <your_branch_name> 为æ¨èªå®ä¹ç忝ååã</p> + +<p>ããåå»ºå®æåå¯è¿è¡ä»£ç æ´æ¹ã</p> + +<ul> + <li> + <p>æäº¤ä»£ç å°è¿ç¨åæ¯ï¼</p> + + <div class="language-shell highlighter-rouge"><pre class="highlight"><code>git commit -a -m <span class="s2">"<you_commit_message>"</span> +git push origin <your_branch_name> +</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 页é¢ï¼åæ¢åæ¯å°æäº¤ç忝 <your_branch_name> ï¼ä¾æ¬¡ç¹å» <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>© 2017 Apache incubator ServiceComb. ææ¯æ¥èªäº <a href="http://jekyllrb.com" rel="nofollow">Jekyll</a> & <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><heapster-ip>:<heapster-port> +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>© 2017 Apache incubator ServiceComb. ææ¯æ¥èªäº <a href="http://jekyllrb.com" rel="nofollow">Jekyll</a> & <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 -> 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>© 2017 Apache incubator ServiceComb. ææ¯æ¥èªäº <a href="http://jekyllrb.com" rel="nofollow">Jekyll</a> & <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>
