http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/08e1b43f/content/cn/users/service-configurations/index.html ---------------------------------------------------------------------- diff --git a/content/cn/users/service-configurations/index.html b/content/cn/users/service-configurations/index.html new file mode 100644 index 0000000..52c9ce7 --- /dev/null +++ b/content/cn/users/service-configurations/index.html @@ -0,0 +1,1095 @@ +<!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=""> + +<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/users/service-configurations/"> + <meta property="og:url" content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/users/service-configurations/"> + + + + <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"> + + + + + + + + + + + + + + + + + + + + + + + <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 class="active" 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=/users/service-configurations/>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> + + <span class="nav__sub-title">ç¨æ·æå</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/" class="">Java Chassisç³»ç»æ¶æ</a></li> + + + + + + + + <li><a href="/cn/users/setup-environment/" class="">ç¯å¢é ç½®</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">å¼åæå¡æä¾è </span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/service-definition/" class="">æå¡å®ä¹</a></li> + + + + + + + + <li><a href="/cn/users/service-contract/" class="">æå¡å¥çº¦</a></li> + + + + + + + + <li><a href="/cn/users/develop-with-springmvc/" class="">ç¨SpringMVCå¼åå¾®æå¡</a></li> + + + + + + + + <li><a href="/cn/users/develop-with-jax-rs/" class="">ç¨JAX-RSå¼åå¾®æå¡</a></li> + + + + + + + + <li><a href="/cn/users/develop-with-transparent-rpc/" class="">ç¨éæRPCå¼åå¾®æå¡</a></li> + + + + + + + + <li><a href="/cn/users/service-interface-constraints/" class="">æå¡æ¥å£çº¦æ</a></li> + + + + + + + + <li><a href="/cn/users/service-configurations/" class="active">æå¡é ç½®</a></li> + + + + + + + + <li><a href="/cn/users/communicate-protocol/" class="">éä¿¡åè®®</a></li> + + + + + + + + <li><a href="/cn/users/application-boot-process/" class="">ç¨åºå¯å¨é»è¾</a></li> + + + + + + + + <li><a href="/cn/users/service-heartbeat/" class="">æå¡å¿è·³</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">å¼åæå¡æ¶è´¹è </span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/develop-with-rest-template/" class="">使ç¨Rest Templateæ¹å¼å¼å</a></li> + + + + + + + + <li><a href="/cn/users/develop-with-rpc/" class="">使ç¨RPCæ¹å¼å¼å</a></li> + + + + + + + + <li><a href="/cn/users/use-service-contract/" class="">使ç¨æå¡å¥çº¦</a></li> + + + + + + + + <li><a href="/cn/users/invoke-control/" class="">è°ç¨æ§å¶</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">éç¨å¼å</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/local-develop-test/" class="">æ¬å°å¼åä¸æµè¯</a></li> + + + + + + + + <li><a href="/cn/users/use-servicecomb-in-spring-boot/" class="">å¨Spring Bootä¸ä½¿ç¨ServiceComb</a></li> + + + + + + + + <li><a href="/cn/users/distributed-tracing/" class="">åå¸å¼è°ç¨é¾è¿½è¸ª</a></li> + + + + + + + + <li><a href="/cn/users/customized-tracing/" class="">èªå®ä¹è°ç¨é¾æç¹</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">æå¡è½åå¼æ¾</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/edging-service/nginx/" class="">使ç¨confdåNginxåè¾¹ç¼æå¡</a></li> + + + + + + + + <li><a href="/cn/users/edging-service/zuul/" class="">使ç¨Zuulåè¾¹ç¼æå¡</a></li> + + </ul> + + </li> + + <li> + + + + + <a href="/cn/users/metrics/"><span class="nav__sub-title nav__sub-title-with-url">çæ§</span></a> + + + + </li> + + <li> + + <span class="nav__sub-title">é¨ç½²</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/run-mode/" class="">è¿è¡æ¨¡å¼</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">å¾®æå¡å®å ¨</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/use-tls/" class="">使ç¨TLSéä¿¡</a></li> + + </ul> + + </li> + + </ul> +</nav> + + + + </div> + + + + <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> + <meta itemprop="headline" content="æå¡é ç½®"> + <meta itemprop="description" content="æå¡é ç½®"> + + <meta itemprop="dateModified" content="August 15, 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> <ul> + <li><a href="#åºæ¯æè¿°" id="markdown-toc-åºæ¯æè¿°">åºæ¯æè¿°</a></li> + <li><a href="#é 置说æ" id="markdown-toc-é 置说æ">é 置说æ</a></li> + <li><a href="#示ä¾ä»£ç " id="markdown-toc-示ä¾ä»£ç ">示ä¾ä»£ç </a></li> + </ul> + </li> + <li><a href="#èªå®ä¹è·¯ç±çç¥" id="markdown-toc-èªå®ä¹è·¯ç±çç¥">èªå®ä¹è·¯ç±çç¥</a></li> + <li><a href="#éæµçç¥" id="markdown-toc-éæµçç¥">éæµçç¥</a> <ul> + <li><a href="#åºæ¯æè¿°-1" id="markdown-toc-åºæ¯æè¿°-1">åºæ¯æè¿°</a></li> + <li><a href="#注æäºé¡¹" id="markdown-toc-注æäºé¡¹">注æäºé¡¹</a></li> + <li><a href="#é 置说æ-1" id="markdown-toc-é 置说æ-1">é 置说æ</a></li> + </ul> + </li> + <li><a href="#é级çç¥" id="markdown-toc-é级çç¥">é级çç¥</a> <ul> + <li><a href="#æ¦å¿µéè¿°" id="markdown-toc-æ¦å¿µéè¿°">æ¦å¿µéè¿°</a></li> + <li><a href="#åºæ¯æè¿°-2" id="markdown-toc-åºæ¯æè¿°-2">åºæ¯æè¿°</a></li> + <li><a href="#é 置说æ-2" id="markdown-toc-é 置说æ-2">é 置说æ</a></li> + </ul> + </li> + <li><a href="#示ä¾ä»£ç -1" id="markdown-toc-示ä¾ä»£ç -1">示ä¾ä»£ç </a></li> +</ul> + + </nav> +</aside> + +<h2 id="è´è½½åè¡¡çç¥">è´è½½åè¡¡çç¥</h2> +<h3 id="åºæ¯æè¿°">åºæ¯æè¿°</h3> + +<p>ããServiceCombæä¾äºåºäºRibbonçè´è½½åè¡¡æ¹æ¡ï¼ç¨æ·å¯ä»¥éè¿é ç½®æ件é ç½®è´è½½åè¡¡çç¥ï¼å½åæ¯æéæºã顺åºãåºäºååºæ¶é´çæå¼çå¤ç§è´è½½åè¡¡è·¯ç±çç¥ã</p> + +<h3 id="é 置说æ">é 置说æ</h3> + +<p>ããè´è½½åè¡¡çç¥å¨mocroservice.yamlæ件ä¸é ç½®ï¼é 置项为<code class="highlighter-rouge">cse.loadbalance.[MicroServiceName].[property name]</code>ï¼å ¶ä¸è¥çç¥MicroServiceNameï¼åä¸ºå ¨å±é ç½®ï¼è¥æå®MicroServiceNameï¼å为é对ç¹å®å¾®æå¡çé ç½®ã</p> + +<p>ãã<strong>表1 é 置项说æ</strong></p> + +<table> + <thead> + <tr> + <th style="text-align: left">é 置项</th> + <th style="text-align: left">é»è®¤å¼</th> + <th style="text-align: left">åå¼èå´</th> + <th style="text-align: left">æ¯å¦å¿ é</th> + <th style="text-align: left">å«ä¹</th> + <th style="text-align: left">注æ</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left">cse.loadbalance.NFLoadBalancerRuleClassName</td> + <td style="text-align: left">com.netflix.loadbalancer.RoundRobinRule</td> + <td style="text-align: left">com.netflix.loadbalancer.RoundRobinRuleï¼è½®è¯¢ï¼com.netflix.loadbalancer.RandomRuleï¼éæºï¼com.netflix.loadbalancer.WeightedResponseTimeRuleï¼æå¡å¨ååºæ¶é´æå¼ï¼io.servicecomb.loadbalance.SessionStickinessRuleï¼ä¼è¯ä¿æï¼</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">è´è½½åè¡¡è·¯ç±çç¥</td> + <td style="text-align: left">-</td> + </tr> + <tr> + <td style="text-align: left">cse.loadbalance.SessionStickinessRule.sessionTimeoutInSeconds</td> + <td style="text-align: left">30</td> + <td style="text-align: left">Integer</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">客æ·ç«¯é²ç½®æ¶é´ï¼è¶ è¿éå¶åéæ©åé¢çæå¡å¨ã</td> + <td style="text-align: left">æä¸æ¯æå¾®æå¡é ç½®ãe.g. cse.loadbalance.SessionStickinessRule.sessionTimeoutInSecondsï¼ä¸è½é 置为cse.loadbalance.DemoService.SessionStickinessRule.sessionTimeoutInSeconds</td> + </tr> + <tr> + <td style="text-align: left">cse.loadbalance.SessionStickinessRule.successiveFailedTimes</td> + <td style="text-align: left">5</td> + <td style="text-align: left">Integer</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">客æ·ç«¯å¤±è´¥æ¬¡æ°ï¼è¶ è¿åä¼åæ¢æå¡å¨</td> + <td style="text-align: left">æä¸æ¯æå¾®æå¡é ç½®</td> + </tr> + <tr> + <td style="text-align: left">cse.loadbalance.retryEnabled</td> + <td style="text-align: left">FALSE</td> + <td style="text-align: left">Boolean</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">è´è½½åè¡¡æè·å°æå¡è°ç¨å¼å¸¸ï¼æ¯å¦è¿è¡éè¯</td> + <td style="text-align: left">-</td> + </tr> + <tr> + <td style="text-align: left">cse.loadbalance.retryOnNext</td> + <td style="text-align: left">0</td> + <td style="text-align: left">Integer</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">å°è¯æ°çæå¡å¨ç次æ°</td> + <td style="text-align: left">-</td> + </tr> + <tr> + <td style="text-align: left">cse.loadbalance.retryOnSame</td> + <td style="text-align: left">0</td> + <td style="text-align: left">Integer</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">åä¸ä¸ªæå¡å¨å°è¯ç次æ°</td> + <td style="text-align: left">-</td> + </tr> + <tr> + <td style="text-align: left">cse.loadbalance.isolation.enabled</td> + <td style="text-align: left">FALSE</td> + <td style="text-align: left">Boolean</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">æ¯å¦å¼å¯æ éå®ä¾é离åè½</td> + <td style="text-align: left">-</td> + </tr> + <tr> + <td style="text-align: left">cse.loadbalance.isolation.enableRequestThreshold</td> + <td style="text-align: left">20</td> + <td style="text-align: left">Integer</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">å½å®ä¾çè°ç¨æ»æ¬¡æ°è¾¾å°è¯¥å¼æ¶å¼å§è¿å ¥é离é»è¾é¨æ§</td> + <td style="text-align: left">-</td> + </tr> + <tr> + <td style="text-align: left">cse.loadbalance.isolation.errorThresholdPercentage</td> + <td style="text-align: left">20</td> + <td style="text-align: left">Integerï¼åºé´ä¸º(0,100]</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">å®ä¾æ éé离é误ç¾åæ¯</td> + <td style="text-align: left">-</td> + </tr> + <tr> + <td style="text-align: left">cse.loadbalance.isolation.singleTestTime</td> + <td style="text-align: left">10000</td> + <td style="text-align: left">Integer</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">æ éå®ä¾åç¹æµè¯æ¶é´</td> + <td style="text-align: left">åä½ä¸ºms</td> + </tr> + <tr> + <td style="text-align: left">cse.loadbalance.transactionControl.policy</td> + <td style="text-align: left">io.servicecomb.loadbalance.filter.SimpleTransactionControlFilter</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">å¨æè·¯ç±åæµçç¥</td> + <td style="text-align: left">æ¡æ¶æä¾äºç®åçåæµæºå¶ï¼å¼åè ä¹å¯ä»¥å®ç°èªå®ä¹çåæµè¿æ»¤çç¥</td> + </tr> + <tr> + <td style="text-align: left">cse.loadbalance.transactionControl.options</td> + <td style="text-align: left">-</td> + <td style="text-align: left">key/value pairs</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">é对SimpleTransactionControlFilteråæµçç¥çé 置项ï¼å¯æ·»å ä»»æ项è¿æ»¤æ ç¾</td> + <td style="text-align: left">-</td> + </tr> + </tbody> +</table> + +<h3 id="示ä¾ä»£ç ">示ä¾ä»£ç </h3> + +<p>ããè´è½½åè¡¡çç¥é ç½®å¨src/main/resources/microservice.yamlæ件ä¸ã</p> + +<p>ããé ç½®å¤çé¾ï¼</p> + +<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">cse</span><span class="pi">:</span> + <span class="c1"># other configurations omitted</span> + <span class="s">handler</span><span class="pi">:</span> + <span class="s">chain</span><span class="pi">:</span> + <span class="s">Consumer</span><span class="pi">:</span> + <span class="s">default</span><span class="pi">:</span> <span class="s">loadbalance</span> + <span class="c1"># other configurations omitted</span> +</code></pre> +</div> + +<p>ããå¢å è·¯ç±çç¥ï¼</p> + +<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">cseï¼</span> + <span class="s"># other configurations omitted</span> + <span class="s">loadbalance</span><span class="pi">:</span> + <span class="s">NFLoadBalancerRuleClassName</span><span class="pi">:</span> <span class="s">com.netflix.loadbalancer.RoundRobinRule</span> + <span class="c1"># other configurations omitted</span> +</code></pre> +</div> + +<h2 id="èªå®ä¹è·¯ç±çç¥">èªå®ä¹è·¯ç±çç¥</h2> + +<p>ããç¨æ·å¯ä»¥å¨ServiceCombæä¾çè·¯ç±çç¥æ¡æ¶ä¸æ ¹æ®ä¸å¡éè¦ï¼éè¿ç¼ç¨çæ¹å¼æ¥å¼åè·¯ç±çç¥ãå®æ½æ¥éª¤å¦ä¸ï¼</p> + +<ul> + <li> + <p>å®ç°æ¥å£<code class="highlighter-rouge">com.netflix.loadbalancer.IRule</code>ä¸å®ä¹çæ¥å£æ¹æ³ã +è·¯ç±éæ©é»è¾å¨public Server choose(Object key)æ¹æ³ä¸å®ç°ãLoadBalancerStatsæ¯ä¸ä¸ªå°è£ äºè´è½½åè¡¡å¨å½åè¿è¡ç¶æçä¸ä¸ªç»æãéè¿è·åstatsä¸å个å®ä¾çè¿è¡ææ ï¼å¨chooseæ¹æ³ä¸ï¼å¤å®å°å½å请æ±è·¯ç±å°åªä¸ªå®ä¾ä¸è¿è¡å¤çãå¤çé£æ ¼å¯ä»¥åç §<code class="highlighter-rouge">io.servicecomb.loadbalance.SessionStickinessRule</code>ã</p> + </li> + <li> + <p>ç¼è¯å¼åççç¥ï¼ä¿è¯çæçclasså¨classpathä¸ã</p> + </li> + <li> + <p>éè¿SDKé 置该路ç±çç¥ï¼åå¦æ¯<code class="highlighter-rouge">AbcRule</code>ãåé ç½®å¦ä¸ï¼ <code class="highlighter-rouge">cse.loadbalance.NFLoadBalancerRuleClassName=io.servicecomb.ribbon.rule.AbcRule</code></p> + </li> +</ul> + +<h2 id="éæµçç¥">éæµçç¥</h2> +<h3 id="åºæ¯æè¿°-1">åºæ¯æè¿°</h3> + +<p>ç¨æ·å¨provider端使ç¨éæµçç¥ï¼å¯ä»¥éå¶æå®å¾®æå¡åå ¶åé请æ±çé¢çï¼è¾¾å°éå¶æ¯ç§éæ大请æ±æ°éçææã</p> + +<h3 id="注æäºé¡¹">注æäºé¡¹</h3> + +<ol> + <li>éæµçç¥çæ§å¶å¹¶ä¸æ¯ç»å¯¹ç²¾ç¡®çï¼å¯è½ä¼æå°é误差ã</li> + <li>provider端çæµéæ§å¶æ¯ä¸å¡å±é¢çåè½ï¼ä¸æ¯å®å ¨æä¹ä¸çæµéæ§å¶ï¼å¦éé²æ¢DDoSæ»å»ï¼éè¦ç»åå ¶ä»çä¸ç³»åæªæ½ã</li> + <li>æµéæ§å¶æ¯å¾®æå¡çº§çï¼ä¸æ¯è¿ç¨çº§çã</li> +</ol> + +<h3 id="é 置说æ-1">é 置说æ</h3> + +<p>ããéæµçç¥é ç½®å¨microservice.yamlæ件ä¸ï¼ç¸å ³é 置项è§ä¸è¡¨ãè¦å¼å¯æå¡æä¾è 端çéæµçç¥ï¼è¿éè¦å¨å¤çé¾ä¸é ç½®æå¡ç«¯éæµhandlerï¼é 置示ä¾å¦ä¸ï¼</p> + +<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">cse</span><span class="pi">:</span> + <span class="s">handler</span><span class="pi">:</span> + <span class="s">chain</span><span class="pi">:</span> + <span class="s">Consumer</span><span class="pi">:</span> + <span class="s">default</span><span class="pi">:</span> <span class="s">qps-flowcontrol-provider</span> +</code></pre> +</div> + +<p>ãã<strong>表2 QPSæµæ§é 置项说æ</strong></p> + +<table> + <thead> + <tr> + <th style="text-align: left">é 置项</th> + <th style="text-align: left">é»è®¤å¼</th> + <th style="text-align: left">åå¼èå´</th> + <th style="text-align: left">æ¯å¦å¿ é</th> + <th style="text-align: left">å«ä¹</th> + <th style="text-align: left">注æ</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left">cse.flowcontrol.Provider.qps.enabled</td> + <td style="text-align: left">true</td> + <td style="text-align: left">true/false</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">æ¯å¦å¯ç¨Provideræµæ§</td> + <td style="text-align: left">-</td> + </tr> + <tr> + <td style="text-align: left">cse.flowcontrol.Provider.qps.limit.[ServiceName]</td> + <td style="text-align: left">2147483647ï¼max intï¼</td> + <td style="text-align: left">(0,2147483647]ï¼æ´å½¢</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">æ¯ç§éå 许ç请æ±æ°</td> + <td style="text-align: left">ä» æ¯æmicroserviceä¸ä¸ªçº§å«çé ç½®</td> + </tr> + <tr> + <td style="text-align: left">cse.flowcontrol.Provider.qps.global.limit</td> + <td style="text-align: left">2147483647ï¼max intï¼</td> + <td style="text-align: left">(0,2147483647]ï¼æ´å½¢</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">provideræ¥å请æ±æµéçå ¨å±é ç½®</td> + <td style="text-align: left">没æå ·ä½å°å¾®æå¡çé ç½®æ¶ï¼æ¤é ç½®çæ</td> + </tr> + </tbody> +</table> + +<h2 id="é级çç¥">é级çç¥</h2> +<h3 id="æ¦å¿µéè¿°">æ¦å¿µéè¿°</h3> + +<p>é级çç¥æ¯å½æå¡è¯·æ±å¼å¸¸æ¶ï¼å¾®æå¡æéç¨çå¼å¸¸å¤ççç¥ãé级çç¥æä¸ä¸ªç¸å ³çææ¯æ¦å¿µï¼âé离âãâçæâãâ容éâï¼</p> + +<p>é级çç¥æä¸ä¸ªç¸å ³çææ¯æ¦å¿µï¼âé离âãâçæâãâ容éâï¼</p> +<ul> + <li>âé离âæ¯ä¸ç§å¼å¸¸æ£æµæºå¶ï¼å¸¸ç¨çæ£æµæ¹æ³æ¯è¯·æ±è¶ æ¶ãæµéè¿å¤§çãä¸è¬ç设置åæ°å æ¬è¶ æ¶æ¶é´ãåæ¶å¹¶å请æ±ä¸ªæ°çã</li> + <li>âçæâæ¯ä¸ç§å¼å¸¸ååºæºå¶ï¼âçæâä¾èµäºâé离âãçæé常åºäºé误çæ¥å®ç°ãä¸è¬ç设置åæ°å æ¬ç»è®¡è¯·æ±ç个æ°ãé误ççã</li> + <li>â容éâæ¯ä¸ç§å¼å¸¸å¤çæºå¶ï¼â容éâä¾èµäºâçæâãçæ以åï¼ä¼è°ç¨â容éâçæ¹æ³ãä¸è¬ç设置åæ°å æ¬è°ç¨å®¹éæ¹æ³ç次æ°çã</li> +</ul> + +<p>æè¿äºæ¦å¿µè系起æ¥ï¼å½âé离âæªæ½æ£æµå°N次请æ±ä¸å ±æM次é误çæ¶åï¼âçæâä¸ååéåç»è¯·æ±ï¼è°ç¨â容éâå¤çå½æ°ãè¿ä¸ªææ¯ä¸çå®ä¹ï¼æ¯åNetflix Hystrixä¸è´çï¼éè¿è¿ä¸ªå®ä¹ï¼é常容æç解å®æä¾çé 置项ï¼åèï¼<a href="https://github.com/Netflix/Hystrix/wiki/Configuration">https://github.com/Netflix/Hystrix/wiki/Configuration</a>ãå½åServiceCombæä¾ä¸¤ç§å®¹éæ¹å¼ï¼åå«ä¸ºè¿ånullå¼åæåºå¼å¸¸ã</p> + +<h3 id="åºæ¯æè¿°-2">åºæ¯æè¿°</h3> + +<p>ç¨æ·éè¿é ç½®é级çç¥ï¼å¯ä»¥è®¾ç½®å¾®æå¡çå¼å¸¸å¤ççç¥ã</p> + +<h3 id="é 置说æ-2">é 置说æ</h3> + +<p>ããé 置项å¦è¡¨æ示ã</p> + +<p>ãã<strong>表3 é级çç¥ç¸å ³é 置项说æ</strong></p> + +<table> + <thead> + <tr> + <th style="text-align: left">é 置项</th> + <th style="text-align: left">é»è®¤å¼</th> + <th style="text-align: left">åå¼èå´</th> + <th style="text-align: left">æ¯å¦å¿ é</th> + <th style="text-align: left">å«ä¹</th> + <th style="text-align: left">注æ</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left">cse.isolation.timeout.enabled</td> + <td style="text-align: left">FALSE</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">æ¯å¦å¯ç¨è¶ æ¶æ£æµ</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td style="text-align: left">cse.isolation.timeoutInMilliseconds</td> + <td style="text-align: left">30000</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">è¶ æ¶æ¶é´éå¼</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td style="text-align: left">cse.isolation.maxConcurrentRequests</td> + <td style="text-align: left">10</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">æ大并åæ°éå¼</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td style="text-align: left">cse.circuitBreaker.enabled</td> + <td style="text-align: left">TRUE</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">æ¯å¦å¯ç¨çææªæ½</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td style="text-align: left">cse.circuitBreaker.forceOpen</td> + <td style="text-align: left">FALSE</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">ä¸ç®¡å¤±è´¥æ¬¡æ°ï¼é½è¿è¡çæ</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td style="text-align: left">cse.circuitBreaker.forceClosed</td> + <td style="text-align: left">FALSE</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">ä»»ä½æ¶åé½ä¸çæ</td> + <td style="text-align: left">å½ä¸forceOpenåæ¶é ç½®æ¶ï¼forceOpenä¼å ã</td> + </tr> + <tr> + <td style="text-align: left">cse.circuitBreaker.sleepWindowInMilliseconds</td> + <td style="text-align: left">15000</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">çæåï¼å¤é¿æ¶é´æ¢å¤</td> + <td style="text-align: left">æ¢å¤åï¼ä¼éæ°è®¡ç®å¤±è´¥æ åµã注æï¼å¦ææ¢å¤åçè°ç¨ç«å³å¤±è´¥ï¼é£ä¹ä¼ç«å³éæ°è¿å ¥çæã</td> + </tr> + <tr> + <td style="text-align: left">cse.circuitBreaker.requestVolumeThreshold</td> + <td style="text-align: left">20</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">10så ç»è®¡é误åç次æ°éå¼ï¼è¶ è¿éå¼å触åçæ</td> + <td style="text-align: left">ç±äº10ç§è¿ä¼è¢«åå为10个1ç§çç»è®¡å¨æï¼ç»è¿1sä¸åæä¼å¼å§è®¡ç®é误çï¼å æ¤ä»è°ç¨å¼å§è³å°ç»è¿1sï¼æä¼åççæã</td> + </tr> + <tr> + <td style="text-align: left">cse.circuitBreaker.errorThresholdPercentage</td> + <td style="text-align: left">50</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">é误çéå¼ï¼è¾¾å°éå¼å触åçæ</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td style="text-align: left">cse.fallback.enabled</td> + <td style="text-align: left">TRUE</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">æ¯å¦å¯ç¨åºéåçæ éå¤çæªæ½</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td style="text-align: left">cse.fallback.maxConcurrentRequests</td> + <td style="text-align: left">10</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">并åè°ç¨å®¹éå¤çæªæ½ï¼cse.fallbackpolicy.policyï¼ç请æ±æ°ï¼è¶ è¿è¿ä¸ªå¼åä¸åè°ç¨å¤çæªæ½ï¼ç´æ¥è¿åå¼å¸¸</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td style="text-align: left">cse.fallbackpolicy.policy</td> + <td style="text-align: left">throwexception</td> + <td style="text-align: left">returnnulll | throwexception</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">åºéåçå¤ççç¥</td> + <td style="text-align: left"> </td> + </tr> + </tbody> +</table> + +<p class="notice--warning"><strong>注æï¼</strong> è°¨æ 使ç¨cse.isolation.timeout.enabled=trueãå 为系ç»å¤çé¾é½æ¯å¼æ¥æ§è¡ï¼ä¸é´å¤çé¾çè¿åï¼ä¼å¯¼è´åé¢å¤çé¾çé»è¾å¤çææ丢失ãå°½å¯è½å°cse.isolation.timeout.enabledä¿æé»è®¤å¼falseï¼å¹¶ä¸æ£ç¡®è®¾ç½®ç½ç»å±è¶ æ¶æ¶é´cse.request.timeout=30000ã</p> + +<h2 id="示ä¾ä»£ç -1">示ä¾ä»£ç </h2> + +<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">cse</span><span class="pi">:</span> + <span class="s">handler</span><span class="pi">:</span> + <span class="s">chain</span><span class="pi">:</span> + <span class="s">Consumer</span><span class="pi">:</span> + <span class="s">default</span><span class="pi">:</span> <span class="s">bizkeeper-consumer</span> + <span class="s">isolation</span><span class="pi">:</span> + <span class="s">Consumer</span><span class="pi">:</span> + <span class="s">timeout</span><span class="pi">:</span> + <span class="s">enabled</span><span class="pi">:</span> <span class="s">true</span> + <span class="s">timeoutInMilliseconds</span><span class="pi">:</span> <span class="s">30000</span> + <span class="s">circuitBreaker</span><span class="pi">:</span> + <span class="s">sleepWindowInMilliseconds</span><span class="pi">:</span> <span class="s">15000</span> + <span class="s">requestVolumeThreshold</span><span class="pi">:</span> <span class="s">20</span> + <span class="s">fallback</span><span class="pi">:</span> + <span class="s">enabled</span><span class="pi">:</span> <span class="s">true</span> + <span class="s">policy</span><span class="pi">:</span> <span class="s">throwexception</span> +</code></pre> +</div> + +<blockquote> + <p><strong>说æï¼</strong> +é级çç¥éè¦å¯ç¨æå¡æ²»çè½åï¼å¯¹åºçæå¡æä¾è çhandleræ¯<code class="highlighter-rouge">bizkeeper-provider</code>ï¼æå¡æ¶è´¹è çhandleræ¯<code class="highlighter-rouge">bizkeeper-consumer</code>ã</p> +</blockquote> + + + </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 _users/cn/service-configurations.md">æ¥åæ¬ç½é¡µé®é¢</a></li> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_users/cn/service-configurations.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/users/service-contract/index.html ---------------------------------------------------------------------- diff --git a/content/cn/users/service-contract/index.html b/content/cn/users/service-contract/index.html new file mode 100644 index 0000000..c48f8c8 --- /dev/null +++ b/content/cn/users/service-contract/index.html @@ -0,0 +1,802 @@ +<!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=""> + +<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/users/service-contract/"> + <meta property="og:url" content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/users/service-contract/"> + + + + <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"> + + + + + + + + + + + + + + + + + + + + + + + <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 class="active" 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=/users/service-contract/>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> + + <span class="nav__sub-title">ç¨æ·æå</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/" class="">Java Chassisç³»ç»æ¶æ</a></li> + + + + + + + + <li><a href="/cn/users/setup-environment/" class="">ç¯å¢é ç½®</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">å¼åæå¡æä¾è </span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/service-definition/" class="">æå¡å®ä¹</a></li> + + + + + + + + <li><a href="/cn/users/service-contract/" class="active">æå¡å¥çº¦</a></li> + + + + + + + + <li><a href="/cn/users/develop-with-springmvc/" class="">ç¨SpringMVCå¼åå¾®æå¡</a></li> + + + + + + + + <li><a href="/cn/users/develop-with-jax-rs/" class="">ç¨JAX-RSå¼åå¾®æå¡</a></li> + + + + + + + + <li><a href="/cn/users/develop-with-transparent-rpc/" class="">ç¨éæRPCå¼åå¾®æå¡</a></li> + + + + + + + + <li><a href="/cn/users/service-interface-constraints/" class="">æå¡æ¥å£çº¦æ</a></li> + + + + + + + + <li><a href="/cn/users/service-configurations/" class="">æå¡é ç½®</a></li> + + + + + + + + <li><a href="/cn/users/communicate-protocol/" class="">éä¿¡åè®®</a></li> + + + + + + + + <li><a href="/cn/users/application-boot-process/" class="">ç¨åºå¯å¨é»è¾</a></li> + + + + + + + + <li><a href="/cn/users/service-heartbeat/" class="">æå¡å¿è·³</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">å¼åæå¡æ¶è´¹è </span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/develop-with-rest-template/" class="">使ç¨Rest Templateæ¹å¼å¼å</a></li> + + + + + + + + <li><a href="/cn/users/develop-with-rpc/" class="">使ç¨RPCæ¹å¼å¼å</a></li> + + + + + + + + <li><a href="/cn/users/use-service-contract/" class="">使ç¨æå¡å¥çº¦</a></li> + + + + + + + + <li><a href="/cn/users/invoke-control/" class="">è°ç¨æ§å¶</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">éç¨å¼å</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/local-develop-test/" class="">æ¬å°å¼åä¸æµè¯</a></li> + + + + + + + + <li><a href="/cn/users/use-servicecomb-in-spring-boot/" class="">å¨Spring Bootä¸ä½¿ç¨ServiceComb</a></li> + + + + + + + + <li><a href="/cn/users/distributed-tracing/" class="">åå¸å¼è°ç¨é¾è¿½è¸ª</a></li> + + + + + + + + <li><a href="/cn/users/customized-tracing/" class="">èªå®ä¹è°ç¨é¾æç¹</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">æå¡è½åå¼æ¾</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/edging-service/nginx/" class="">使ç¨confdåNginxåè¾¹ç¼æå¡</a></li> + + + + + + + + <li><a href="/cn/users/edging-service/zuul/" class="">使ç¨Zuulåè¾¹ç¼æå¡</a></li> + + </ul> + + </li> + + <li> + + + + + <a href="/cn/users/metrics/"><span class="nav__sub-title nav__sub-title-with-url">çæ§</span></a> + + + + </li> + + <li> + + <span class="nav__sub-title">é¨ç½²</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/run-mode/" class="">è¿è¡æ¨¡å¼</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">å¾®æå¡å®å ¨</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/use-tls/" class="">使ç¨TLSéä¿¡</a></li> + + </ul> + + </li> + + </ul> +</nav> + + + + </div> + + + + <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> + <meta itemprop="headline" content="æå¡å¥çº¦"> + <meta itemprop="description" content="æå¡å¥çº¦"> + + <meta itemprop="dateModified" content="August 15, 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="#æ¾å¼å¥çº¦" id="markdown-toc-æ¾å¼å¥çº¦">æ¾å¼å¥çº¦</a> <ul> + <li><a href="#é 置说æ" id="markdown-toc-é 置说æ">é 置说æ</a></li> + <li><a href="#示ä¾ä»£ç " id="markdown-toc-示ä¾ä»£ç ">示ä¾ä»£ç </a></li> + </ul> + </li> + <li><a href="#éå¼å¥çº¦" id="markdown-toc-éå¼å¥çº¦">éå¼å¥çº¦</a> <ul> + <li><a href="#æ¦å¿µéè¿°-1" id="markdown-toc-æ¦å¿µéè¿°-1">æ¦å¿µéè¿°</a></li> + <li><a href="#åºæ¯æè¿°-1" id="markdown-toc-åºæ¯æè¿°-1">åºæ¯æè¿°</a></li> + <li><a href="#æ¶åapi" id="markdown-toc-æ¶åapi">æ¶åAPI</a></li> + </ul> + </li> +</ul> + + </nav> +</aside> + +<h2 id="æ¦å¿µéè¿°">æ¦å¿µéè¿°</h2> + +<p>æå¡å¥çº¦ï¼æåºäºOpenAPIè§èçå¾®æå¡æ¥å£å¥çº¦ï¼æ¯æå¡ç«¯ä¸æ¶è´¹ç«¯å¯¹äºæ¥å£çå®ä¹ã</p> + +<h2 id="åºæ¯æè¿°">åºæ¯æè¿°</h2> + +<p>æå¡å¥çº¦ç¨äºæå¡ç«¯åæ¶è´¹ç«¯ç解è¦ï¼æå¡ç«¯å´ç»å¥çº¦è¿è¡æå¡çå®ç°ï¼æ¶è´¹ç«¯æ ¹æ®å¥çº¦è¿è¡æå¡çè°ç¨ï¼å¯æ¯ææå¡ç«¯åæ¶è´¹ç«¯éç¨ä¸åçç¼ç¨è¯è¨å®ç°ã</p> + +<h2 id="æ¾å¼å¥çº¦">æ¾å¼å¥çº¦</h2> + +<h3 id="é 置说æ">é 置说æ</h3> + +<p>ServiceComb使ç¨yamlæä»¶æ ¼å¼å®ä¹æå¡å¥çº¦ï¼æ¨è使ç¨<a href="http://editor.swagger.io/#/">Swagger Editor</a>å·¥å ·æ¥ç¼åå¥çº¦ï¼å¯æ£æ¥è¯æ³æ ¼å¼åèªå¨çæAPIææ¡£ã详ç»çå¥çº¦æä»¶æ ¼å¼è¯·åè<a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md">OpenAPIå®æ¹ææ¡£</a>ã</p> + +<p>å¥çº¦æ件æ¾ç½®å¨âresources/microservicesâæè âresources/applicationsâç®å½ä¸ï¼ç®å½ç»æå¦ä¸æ示ã</p> + +<pre><code class="language-txt">resources + - microservices + - serviceName #å¾®æå¡å + - schemaId.yaml #schemaæ¥å£çå¥çº¦ + - applications + - appId #åºç¨ID + - serviceName #å¾®æå¡å + - schemaId.yaml #schemaæ¥å£çå¥çº¦ +</code></pre> + +<h3 id="示ä¾ä»£ç ">示ä¾ä»£ç </h3> + +<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">swagger</span><span class="pi">:</span> <span class="s1">'</span><span class="s">2.0'</span> +<span class="s">info</span><span class="pi">:</span> + <span class="s">title</span><span class="pi">:</span> <span class="s">hello</span> + <span class="s">version</span><span class="pi">:</span> <span class="s">1.0.0</span> + <span class="s">x-java-interface</span><span class="pi">:</span> <span class="s">io.servicecomb.samples.common.schema.Hello</span> +<span class="s">basePath</span><span class="pi">:</span> <span class="s">/springmvchello</span> +<span class="s">produces</span><span class="pi">:</span> + <span class="pi">-</span> <span class="s">application/json</span> + +<span class="s">paths</span><span class="pi">:</span> + <span class="s">/sayhi</span><span class="pi">:</span> + <span class="s">post</span><span class="pi">:</span> + <span class="s">operationId</span><span class="pi">:</span> <span class="s">sayHi</span> + <span class="s">parameters</span><span class="pi">:</span> + <span class="pi">-</span> <span class="s">name</span><span class="pi">:</span> <span class="s">name</span> + <span class="s">in</span><span class="pi">:</span> <span class="s">query</span> + <span class="s">required</span><span class="pi">:</span> <span class="s">true</span> + <span class="s">type</span><span class="pi">:</span> <span class="s">string</span> + <span class="s">responses</span><span class="pi">:</span> + <span class="s">200</span><span class="pi">:</span> + <span class="s">description</span><span class="pi">:</span> <span class="s">æ£ç¡®è¿å</span> + <span class="s">schema</span><span class="pi">:</span> + <span class="s">type</span><span class="pi">:</span> <span class="s">string</span> + <span class="s">default</span><span class="pi">:</span> + <span class="s">description</span><span class="pi">:</span> <span class="s">é»è®¤è¿å</span> + <span class="s">schema</span><span class="pi">:</span> + <span class="s">type</span><span class="pi">:</span> <span class="s">string</span> + <span class="s">/sayhello</span><span class="pi">:</span> + <span class="s">post</span><span class="pi">:</span> + <span class="s">operationId</span><span class="pi">:</span> <span class="s">sayHello</span> + <span class="s">parameters</span><span class="pi">:</span> + <span class="pi">-</span> <span class="s">name</span><span class="pi">:</span> <span class="s">person</span> + <span class="s">in</span><span class="pi">:</span> <span class="s">body</span> + <span class="s">required</span><span class="pi">:</span> <span class="s">true</span> + <span class="s">schema</span><span class="pi">:</span> + <span class="s">$ref</span><span class="pi">:</span> <span class="s2">"</span><span class="s">#/definitions/Person"</span> + <span class="s">responses</span><span class="pi">:</span> + <span class="s">200</span><span class="pi">:</span> + <span class="s">description</span><span class="pi">:</span> <span class="s">æ£ç¡®è¿å</span> + <span class="s">schema</span><span class="pi">:</span> + <span class="s">type</span><span class="pi">:</span> <span class="s">string</span> + <span class="s">default</span><span class="pi">:</span> + <span class="s">description</span><span class="pi">:</span> <span class="s">é»è®¤è¿å</span> + <span class="s">schema</span><span class="pi">:</span> + <span class="s">type</span><span class="pi">:</span> <span class="s">string</span> +<span class="s">definitions</span><span class="pi">:</span> + <span class="s">Person</span><span class="pi">:</span> + <span class="s">type</span><span class="pi">:</span> <span class="s2">"</span><span class="s">object"</span> + <span class="s">properties</span><span class="pi">:</span> + <span class="s">name</span><span class="pi">:</span> + <span class="s">type</span><span class="pi">:</span> <span class="s2">"</span><span class="s">string"</span> + <span class="s">description</span><span class="pi">:</span> <span class="s2">"</span><span class="s">person</span><span class="nv"> </span><span class="s">name"</span> + <span class="s">xml</span><span class="pi">:</span> + <span class="s">name</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Person"</span> +</code></pre> +</div> + +<blockquote> + <p><strong>注æ</strong>ï¼</p> + <ul> + <li>æ ¹æ®swaggeræ åï¼basePathé ç½®çè·¯å¾éè¦å æ¬web serverçwebrootã</li> + <li>info.x-java-interfaceéè¦æ æå ·ä½çæ¥å£è·¯å¾ï¼æ ¹æ®é¡¹ç®å®é æ åµèå®ã</li> + </ul> +</blockquote> + +<h2 id="éå¼å¥çº¦">éå¼å¥çº¦</h2> +<h3 id="æ¦å¿µéè¿°-1">æ¦å¿µéè¿°</h3> + +<p>ããéå¼å¥çº¦æ¯æServiceCombæ ¹æ®æå¡å®ç°ç±»èªå¨çæçæå¡å¥çº¦ã</p> + +<h3 id="åºæ¯æè¿°-1">åºæ¯æè¿°</h3> + +<p>ããç¨æ·éè¿éå¼å¥çº¦åè½ï¼å¯ä»¥ä¸é¢å å®ä¹å¥çº¦åæ¥å£ï¼ç´æ¥å®ä¹å®ç°ç±»ï¼å¨æå¡å¯å¨æ¶ï¼æ ¹æ®å®ç°ç±»èªå¨çæå¥çº¦ï¼å¹¶æ³¨åå°æå¡ä¸å¿ã</p> + +<h3 id="æ¶åapi">æ¶åAPI</h3> + +<p>ããéå¼å¥çº¦å¯ç¨äºSpring MVCãJAX-RSãéæRPCä¸ç§å¼å模å¼ï¼å ·ä½ä½¿ç¨åè§<a href="/cn/users/develop-with-springmvc/">ç¨SpringMVCå¼åå¾®æå¡</a>ã<a href="/cn/users/develop-with-jax-rs/">ç¨JAX-RSå¼åå¾®æå¡</a>å<a href="/cn/users/develop-with-transparent-rpc/">ç¨éæRPCå¼åå¾®æå¡</a>ã</p> + +<p>ãã使ç¨éæRPC模å¼å¼åå¾®æå¡æ¶ï¼ç±äºä»ä»£ç ä¸æ æ³å辨微æå¡å¼å人åææå¦ä½å®ä¹å¥çº¦ï¼æ以çæçå¥çº¦å ¨æ¯POSTæ¹æ³ï¼ææmethodçå ¥å被å è£ ä¸ºä¸ä¸ªclassï¼ä½ä¸ºbodyåæ°ä¼ éï¼æ以建议使ç¨éå¼å¥çº¦å¼åprovideræ¶ï¼éæ©SpringMVCæJAX-RSå¼å模å¼ï¼å¯ä»¥å¾å°å®æ´çRESTful声æã</p> + + + </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 _users/cn/define-service-contract.md">æ¥åæ¬ç½é¡µé®é¢</a></li> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_users/cn/define-service-contract.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/users/service-definition/index.html ---------------------------------------------------------------------- diff --git a/content/cn/users/service-definition/index.html b/content/cn/users/service-definition/index.html new file mode 100644 index 0000000..10772ef --- /dev/null +++ b/content/cn/users/service-definition/index.html @@ -0,0 +1,794 @@ +<!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=""> + +<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/users/service-definition/"> + <meta property="og:url" content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/users/service-definition/"> + + + + <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"> + + + + + + + + + + + + + + + + + + + + + + + <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 class="active" 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=/users/service-definition/>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> + + <span class="nav__sub-title">ç¨æ·æå</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/" class="">Java Chassisç³»ç»æ¶æ</a></li> + + + + + + + + <li><a href="/cn/users/setup-environment/" class="">ç¯å¢é ç½®</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">å¼åæå¡æä¾è </span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/service-definition/" class="active">æå¡å®ä¹</a></li> + + + + + + + + <li><a href="/cn/users/service-contract/" class="">æå¡å¥çº¦</a></li> + + + + + + + + <li><a href="/cn/users/develop-with-springmvc/" class="">ç¨SpringMVCå¼åå¾®æå¡</a></li> + + + + + + + + <li><a href="/cn/users/develop-with-jax-rs/" class="">ç¨JAX-RSå¼åå¾®æå¡</a></li> + + + + + + + + <li><a href="/cn/users/develop-with-transparent-rpc/" class="">ç¨éæRPCå¼åå¾®æå¡</a></li> + + + + + + + + <li><a href="/cn/users/service-interface-constraints/" class="">æå¡æ¥å£çº¦æ</a></li> + + + + + + + + <li><a href="/cn/users/service-configurations/" class="">æå¡é ç½®</a></li> + + + + + + + + <li><a href="/cn/users/communicate-protocol/" class="">éä¿¡åè®®</a></li> + + + + + + + + <li><a href="/cn/users/application-boot-process/" class="">ç¨åºå¯å¨é»è¾</a></li> + + + + + + + + <li><a href="/cn/users/service-heartbeat/" class="">æå¡å¿è·³</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">å¼åæå¡æ¶è´¹è </span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/develop-with-rest-template/" class="">使ç¨Rest Templateæ¹å¼å¼å</a></li> + + + + + + + + <li><a href="/cn/users/develop-with-rpc/" class="">使ç¨RPCæ¹å¼å¼å</a></li> + + + + + + + + <li><a href="/cn/users/use-service-contract/" class="">使ç¨æå¡å¥çº¦</a></li> + + + + + + + + <li><a href="/cn/users/invoke-control/" class="">è°ç¨æ§å¶</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">éç¨å¼å</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/local-develop-test/" class="">æ¬å°å¼åä¸æµè¯</a></li> + + + + + + + + <li><a href="/cn/users/use-servicecomb-in-spring-boot/" class="">å¨Spring Bootä¸ä½¿ç¨ServiceComb</a></li> + + + + + + + + <li><a href="/cn/users/distributed-tracing/" class="">åå¸å¼è°ç¨é¾è¿½è¸ª</a></li> + + + + + + + + <li><a href="/cn/users/customized-tracing/" class="">èªå®ä¹è°ç¨é¾æç¹</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">æå¡è½åå¼æ¾</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/edging-service/nginx/" class="">使ç¨confdåNginxåè¾¹ç¼æå¡</a></li> + + + + + + + + <li><a href="/cn/users/edging-service/zuul/" class="">使ç¨Zuulåè¾¹ç¼æå¡</a></li> + + </ul> + + </li> + + <li> + + + + + <a href="/cn/users/metrics/"><span class="nav__sub-title nav__sub-title-with-url">çæ§</span></a> + + + + </li> + + <li> + + <span class="nav__sub-title">é¨ç½²</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/run-mode/" class="">è¿è¡æ¨¡å¼</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">å¾®æå¡å®å ¨</span> + + + + <ul> + + + + + + + + <li><a href="/cn/users/use-tls/" class="">使ç¨TLSéä¿¡</a></li> + + </ul> + + </li> + + </ul> +</nav> + + + + </div> + + + + <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> + <meta itemprop="headline" content="æå¡å®ä¹"> + <meta itemprop="description" content="æå¡å®ä¹"> + + <meta itemprop="dateModified" content="August 15, 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="#é 置说æ" id="markdown-toc-é 置说æ">é 置说æ</a></li> + <li><a href="#示ä¾ä»£ç " id="markdown-toc-示ä¾ä»£ç ">示ä¾ä»£ç </a></li> +</ul> + + </nav> +</aside> + +<h2 id="æ¦å¿µéè¿°">æ¦å¿µéè¿°</h2> + +<p>æå¡å®ä¹ä¿¡æ¯æ¯å¾®æå¡ç身份æ è¯ï¼å®å®ä¹äºæå¡ä»å±äºåªä¸ªåºç¨ï¼ä»¥ååååçæ¬ãæå¡å®ä¹ä¿¡æ¯ä¸ä¹å¯ä»¥ææ©å±ä¿¡æ¯ï¼ç¨äºå®ä¹æå¡çå±æ§å æ°æ®ã</p> + +<h2 id="åºæ¯æè¿°">åºæ¯æè¿°</h2> + +<p>å½ç¨æ·å®ä¹æ°çå¾®æå¡æä¿®æ¹å¾®æå¡çåºæ¬ä¿¡æ¯æ¶ï¼ä¼æ¶åå°æå¡å®ä¹ä¿¡æ¯çå建åä¿®æ¹æä½ã</p> + +<h2 id="é 置说æ">é 置说æ</h2> + +<p>ä»ç»æ¶åmicroservice.yamlæ件ç以ä¸é 置项ï¼æ件å¨é¡¹ç®ä¸çåæ¾è·¯å¾ä¸ºsrc/main/resources/microservice.yamlã</p> + +<table> + <thead> + <tr> + <th style="text-align: left">é 置项</th> + <th style="text-align: left">é»è®¤å¼</th> + <th style="text-align: left">åå¼èå´</th> + <th style="text-align: left">æ¯å¦å¿ é</th> + <th style="text-align: left">å«ä¹</th> + <th style="text-align: left">注æ</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left">APPLICATION_ID</td> + <td style="text-align: left">-</td> + <td style="text-align: left">-</td> + <td style="text-align: left">æ¯</td> + <td style="text-align: left">åºç¨å</td> + <td style="text-align: left">-</td> + </tr> + <tr> + <td style="text-align: left">service_description.name</td> + <td style="text-align: left">-</td> + <td style="text-align: left">-</td> + <td style="text-align: left">æ¯</td> + <td style="text-align: left">å¾®æå¡å</td> + <td style="text-align: left">åºç¡®ä¿appå é¨å¯ä¸ãå¾®æå¡åæ¯ææ°åã大å°ååæ¯åâ-âãâ_âãâ.âä¸ä¸ªç¹æ®å符ï¼ä½æ¯ä¸è½ä»¥ç¹æ®å符ä½ä¸ºé¦å°¾å符ï¼å½åè§è为ï¼^[a-zA-Z0-9]+$|^[a-zA-Z0-9][a-zA-Z0-9_-.]*[a-zA-Z0-9]$ã</td> + </tr> + <tr> + <td style="text-align: left">service_description.version</td> + <td style="text-align: left">-</td> + <td style="text-align: left">-</td> + <td style="text-align: left">æ¯</td> + <td style="text-align: left">å¾®æå¡çæ¬å·</td> + <td style="text-align: left">-</td> + </tr> + <tr> + <td style="text-align: left">service_description.properties</td> + <td style="text-align: left">-</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">å¾®æå¡å æ°æ®é ç½®ï¼éè¿microservice.yamlæ件è¿è¡é ç½®ï¼</td> + <td style="text-align: left">-</td> + </tr> + <tr> + <td style="text-align: left">service_description.propertyExtendedClass</td> + <td style="text-align: left">-</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">å¾®æå¡å æ°æ®é ç½®ï¼éè¿å®ç°æ¥å£PropertyExtendedè¿è¡é ç½®ï¼</td> + <td style="text-align: left">æ¥å£è¿åçé ç½®ä¼è¦çé ç½®æ件ä¸keyç¸åçé ç½®ã</td> + </tr> + <tr> + <td style="text-align: left">instance_description.properties</td> + <td style="text-align: left">-</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">æå¡å®ä¾å æ°æ®é ç½®ï¼éè¿microservice.yamlæ件è¿è¡é ç½®ï¼</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td style="text-align: left">instance_description.propertyExtendedClass</td> + <td style="text-align: left">-</td> + <td style="text-align: left">-</td> + <td style="text-align: left">å¦</td> + <td style="text-align: left">å¾®æå¡å æ°æ®é ç½®ï¼éè¿å®ç°æ¥å£PropertyExtendedè¿è¡é ç½®ï¼</td> + <td style="text-align: left">åservice_description.propertyExtendedClass</td> + </tr> + </tbody> +</table> + +<blockquote> + <p>说æï¼</p> + <ul> + <li>æå¡çå æ°æ®ä¼éæå¡ä¸å注åå°æå¡ä¸å¿ï¼å¦éä¿®æ¹ï¼åè¦è¿åæå¡versionä¸èµ·åæ´ãè¥æ³ä¿ææå¡versionä¸åï¼åéè¦éè¿æå¡ç®¡çä¸å¿ç»ä¸åæ´å æ°æ®ã</li> + <li>é»è®¤æ åµä¸ï¼å¾®æå¡åªæ¯æåä¸ä¸ªappå é¨çæå¡è°ç¨ãå¯å¨å¾®æå¡çpropertiesä¸é ç½®allowCrossApp=trueå±æ§ï¼å¼å¯å¯è¢«è·¨app访é®æéã</li> + </ul> +</blockquote> + +<h2 id="示ä¾ä»£ç ">示ä¾ä»£ç </h2> + +<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">APPLICATION_ID</span><span class="pi">:</span> <span class="s">helloTest</span> <span class="c1">#åºç¨å</span> +<span class="s">service_description</span><span class="pi">:</span> <span class="c1">#æå¡æè¿°</span> + <span class="s">name</span><span class="pi">:</span> <span class="s">helloServer</span> <span class="c1">#å¾®æå¡å称</span> + <span class="s">version</span><span class="pi">:</span> <span class="s">0.0.1</span> <span class="c1">#æå¡çæ¬å·</span> + <span class="s">properties</span><span class="pi">:</span> <span class="c1">#å æ°æ®</span> + <span class="s">allowCrossApp</span><span class="pi">:</span> <span class="s">false</span> + <span class="s">key1</span><span class="pi">:</span> <span class="s">value1</span> + <span class="s">key2</span><span class="pi">:</span> <span class="s">value2</span> + <span class="s">propertyExtentedClass</span><span class="pi">:</span> <span class="s">io.servicecomb.serviceregistry.MicroServicePropertyExtendedStub</span> +<span class="s">instance_description</span><span class="pi">:</span> <span class="c1">#å®ä¾æè¿°</span> + <span class="s">properties</span><span class="pi">:</span> <span class="c1">#å æ°æ®</span> + <span class="s">key3</span><span class="pi">:</span> <span class="s">value3</span> + <span class="s">propertyExtentedClass</span><span class="pi">:</span> <span class="s">io.servicecomb.serviceregistry.MicroServicePropertyExtendedStub</span> +</code></pre> +</div> + + + </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 _users/cn/service-definition.md">æ¥åæ¬ç½é¡µé®é¢</a></li> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_users/cn/service-definition.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>