http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/08e1b43f/content/cn/docs/quick-start/index.html ---------------------------------------------------------------------- diff --git a/content/cn/docs/quick-start/index.html b/content/cn/docs/quick-start/index.html new file mode 100644 index 0000000..11e0d3f --- /dev/null +++ b/content/cn/docs/quick-start/index.html @@ -0,0 +1,559 @@ +<!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="ä»ç»å¦ä½ä½¿ç¨Java Chassisæ¡æ¶å¿«éè¿è¡å¾®æå¡åºç¨"> + + + + +<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/docs/quick-start/"> + <meta property="og:url" content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/docs/quick-start/"> + + + + <meta property="og:description" content="ä»ç»å¦ä½ä½¿ç¨Java Chassisæ¡æ¶å¿«éè¿è¡å¾®æå¡åºç¨"> + + + + <meta name="twitter:site" content="@ServiceComb"> + <meta name="twitter:title" content="å¿«éå ¥é¨"> + <meta name="twitter:description" content="ä»ç»å¦ä½ä½¿ç¨Java Chassisæ¡æ¶å¿«éè¿è¡å¾®æå¡åºç¨"> + <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 class="active" 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/quick-start/>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/docs/quick-start/"><span class="nav__sub-title nav__sub-title-with-url">å¿«éå ¥é¨</span></a> + + + + </li> + + <li> + + + + + <a href="/cn/docs/quick-start-bmi/"><span class="nav__sub-title nav__sub-title-with-url">å¾®æå¡åºç¨å¿«éå¼å</span></a> + + + + </li> + + <li> + + + + + <a href="/cn/docs/quick-start-advance/"><span class="nav__sub-title nav__sub-title-with-url">å¾®æå¡å¼åè¿é¶</span></a> + + + + <ul> + + + + + + + + <li><a href="/cn/docs/quick-start-advance/load-balance/" class="">è´è½½åè¡¡</a></li> + + + + + + + + <li><a href="/cn/docs/quick-start-advance/flow-control/" class="">æµéæ§å¶</a></li> + + + + + + + + <li><a href="/cn/docs/quick-start-advance/service-management/" class="">æå¡æ²»ç</a></li> + + + + + + + + <li><a href="/cn/docs/quick-start-advance/distributed-tracing/" class="">åå¸å¼è°ç¨é¾è¿½è¸ª</a></li> + + </ul> + + </li> + + <li> + + + + + <a href="/cn/docs/quick-start-dataconsistency/"><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="ä»ç»å¦ä½ä½¿ç¨Java Chassisæ¡æ¶å¿«éè¿è¡å¾®æå¡åºç¨"> + + <meta itemprop="dateModified" content="September 03, 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="#å®è£ -java-å¼åç¯å¢" id="markdown-toc-å®è£ -java-å¼åç¯å¢">å®è£ Java å¼åç¯å¢</a></li> + <li><a href="#è¿è¡-service-center" id="markdown-toc-è¿è¡-service-center">è¿è¡ Service Center</a></li> + <li><a href="#å建第ä¸ä¸ªå¾®æå¡" id="markdown-toc-å建第ä¸ä¸ªå¾®æå¡">å建第ä¸ä¸ªå¾®æå¡</a></li> + <li><a href="#è¿è¡å¾®æå¡åºç¨" id="markdown-toc-è¿è¡å¾®æå¡åºç¨">è¿è¡å¾®æå¡åºç¨</a></li> + <li><a href="#ä¸ä¸æ¥" id="markdown-toc-ä¸ä¸æ¥">ä¸ä¸æ¥</a></li> +</ul> + + </nav> +</aside> + +<h2 id="å®è£ -java-å¼åç¯å¢">å®è£ Java å¼åç¯å¢</h2> + +<ul> + <li> + <p>å®è£ <strong>git</strong>ï¼è¯¦æ å¯åè<a href="https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git" target="_blank">gitå®è£ æç¨</a>ã</p> + </li> + <li> + <p>å®è£ JDK 1.8ï¼è¯¦æ å¯åè<a href="https://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html" target="_blank">JDKå®è£ æç¨</a>ã</p> + </li> + <li> + <p>å®è£ Maven 3.xï¼è¯¦æ å¯åè<a href="https://maven.apache.org/install.html" target="_blank">Mavenå®è£ æç¨</a>ã</p> + </li> + <li> + <p>å®è£ ServiceComb Java Chassis(SDK)ï¼æ§è¡ä»¥ä¸æä»¤ï¼</p> + + <div class="language-bash highlighter-rouge"><pre class="highlight"><code> git clone https://github.com/ServiceComb/ServiceComb-Java-Chassis.git + <span class="nb">cd </span>ServiceComb-Java-Chassis + mvn clean install -DskipTests +</code></pre> + </div> + </li> +</ul> + +<h2 id="è¿è¡-service-center">è¿è¡ Service Center</h2> +<p>å¨ <strong>ServiceComb</strong> å¾®æå¡æ¡æ¶ä¸ï¼<strong>Service Center</strong> æä¾æå¡æ³¨ååæå¡åç°åè½ï¼å¯ç´æ¥ä½¿ç¨ Docker è¿è¡ã</p> +<div class="language-bash highlighter-rouge"><pre class="highlight"><code>docker pull servicecomb/service-center +docker run -d -p 30100:30100 servicecomb/service-center:latest +</code></pre> +</div> +<p><em>æ¨å¯ä»¥éè¿é 读<a href="/cn/users/setup-environment/#è¿è¡service-center">ç¯å¢é ç½®</a>è·å卿¬å°ä»¥äºè¿å¶æ¹å¼è¿è¡Service Centerçæ¹æ³ã</em></p> + +<h2 id="å建第ä¸ä¸ªå¾®æå¡">å建第ä¸ä¸ªå¾®æå¡</h2> +<p>æ¬æåå°ä»¥ä¸ä¸ªç®åç <strong>ä½è´¨ææ°(BMI)</strong> åºç¨å¼å±å¾®æå¡ä¹æ ã<a href="https://baike.baidu.com/item/BMI%E6%8C%87%E6%95%B0" target="_blank">ä½è´¨ææ°</a>主è¦ç¨äºè¡¡é人ä½èç¦ç¨åº¦ã该åºç¨ä¸»è¦å å«ä¸¤ä¸ªå¾®æå¡ï¼</p> + +<ul> + <li> + <p><strong>ä½è´¨ææ°è®¡ç®å¨</strong>ï¼è´è´£å¤çè¿ç®äºå¡ã</p> + </li> + <li> + <p><strong>ä½è´¨ææ°çé¢</strong>ï¼æä¾ç¨æ·çé¢åç½å ³æå¡ã</p> + </li> +</ul> + +<p>å ¶è¿è¡æµç¨ä¸ºï¼<br /> +<img src="/assets/images/quick-start-sample-workflow.png" alt="ä½è´¨ææ°åºç¨è¿è¡æµç¨" class="align-center" /></p> + +<p>å ¶ä¸ï¼è线表示æå¡æ³¨ååæå¡åç°çè¿ç¨ã</p> + +<h2 id="è¿è¡å¾®æå¡åºç¨">è¿è¡å¾®æå¡åºç¨</h2> + +<ol> + <li> + <p>è¿å ¥ <strong>ä½è´¨ææ°</strong> åºç¨ä»£ç ç®å½ã</p> + + <div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="nb">cd </span>samples/bmi +</code></pre> + </div> + <p><strong>注æ</strong>ï¼å¨windowså¼åç¯å¢ä¸ï¼dockeræ¯å¨èææºä¸å¯å¨ï¼å æ¤éè¦ä¿®æ¹å¾®æå¡ç <strong>Service Center</strong> IPå°åä¸ºèææºIPå°åãä¿®æ¹2个é ç½®æä»¶[calculator|webapp]/src/main/resources/microservice.yamlï¼å°å ¶ä¸<a>http://127.0.0.1:30100</a>ä¿®æ¹ä¸º<a>http://192.168.99.100:30100</a>ï¼å ¶ä¸192.168.99.100æ¯èææºIPï¼éè¦ä¸å¼åç¯å¢ä¸çèææºIPä¿æä¸è´ã</p> + </li> + <li> + <p>å¯å¨ <strong>ä½è´¨ææ°è®¡ç®å¨</strong> å <strong>ä½è´¨ææ°çé¢</strong> å¾®æå¡ï¼å嫿§è¡ä»¥ä¸æä»¤ï¼</p> + + <div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="nb">cd </span>calculator; mvn spring-boot:run +<span class="nb">cd </span>webapp; mvn spring-boot:run +</code></pre> + </div> + </li> + <li> + <p>éªè¯æå¡ãå¾®æå¡å¯å¨å®æ¯åï¼å³å¯éè¿ <a>http://localhost:8889</a> è®¿é® <strong>ä½è´¨ææ°</strong> åºç¨ï¼å±æ¶å°è½çå°å¦ä¸çé¢ï¼å¹¶å¯è¾å ¥æ¨ç身é«åä½éä¿¡æ¯éªè¯æå¡æ¯å¦æ£å¸¸è¿è¡ã</p> + + <p><img src="/assets/images/bmi-interface.png" alt="ä½è´¨ææ°åºç¨è¿è¡çé¢" class="align-center" /></p> + </li> +</ol> + +<h2 id="ä¸ä¸æ¥">ä¸ä¸æ¥</h2> + +<ul> + <li>é 读<a href="/cn/docs/quick-start-bmi/"><strong>ä½è´¨ææ°</strong>å¾®æå¡åºç¨å¿«éå¼å</a>ã</li> +</ul> + + + </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 _docs/cn/quick-start.md">æ¥åæ¬ç½é¡µé®é¢</a></li> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_docs/cn/quick-start.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/seckill-development-journey-part-I/index.html ---------------------------------------------------------------------- diff --git a/content/cn/docs/seckill-development-journey-part-I/index.html b/content/cn/docs/seckill-development-journey-part-I/index.html new file mode 100644 index 0000000..4a260ea --- /dev/null +++ b/content/cn/docs/seckill-development-journey-part-I/index.html @@ -0,0 +1,820 @@ +<!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="ä»ç»å¦ä½ä¸æ¥ä¸æ¥æå»ºç§æé¡¹ç®çè¿ç¨"> + + + + +<meta name="author" content="Yangyong Zheng"> + +<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/seckill-development-journey-part-I/"> + <meta property="og:url" content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/docs/seckill-development-journey-part-I/"> + + + + <meta property="og:description" content="ä»ç»å¦ä½ä¸æ¥ä¸æ¥æå»ºç§æé¡¹ç®çè¿ç¨"> + + + + <meta name="twitter:site" content="@ServiceComb"> + <meta name="twitter:title" content="ç§æå¼ååç¨ï¼ä¸ï¼"> + <meta name="twitter:description" content="ä»ç»å¦ä½ä¸æ¥ä¸æ¥æå»ºç§æé¡¹ç®çè¿ç¨"> + <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-26T00: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/seckill-development-journey-part-I/>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">Yangyong Zheng</h3> + + <p class="author__bio" itemprop="description"> + + + Fast Action, do not ask + + + </p> + + </div> + + <div class="author__urls-wrapper"> + <button class="btn btn--inverse">å ³æ³¨</button> + <ul class="author__urls social-icons"> + + + + <li> + <a href="https://zhengyangyong.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="ä»ç»å¦ä½ä¸æ¥ä¸æ¥æå»ºç§æé¡¹ç®çè¿ç¨"> + <meta itemprop="datePublished" content="August 26, 2017"> + <meta itemprop="dateModified" content="September 13, 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"> + <h2 id="æ¦è¿°">æ¦è¿°</h2> +<p>ããç§ææ¯æä»¬ServiceComb弿ºå¢é以é¢å驱å¨è®¾è®¡ï¼<a href="https://en.wikipedia.org/wiki/Domain-driven_design">DDD</a>ï¼ä¸ºèæ¯ï¼å¦ä½ä»é¶å¼å§æå»ºä¸ä¸ªå¾®æå¡æ¶æç示ä¾é¡¹ç®ãå¨è¿ä¸ªè¿ç¨ä¸ï¼æ¨å¯ä»¥å¦ä¹ å°å¾®æå¡æ¶æåºå«äºä¼ ç»åä½ç¨åºæ¶æç诸å¤ç¹ç¹ï¼åæ¶æä»¬è¿å°ä½¿ç¨ææ·å¼åçæ¨¡å¼å¿«éæå»ºå®ã</p> + +<h2 id="èæ¯">èæ¯</h2> +<p>ããç§æçéæ±èµ·æºäºäºèç½å¸¸è§çä¿éæ¹å¼ââæ¯ä»è®¢åçæ¶åï¼æä»¬å¯ä»¥æ¯æä½¿ç¨ä¼æ å¸è·å¾ä¸äºææ£ï¼ç±äºä¼æ å¸çæ°éæ¯é常æéçï¼æä»¥æä»¬å¿ é¡»æä¾ä¸ä¸ªå¹³å°ï¼è®©æ¯ä¸ä½å¸æå¾å°å®çäººå ¬å¹³ç«äºï¼è¿æ ·çåºæ¯æç¸ä¿¡å¨å¹³æ¥ççæ´»ä¸éå¤å¯è§ã</p> + +<p>ããç±äºç§ææ¯ä¸ä¸ªç¤ºä¾é¡¹ç®ï¼æä»¥æä»¬ä¸å¸æå®å¤ªå¤æï¼çå®çç§ææ´»å¨éè¦èèçç»èè¦è¿è¿è¶ è¿æä»¬çæ³è±¡ï¼æä»¬ä¹ä¸å¸æå®å¤ªè¿äºå ·ä½å¨ç¹å®çå½¢å¼ï¼ä¾å¦ä¼æ å¸ã满åãæ¢è´ç ï¼ççï¼è¿æ ·æ»ä¼è®©é¨å读è é¾ä»¥çè§£ï¼æåï¼æä»¬ä½¿ç¨äºå å°å å¾è¿ç§æåå§ççç¥ï¼å¦ææ¨æ³å°è¯å ¶ä»çç¥ï¼å¯ä»¥ä¸è½½ä»£ç èªè¡ä¿®æ¹ï¼æç¸ä¿¡ä¹ä¸ä¼å¤ªå°é¾ã</p> + +<h2 id="忬¡è®¾è®¡">忬¡è®¾è®¡</h2> +<p>ããé¦å æä»¬åæå®¢æ·æ ¸å¿ä¸å¡è¿°æ±ï¼</p> + +<ol> + <li>客æ·å¯ä»¥è¯·æ±ç§æä¸å¼ 伿 å¸ï¼ç³»ç»è¿åè·å伿 叿åæå¤±è´¥ï¼å·²ç»è¢«ç§å äºï¼ï¼</li> + <li>客æ·å¯ä»¥æ¥è¯¢èªå·±ç®åæå¤å°å¼ 伿 å¸ï¼</li> +</ol> + +<p>ããé£ä¹æä»¬å¼å§å§ï¼ççï¼æ¨è¯´è¿ä¸ªæè¿°ä¹å¤ªç®åäºï¼å®¢æ·è¿æ²¡æç»å½ç³»ç»å¢ï¼ç§ææ´»å¨åæ¯æä¹æ¥çï¼æä¹å¼å§çï¼å®¢æ·æ¯è¯·æ±åªä¸ªæ´»å¨ç伿 å¸åï¼ææ£æ¯ä¸æ¯ä¸ä¸æ ·ï¼è¿æâ¦â¦</p> + +<p>ããç¡®å®ï¼æä»¬ä¹ æ¯äºå¨ä¸å¼å§å°±æèå¾å¤ï¼ä¸äºè¾å¤§çç³»ç»ï¼å¯è½è®¾è®¡é¶æ®µå°±è¦å 个æï¼ä½æ¯è¿æ¬¡å¯ä»¥ä¸ç¨èè太å¤ï¼å 为æè®¤ä¸ºï¼</p> +<ol> + <li>设计太å¤å¹¶ä¸è½ä¿è¯æå»ºå®æ¯åå°±ä¸å®è½å®å ¨ç¬¦åéæ±ï¼å¯ä¸ä¸åçå°±æ¯éæ±æ»æ¯ååï¼æä»¥ä¸è¦è¿åº¦è®¾è®¡ï¼</li> + <li>å¾®æå¡æ¶æçå忝ç»ä»¶ï¼æå¡ï¼æä¾è¾ä¸ºåä¸çåè½ï¼æä»¥æ¯ä¸ªç»ä»¶æéè¦å®ç°çåè½èå´æ¯è¾å°ï¼ä¸å¿ å å°ææçåè½é½è®¾è®¡åºæ¥ï¼</li> + <li>åºè¯¥å°½å¿«åå ¥ä¸»é¢ï¼ä¹å°±æ¯ç«å»å»è§£å³æ ¸å¿åçé®é¢ã</li> +</ol> + +<p>ããç°å¨ï¼æä»¬éè¦ä½¿ç¨æ£ç¡®çâå§¿å¿âå®æè®¾è®¡è¿ç¨ââéµå¾ªé¢å驱å¨è®¾è®¡ï¼<a href="https://en.wikipedia.org/wiki/Domain-driven_design">DDD</a>ï¼ç诸å¤ååï¼è®¾è®¡è¿ç¨çæ ¸å¿å°±æ¯è¯å«åºå®ä½ãå¼å¯¹è±¡åæå¡çå ç´ ï¼è¿ä¸æ¥å¯»æ¾èåï¼ç±äºæä»¬çéæ±é常ç®åï¼æä»¥å¾å®¹æå°±è½å°å®ä»¬æ¾åºæ¥ï¼</p> +<ul> + <li>å®ä½ï¼ä¿éç§æï¼Promotionï¼</li> + <li>å¼å¯¹è±¡ï¼ä¼æ å¸ï¼Couponï¼ï¼ä¿éç§æäºä»¶ï¼PromotionEventï¼</li> + <li>é¢åæå¡ï¼ç§ææ´»å¨ï¼SecKillï¼</li> +</ul> + +<p>ããä¹åæä»¬åæä»ä»¬ä¹é´çèåï¼ååºä¸¤ä¸ªå¾®æå¡ï¼ä¸ºäºè½å¿«éè¾¾å°ç®çï¼å®ä»¬ä¹é´ç´æ¥ä½¿ç¨MySQLå ±äº«æ°æ®ï¼å¾®æå¡æ¨è使ç¨ç¬ç«çåå¨ï¼æä»¬æªæ¥å»æ¹é ï¼ï¼</p> +<ol> + <li>Commandï¼SecKillé¢åæå¡ï¼</li> + <li>Queryï¼ Couponå¼å¯¹è±¡æ¥è¯¢</li> +</ol> + +<p><img src="/assets/images/seckill-develop-course-part-I-arth.png" alt="å¾1 忬¡æ¶æ" class="align-center" /></p> + +<h2 id="åè½å®ç°">åè½å®ç°</h2> +<p>ããç§æçä»£ç æç®¡å¨<a href="https://github.com/ServiceComb/seckill">Github</a>ï¼æ¬¢è¿WatchåStarã</p> + +<h3 id="commandå¾®æå¡çå®ç°">Commandå¾®æå¡çå®ç°</h3> +<p>ããæä»¬è®¾è®¡äºSecKillCommandServiceåSecKillPersistentRunner两个类åå«å®æç§æå¤çåç»ææä¹ åï¼èèå°æä¹ åéåº¦æ ¢ï¼æä»¬ä½¿ç¨BlockQueueåç¼åï¼å¦å¤è®¾è®¡äºSecKillCommandRestControllerä½ä¸ºå®¢æ·è¯·æ±çEndpointï¼ServiceCombæ¯æå¤ç§ç¼ç¨æ¨¡ååé信模åï¼æä»¬ä½¿ç¨ç®åè¾è¾ä¸ºæµè¡çSpring Boot Restä½ä¸ºåºç¡æ¡æ¶ï¼å¦ææ¨çç¨åºä¹ä½¿ç¨äºå®ï¼é£ä¹åªéè¦ç¨å è°æ´å³å¯æ ç¼ä¸äºã</p> + +<p><img src="/assets/images/seckill-develop-course-part-I-command.png" alt="å¾2 Commandå¾®æå¡ç»ä»¶" class="align-center" /></p> + +<h2 id="queryå¾®æå¡çå®ç°">Queryå¾®æå¡çå®ç°</h2> +<p>ããæ¥è¯¢é»è¾è¾ç®åï¼å 为PromotionEventæ¯å¼å¯¹è±¡ï¼æä»¬ä½¿ç¨äºPromotionEventæ¨å¯¼Couponï¼åä½çå®è¯»è¯»ä»£ç å°±æç½äºã</p> + +<h2 id="æå»ºæ¯æå">æå»ºæ¯æå</h2> +<p>ããPromotionæ¯å®ä½ï¼è¯ç¶ï¼å°±åä¸å¼å§æå°çï¼æä»¬éè¦å¨å¦å¤ä¸ä¸ªé¢åå»ç®¡çï¼æå»ºï¼å®æè½å¼å§åé¢çç§ææ´»å¨ï¼ç±äºæä»¬ç´æ¥åå ¥æ ¸å¿åå±å¼å·¥ä½ï¼æ¯æååæ®éåé¨åç®åæä»¬éè¿Springæ³¨å ¥åºå®å¯¹è±¡æ¥å®æï¼ä¾å¦ï¼</p> + +<p><img src="/assets/images/seckill-develop-course-part-I-spring.png" alt="å¾3 æ¯æåæ³¨å ¥" class="align-center" /></p> + +<h2 id="åè½éªè¯">åè½éªè¯</h2> +<p>ããæåï¼æä»¬ä½¿ç¨PostManä½éªå®æçåè½ï¼è¯·æ³¨æBodyçå¡«å使ç¨JSONæ ¼å¼ï¼å¹¶ä¸ç±»åéæ©JSON(application/json)ï¼</p> +<h3 id="请æ±ç§æ">请æ±ç§æ</h3> + +<p><img src="/assets/images/seckill-develop-course-part-I-request-seckill.png" alt="å¾4 请æ±ç§æ" class="align-center" /></p> + +<h3 id="æ¥è¯¢æ¥æç伿 å¸">æ¥è¯¢æ¥æç伿 å¸</h3> + +<p><img src="/assets/images/seckill-develop-course-part-I-query-coupons.png" alt="å¾5 æ¥è¯¢æ¥æç伿 å¸" class="align-center" /></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/#%E7%A7%92%E6%9D%80" 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-09-13">2017å¹´9æ13æ¥</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/seckill-development-journey-part-I/" 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/seckill-development-journey-part-I/" 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/seckill-development-journey-part-I/" 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/seckill-development-journey-part-I/" 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/seckill-development-journey-part-I/" class="pagination--pager" title="SecKill Development Journey (I) +">åå</a> + + + <a href="/docs/seckill-development-journey-part-II/" class="pagination--pager" title="SecKill Develop Journey (II) +">åå</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="seckill-develop-course-part-I"> + <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-26-seckill-develop-course-part-I.md">æ¥åæ¬ç½é¡µé®é¢</a></li> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_posts/cn/2017-08-26-seckill-develop-course-part-I.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/seckill-development-journey-part-II/index.html ---------------------------------------------------------------------- diff --git a/content/cn/docs/seckill-development-journey-part-II/index.html b/content/cn/docs/seckill-development-journey-part-II/index.html new file mode 100644 index 0000000..dd69c88 --- /dev/null +++ b/content/cn/docs/seckill-development-journey-part-II/index.html @@ -0,0 +1,809 @@ +<!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="ä»ç»å¦ä½ä¸æ¥ä¸æ¥æå»ºç§æé¡¹ç®çè¿ç¨"> + + + + +<meta name="author" content="Yangyong Zheng"> + +<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/seckill-development-journey-part-II/"> + <meta property="og:url" content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/docs/seckill-development-journey-part-II/"> + + + + <meta property="og:description" content="ä»ç»å¦ä½ä¸æ¥ä¸æ¥æå»ºç§æé¡¹ç®çè¿ç¨"> + + + + <meta name="twitter:site" content="@ServiceComb"> + <meta name="twitter:title" content="ç§æå¼ååç¨ï¼äºï¼"> + <meta name="twitter:description" content="ä»ç»å¦ä½ä¸æ¥ä¸æ¥æå»ºç§æé¡¹ç®çè¿ç¨"> + <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-30T00: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/seckill-development-journey-part-II/>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">Yangyong Zheng</h3> + + <p class="author__bio" itemprop="description"> + + + Fast Action, do not ask + + + </p> + + </div> + + <div class="author__urls-wrapper"> + <button class="btn btn--inverse">å ³æ³¨</button> + <ul class="author__urls social-icons"> + + + + <li> + <a href="https://zhengyangyong.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="ä»ç»å¦ä½ä¸æ¥ä¸æ¥æå»ºç§æé¡¹ç®çè¿ç¨"> + <meta itemprop="datePublished" content="August 30, 2017"> + <meta itemprop="dateModified" content="September 13, 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/seckill-development-journey-part-I/">䏿</a> 䏿们æå»ºäºä¸ä¸ªä» å ·ææ ¸å¿åè½çç§ææ¡æ¶ï¼æ¬ç¯ä¸æä»¬ä¼éæ¥å®åä¸äºåè½ï¼ä½¿å¾å®å ·å¤å®æ´çåºç¡åè½ã</p> + +<h2 id="é®é¢ç¹å®åèå´">é®é¢ç¹ï¼å®åèå´ï¼</h2> +<p>ããå顾设计ååç §å·²å®æçé¨åï¼æä»¬å¯ä»¥åç°ï¼</p> +<ol> + <li>没ææä¾Promotionå®ä½çæå¡ï¼Promotionæ¯åºå®éè¿Springæ³¨å ¥çï¼ï¼</li> + <li>缺ä¹ä¸äºåºæ¬çä¸å¡æ£æ¥ååè½ï¼å æ¬ï¼ + <ul> + <li>åä¸ä¸ªå®¢æ·å¨åä¸ä¸ªPromotionä¸åªè½ç§æä¸æ¬¡ï¼ä¸å 许éå¤ï¼</li> + <li>åæ¶å¯ä»¥æå¤ä¸ªPromotionè¿è¡ï¼ææ£ä¸åï¼æ°éä¹ä¸åï¼</li> + </ul> + </li> + <li>妿Commandå¾®æå¡æ éï¼å次æ¢å¤åï¼éè¦æ¢å¤æªå®ææ£å¨è¿è¡ä¸çç§ææ´»å¨ã</li> +</ol> + +<p>ããä¹è®¸æ¨ä¼è¯´ï¼å®¢æ·ç®¡çå客æ·ç»å½ä¸ºä»ä¹æ²¡æç½ååºæ¥ï¼çç¡®ï¼å®¢æ·å¨æä»¬çåºæ¯ä¸æ¯ä¸å¯æç¼ºçï¼ä½æ¯æä»¬ä¸ºäºç®åè®¾è®¡ï¼æ²¡æå å«ç»å½ä»¥å请æ±è®¤è¯çå 容ï¼å¦æå¯¹è¿æ¹é¢æå ´è¶£æ¨å¯ä»¥ç§»æ¥å°ServiceCombçCompany示ä¾å®ç°äºä¸ä¸ªç®ååºäºtokençè®¤è¯æ¹å¼ï¼å°åå¨<a href="https://github.com/ServiceComb/ServiceComb-Company-WorkShop">Company</a>ã</p> + +<h2 id="忬¡è®¾è®¡">忬¡è®¾è®¡</h2> +<p>ãã对äºå®ä½ï¼é¢å驱å¨è®¾è®¡ï¼<a href="https://en.wikipedia.org/wiki/Domain-driven_design">DDD</a>ï¼æ¨è使ç¨ç¬ç«æ¥å£ï¼å æ¤æä»¬è®¾è®¡ä¸ä¸ªæ°çAdminå¾®æå¡æ¥æä¾æå¡ï¼</p> + +<p><img src="/assets/images/seckill-develop-course-part-II-arth.png" alt="å¾1 å¢å äºAdminå¾®æå¡åçæ¶æ" class="align-center" /></p> + +<h2 id="åè½å®ç°">åè½å®ç°</h2> +<h3 id="adminå¾®æå¡çå®ç°">Adminå¾®æå¡çå®ç°</h3> +<p>ããAdminå¾®æå¡ç´§ç´§å´ç»Promotionå®ä½æä¾æå¡ï¼æä»¬å®å ¨å¯ä»¥æ å°å°å¯¹åºçRESTæ¹å¼ï¼å³ï¼</p> +<ul> + <li>æ°å¢Promotion对åºPostï¼ãã</li> + <li>ä¿®æ¹Promotion对åºPutï¼ãã</li> + <li>æ¥è¯¢Promotion对åºGetï¼ãã</li> + <li>å é¤Promotion对åºDeleteããã</li> +</ul> + +<p>ããæ»¡è¶³å½åçéæ±åªéè¦å®æPoståPutå°±å¯ä»¥äºï¼å¦å¤ï¼èèå°å·²ç»å¼å§çç§ææ´»å¨ä¸åºè¯¥è½ä¿®æ¹ï¼æä»¬å¢å äºå¯¹åºçæ£æ¥é»è¾ã</p> + +<h3 id="æ£æ¥ååè½çå®ç°">æ£æ¥ååè½çå®ç°</h3> +<p>ããéè¿å¢å ä¸ä¸ªHashSetæ£æ¥å®¢æ·æ¯å¦éå¤ç§ææåï¼<br /> +ããæå»ºSecKillPromotionBootstrapä½ä¸ºPromotionå¯å¨ç管çå¨ç¨äºæ¯æå¤ä¸ªPromotionåæ¶è¿è¡ï¼å°SecKillCommandServiceåSecKillPersistentRunner使ç¨éå管çã</p> + +<h3 id="commandå¾®æå¡æ 鿢å¤çå®ç°">Commandå¾®æå¡æ 鿢å¤çå®ç°</h3> +<p>ããæå»ºSecKillRecoveryServiceå¤çPromotionæ¢å¤æ£æ¥ï¼æªå®æçPromotionæ è®ºæ¯æªå¼å§çè¿æ¯è¿è¡ä¸çï¼é½éè¦å®å®ææ£æ¥è¿åæ£ç¡®çæ¢å¤ä¿¡æ¯ï¼ä¿¡æ¯å æ¬å©ä½å¸æ°ãå·²ç§ææåç客æ·å表çã</p> + +<h2 id="åè½éªè¯">åè½éªè¯</h2> +<p>ããæåï¼æä»¬ä½¿ç¨PostManä½éªå®æçåè½ï¼è¯·æ³¨æBodyçå¡«å使ç¨JSONæ ¼å¼ï¼å¹¶ä¸ç±»åéæ©JSON(application/json)ï¼</p> +<h3 id="åå»ºç§ææ´»å¨">åå»ºç§ææ´»å¨</h3> + +<p><img src="/assets/images/seckill-develop-course-part-II-create-promotion.png" alt="å¾2 åå»ºç§ææ´»å¨" class="align-center" /></p> + +<h3 id="æ¥è¯¢æ£å¨è¿è¡çç§ææ´»å¨">æ¥è¯¢æ£å¨è¿è¡çç§ææ´»å¨</h3> + +<p><img src="/assets/images/seckill-develop-course-part-II-query-active-promotion.png" alt="å¾3 æ¥è¯¢æ£å¨è¿è¡çç§ææ´»å¨" class="align-center" /></p> + +<h3 id="æç»éå¤ç§æ">æç»éå¤ç§æ</h3> + +<p><img src="/assets/images/seckill-develop-course-part-II-reject-duplicate-grab.png" alt="å¾4 æç»éå¤ç§æ" class="align-center" /></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/#%E7%A7%92%E6%9D%80" 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-09-13">2017å¹´9æ13æ¥</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/seckill-development-journey-part-II/" 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/seckill-development-journey-part-II/" 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/seckill-development-journey-part-II/" 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/seckill-development-journey-part-II/" 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/seckill-development-journey-part-II/" class="pagination--pager" title="SecKill Develop Journey (II) +">åå</a> + + + <a href="/docs/seckill-development-journey-part-III/" class="pagination--pager" title="SecKill Develop Journey (III) +">åå</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="seckill-develop-course-part-II"> + <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-30-seckill-develop-course-part-II.md">æ¥åæ¬ç½é¡µé®é¢</a></li> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_posts/cn/2017-08-30-seckill-develop-course-part-II.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>
