http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/08e1b43f/content/cn/users/edging-service/nginx/index.html ---------------------------------------------------------------------- diff --git a/content/cn/users/edging-service/nginx/index.html b/content/cn/users/edging-service/nginx/index.html new file mode 100644 index 0000000..d4baaa6 --- /dev/null +++ b/content/cn/users/edging-service/nginx/index.html @@ -0,0 +1,810 @@ +<!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>使ç¨confdåNginxåè¾¹ç¼æå¡ - Apache incubator ServiceComb</title> + + + + +<meta name="description" content="使ç¨confdåNginxåè¾¹ç¼æå¡"> + + + + +<meta name="author" content=""> + +<meta property="og:locale" content="cn"> +<meta property="og:site_name" content="Apache incubator ServiceComb"> +<meta property="og:title" content="使ç¨confdåNginxåè¾¹ç¼æå¡"> + + + <link rel="canonical" href="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/users/edging-service/nginx/"> + <meta property="og:url" content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/users/edging-service/nginx/"> + + + + <meta property="og:description" content="使ç¨confdåNginxåè¾¹ç¼æå¡"> + + + + <meta name="twitter:site" content="@ServiceComb"> + <meta name="twitter:title" content="使ç¨confdåNginxåè¾¹ç¼æå¡"> + <meta name="twitter:description" content="使ç¨confdåNginxåè¾¹ç¼æå¡"> + <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/edging-service/nginx/>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="">æå¡é ç½®</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="active">使ç¨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="使ç¨confdåNginxåè¾¹ç¼æå¡"> + <meta itemprop="description" content="使ç¨confdåNginxåè¾¹ç¼æå¡"> + + <meta itemprop="dateModified" content="August 15, 2017"> + + <div class="page__inner-wrap"> + + + <header> + <h1 class="page__title" itemprop="headline">使ç¨confdåNginxåè¾¹ç¼æå¡ +</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="#confd" id="markdown-toc-confd"><strong>confd</strong></a></li> + <li><a href="#nginx" id="markdown-toc-nginx"><strong>Nginx</strong></a></li> + </ul> + </li> + <li><a href="#åºæ¯æè¿°" id="markdown-toc-åºæ¯æè¿°">åºæ¯æè¿°</a></li> + <li><a href="#å¯¹æ¥æå¡ä¸å¿" id="markdown-toc-å¯¹æ¥æå¡ä¸å¿">å¯¹æ¥æå¡ä¸å¿</a> <ul> + <li><a href="#æ¹æ³ä¸httpè°ç¨" id="markdown-toc-æ¹æ³ä¸httpè°ç¨"><strong>æ¹æ³ä¸ï¼httpè°ç¨</strong></a></li> + <li><a href="#æ¹æ³äºä½¿ç¨servicecomb弿ºä»£ç æ¥å£" id="markdown-toc-æ¹æ³äºä½¿ç¨servicecomb弿ºä»£ç æ¥å£"><strong>æ¹æ³äºï¼ä½¿ç¨servicecomb弿ºä»£ç æ¥å£</strong></a></li> + </ul> + </li> +</ul> + + </nav> +</aside> + +<h2 id="æ¦å¿µéè¿°">æ¦å¿µéè¿°</h2> + +<h3 id="confd"><strong>confd</strong></h3> + +<p>confdæ¯ä¸ä¸ªè½»é级çé 置管çå·¥å ·ï¼æºç å°åï¼<a href="https://github.com/kelseyhightower/confd">https://github.com/kelseyhightower/confd</a>ï¼å®å¯ä»¥å°é 置信æ¯åå¨å¨etcdãconsulãdynamodbãredis以åzookeeperçãconfd宿ä¼ä»è¿äºåå¨èç¹pullææ°çé ç½®ï¼ç¶åéæ°å è½½æå¡ï¼å®æé ç½®æä»¶çæ´æ°ã</p> + +<h3 id="nginx"><strong>Nginx</strong></h3> + +<p>Nginx (engine x)æ¯ä¸ä¸ªé«æ§è½çHTTPååå代çæå¡å¨ï¼å ·æè´è½½åè¡¡çåè½ã详æ 请åè<a href="http://www.nginx.cn/doc/">http://www.nginx.cn/doc/</a>ãæ¬å°èä»ç»çæå¡ä¸»è¦ä½¿ç¨å°çæ¯Nginxçhttp代çåè½ã</p> + +<h2 id="åºæ¯æè¿°">åºæ¯æè¿°</h2> + +<p>æ¬å°èä»ç»çææ¯æ¯ä½¿ç¨nginx+confdåè¾¹ç¼æå¡ï¼åæ¶å¯ä»¥å¯¹æ¥ServiceCombå¾®æå¡æ¡æ¶ä¸çæå¡ä¸å¿ï¼ä»æå¡ä¸å¿ä¸æå»æå¡ä¿¡æ¯éè¿confdå¨ææ´æ°nginxçé ç½®ã</p> + +<p>使ç¨nginx+confd卿åå代ççå®ç°æ¥éª¤å¯åèæç« <a href="http://www.cnblogs.com/Anker/p/6112022.html">http://www.cnblogs.com/Anker/p/6112022.html</a>ï¼æ¬è主è¦ä»ç»confdå¦ä½å¯¹æ¥ServiceCombæ¡æ¶çæå¡ä¸å¿ã</p> + +<h2 id="å¯¹æ¥æå¡ä¸å¿">å¯¹æ¥æå¡ä¸å¿</h2> + +<p>æ¬èä»ç»çææ¯æ ¸å¿å¨äºå¦ä½ä½¿å¾confdè·åå°æå¡ä¸å¿çæå¡ä¿¡æ¯ï¼æå¡ä¸å¿å¼æ¾äºä»¥ä¸æ¥å£ä¾å¤é¨è°ç¨ï¼</p> + +<h3 id="æ¹æ³ä¸httpè°ç¨"><strong>æ¹æ³ä¸ï¼httpè°ç¨</strong></h3> + +<p>æå¡ä¸å¿å¼æ¾httpæ¥å£åéè¦æ·»å ç§æ·å¤´é¨ä¿¡æ¯ï¼âX-Tenant-Name:tenantNameâï¼tenameNameä¸ºç§æ·åï¼é»è®¤ä¸ºdefaultï¼ä¾å¦âX-Tenant-Name:defaultâã</p> + +<ul> + <li> + <p>æ£æ¥æå¡ä¸å¿å¥åº·ç¶æ</p> + + <div class="language-http highlighter-rouge"><pre class="highlight"><code><span class="err"> GET 127.0.0.1:9980/health +</span></code></pre> + </div> + </li> + <li> + <p>è·åææå¾®æå¡ä¿¡æ¯</p> + + <div class="language-http highlighter-rouge"><pre class="highlight"><code><span class="err"> GET 127.0.0.1:9980/registry/v3/microservices +</span></code></pre> + </div> + </li> + <li> + <p>è·åæå®idçå¾®æå¡ä¿¡æ¯</p> + </li> +</ul> + +<blockquote> + <ol> + <li> + <p>é¦å æ ¹æ®å¾®æå¡ä¿¡æ¯è·åserviceId</p> + + <div class="language-http highlighter-rouge"><pre class="highlight"><code><span class="err">GET 127.0.0.1:9980/registry/v3/existence?type=microservice&appId={appId}&serviceName={serviceName}&version={version} +</span></code></pre> + </div> + </li> + <li> + <p>æ ¹æ®ä¸è¿°æ¥å£è¿åçserviceIdè·åå¾®æå¡å®æ´ä¿¡æ¯</p> + + <div class="language-http highlighter-rouge"><pre class="highlight"><code><span class="err">GET 127.0.0.1:9980/registry/v3/microservices/{serviceId} +</span></code></pre> + </div> + </li> + </ol> +</blockquote> + +<ul> + <li> + <p>è·åæå®å¾®æå¡çææå®ä¾ä¿¡æ¯</p> + + <div class="language-http highlighter-rouge"><pre class="highlight"><code><span class="err"> GET 127.0.0.1:9980/registry/v3/microservices/{serviceId}/instances +</span></code></pre> + </div> + <p>éè¦å¨header䏿·»å ï¼âX-ConsumerId:{serviceId}âã</p> + </li> + <li> + <p>æ¥æ¾å¾®æå¡å®ä¾ä¿¡æ¯</p> + + <div class="language-http highlighter-rouge"><pre class="highlight"><code><span class="err"> GET 127.0.0.1:9980/registry/v3/instances?appId={appId}&serviceName={serviceName}&version={version} +</span></code></pre> + </div> + <p>éè¦å¨header䏿·»å âX-ConsumerId:{serviceId}âã</p> + </li> +</ul> + +<p>注æï¼å¨å®é å¼åä¸è¯·è®¿é®å®é çservice-center访é®å°åï¼å¹¶å°ä¸è¿°urlä¸{}çåéæ¿æ¢æå ·ä½å¼ï¼httpè¿åçæ°æ®å为jsonæ ¼å¼</p> + +<h3 id="æ¹æ³äºä½¿ç¨servicecomb弿ºä»£ç æ¥å£"><strong>æ¹æ³äºï¼ä½¿ç¨servicecomb弿ºä»£ç æ¥å£</strong></h3> + +<p>å¨å¼åå¾®æå¡åºç¨ï¼åªéè¦è°ç¨servicecombæ¡æ¶ä»£ç ä¸çå·¥å ·ç±»RegistryUtil.java䏿ä¾çæ¥å£ï¼å³å¯è·åæå¡ä¸å¿çä¿¡æ¯ï¼æ¥å£æè¿°å¦ä¸ï¼</p> + +<ul> + <li>è·åææå¾®æå¡ä¿¡æ¯ + <div class="language-java highlighter-rouge"><pre class="highlight"><code> <span class="n">List</span><span class="o"><</span><span class="n">Microservice</span><span class="o">></span> <span class="nf">getAllMicroservices</span><span class="o">();</span> +</code></pre> + </div> + </li> + <li>è·åå¾®æå¡å¯ä¸æ è¯ + <div class="language-java highlighter-rouge"><pre class="highlight"><code> <span class="n">String</span> <span class="nf">getMicroserviceId</span><span class="o">(</span><span class="n">String</span> <span class="n">appId</span><span class="o">,</span> <span class="n">String</span> <span class="n">microserviceName</span><span class="o">,</span> <span class="n">String</span> <span class="n">versionRule</span><span class="o">);</span> +</code></pre> + </div> + </li> + <li>æ ¹æ®å¾®æå¡å¯ä¸æ è¯æ¥è¯¢å¾®æå¡éæä¿¡æ¯ + <div class="language-java highlighter-rouge"><pre class="highlight"><code> <span class="n">Microservice</span> <span class="nf">getMicroservice</span><span class="o">(</span><span class="n">String</span> <span class="n">microserviceId</span><span class="o">);</span> +</code></pre> + </div> + </li> + <li>æ ¹æ®å¤ä¸ªå¾®æå¡å¯ä¸æ è¯æ¥è¯¢ææå¾®æå¡å®ä¾ä¿¡æ¯ + <div class="language-java highlighter-rouge"><pre class="highlight"><code> <span class="n">List</span><span class="o"><</span><span class="n">MicroserviceInstance</span><span class="o">></span> <span class="nf">getMicroserviceInstance</span><span class="o">(</span><span class="n">String</span> <span class="n">consumerId</span><span class="o">,</span> <span class="n">String</span> <span class="n">providerId</span><span class="o">);</span> +</code></pre> + </div> + </li> + <li>æç §app+interface+versionæ¥è¯¢å®ä¾endpointsä¿¡æ¯ + <div class="language-java highlighter-rouge"><pre class="highlight"><code> <span class="n">List</span><span class="o"><</span><span class="n">MicroserviceInstance</span><span class="o">></span> <span class="nf">findServiceInstance</span><span class="o">(</span><span class="n">String</span> <span class="n">consumerId</span><span class="o">,</span> <span class="n">String</span> <span class="n">appId</span><span class="o">,</span> <span class="n">String</span> <span class="n">serviceName</span><span class="o">,</span><span class="n">String</span> <span class="n">versionRule</span><span class="o">);</span> +</code></pre> + </div> + </li> +</ul> + +<p>éè¿ä¸è¿°httpæ¥å£å¯è·åå°æå¡ä¸å¿çå¾®æå¡åå ¶å®ä¾çä¿¡æ¯ï¼ä»èéè¿confdå¨ææ´æ°nginxé ç½®ã</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/nginx.md">æ¥åæ¬ç½é¡µé®é¢</a></li> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_users/cn/nginx.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/edging-service/zuul/index.html ---------------------------------------------------------------------- diff --git a/content/cn/users/edging-service/zuul/index.html b/content/cn/users/edging-service/zuul/index.html new file mode 100644 index 0000000..ce3dca4 --- /dev/null +++ b/content/cn/users/edging-service/zuul/index.html @@ -0,0 +1,840 @@ +<!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>使ç¨Zuulåè¾¹ç¼æå¡ - Apache incubator ServiceComb</title> + + + + +<meta name="description" content="使ç¨Zuulåè¾¹ç¼æå¡"> + + + + +<meta name="author" content=""> + +<meta property="og:locale" content="cn"> +<meta property="og:site_name" content="Apache incubator ServiceComb"> +<meta property="og:title" content="使ç¨Zuulåè¾¹ç¼æå¡"> + + + <link rel="canonical" href="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/users/edging-service/zuul/"> + <meta property="og:url" content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/users/edging-service/zuul/"> + + + + <meta property="og:description" content="使ç¨Zuulåè¾¹ç¼æå¡"> + + + + <meta name="twitter:site" content="@ServiceComb"> + <meta name="twitter:title" content="使ç¨Zuulåè¾¹ç¼æå¡"> + <meta name="twitter:description" content="使ç¨Zuulåè¾¹ç¼æå¡"> + <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/edging-service/zuul/>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="">æå¡é ç½®</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="active">使ç¨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="使ç¨Zuulåè¾¹ç¼æå¡"> + <meta itemprop="description" content="使ç¨Zuulåè¾¹ç¼æå¡"> + + <meta itemprop="dateModified" content="August 15, 2017"> + + <div class="page__inner-wrap"> + + + <header> + <h1 class="page__title" itemprop="headline">使ç¨Zuulåè¾¹ç¼æå¡ +</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="#api-gateway" id="markdown-toc-api-gateway">API Gatewayï¼</a></li> + <li><a href="#zuul" id="markdown-toc-zuul">Zuul</a></li> + </ul> + </li> + <li><a href="#åºæ¯æè¿°" id="markdown-toc-åºæ¯æè¿°">åºæ¯æè¿°</a></li> + <li><a href="#注æäºé¡¹" id="markdown-toc-注æäºé¡¹">注æäºé¡¹</a></li> + <li><a href="#å¯å¨zuul-proxy" id="markdown-toc-å¯å¨zuul-proxy">å¯å¨Zuul Proxy</a></li> + <li><a href="#使ç¨zuul-proxy" id="markdown-toc-使ç¨zuul-proxy">使ç¨Zuul Proxy</a></li> +</ul> + + </nav> +</aside> + +<h2 id="æ¦å¿µéè¿°">æ¦å¿µéè¿°</h2> + +<h3 id="api-gateway">API Gatewayï¼</h3> + +<p>API Gatewayæ¯ä¸ä¸ªæå¡å¨ï¼ä¹å¯ä»¥è¯´æ¯è¿å ¥ç³»ç»çå¯ä¸èç¹ãAPI Gatewayå°è£ å é¨ç³»ç»çæ¶æï¼å¹¶ä¸æä¾APIç»å个客æ·ç«¯ã</p> + +<h3 id="zuul">Zuul</h3> + +<p>Zuulæ¯NetflixçåºäºJVMçè·¯ç±å¨åæå¡å¨ç«¯è´è½½åè¡¡å¨ï¼å¯ä»¥ä½¿ç¨Zuulè¿è¡ä»¥ä¸æä½ï¼</p> + +<ul> + <li>认è¯</li> + <li>æ´å¯</li> + <li>ååæµè¯</li> + <li>éä¸éæµè¯</li> + <li>å¨æè·¯ç±</li> + <li>æå¡è¿ç§»</li> + <li>è´è½½è±è½</li> + <li>å®å ¨</li> + <li>éæç¸ååºå¤ç</li> + <li>主å¨/è¢«å¨æµé管ç</li> +</ul> + +<p>æ¬å°è主è¦ä»ç»å¨SpringBootåºç¨ä¸ä½¿ç¨ZuulåAPI Gatewayãå ³äºZuulç详ç»åè½ä»ç»è¯·åèææ¡£<a href="https://springcloud.cc/spring-cloud-dalston.html#_router_and_filter_zuul">è·¯ç±å¨åè¿æ»¤å¨ï¼Zuul</a>ã</p> + +<h2 id="åºæ¯æè¿°">åºæ¯æè¿°</h2> + +<p>ZuulåAPI Gatewayï¼å³å»ºç«ä¸ä¸ªZuul Proxyåºç¨ï¼å¨è¯¥Proxyåºç¨ä¸ç»ä¸å®ä¹ææçå¾®æå¡è®¿é®å ¥å£ï¼éè¿ä½¿ç¨ä¸åçåç¼(stripped)æ¥åºåå个微æå¡ãæ¬å°èéè¿å»ºç«ä¸ä¸ªZuulProxy SpringBootåºç¨æ¥æ¼ç¤ºZuulçAPI Gatewayåè½ã</p> + +<h2 id="注æäºé¡¹">注æäºé¡¹</h2> + +<p>æ¬å°èä»ç»çZuulProxyåZuulServerçdemo齿¯åºäºSpringBootåServiceCombæ¡æ¶çåºç¨ï¼å ·ä½è¯·åè<a href="/cn/users/use-servicecomb-in-spring-boot/">å¨ServiceCombæ¡æ¶ä¸éæSpringBootæ¡æ¶</a>ã</p> + +<h2 id="å¯å¨zuul-proxy">å¯å¨Zuul Proxy</h2> + +<p>æ¬èä»ç»å¦ä½å¯å¨ä¸ä¸ªzuul proxyåºç¨ä½ä¸ºAPI Gatewayãæ¥éª¤å¦ä¸ï¼</p> + +<ul> + <li> + <p><strong>æ¥éª¤ 1</strong>å¨pomæä»¶ä¸æ·»å ä¾èµï¼</p> + + <div class="language-xml highlighter-rouge"><pre class="highlight"><code> <span class="nt"><dependency></span> + <span class="nt"><groupId></span>org.springframework.cloud<span class="nt"></groupId></span> + <span class="nt"><artifactId></span>spring-cloud-starter-zuul<span class="nt"></artifactId></span> + <span class="nt"></dependency></span> + <span class="nt"><dependency></span> + <span class="nt"><groupId></span>org.springframework.cloud<span class="nt"></groupId></span> + <span class="nt"><artifactId></span>spring-cloud-starter-ribbon<span class="nt"></artifactId></span> + <span class="nt"></dependency><dependency></span> + <span class="nt"><groupId></span>org.springframework.cloud<span class="nt"></groupId></span> + <span class="nt"><artifactId></span>spring-cloud-starter-hystrix<span class="nt"></artifactId></span> + <span class="nt"></dependency></span> + <span class="nt"><dependency></span> + <span class="nt"><groupId></span>io.servicecomb<span class="nt"></groupId></span> + <span class="nt"><artifactId></span>spring-boot-starter-discovery<span class="nt"></artifactId></span> + <span class="nt"></dependency></span> +</code></pre> + </div> + </li> + <li> + <p><strong>æ¥éª¤ 2</strong>å¨SpringBootä¸»ç±»æ·»å æ³¨è§£ï¼</p> + + <div class="language-java highlighter-rouge"><pre class="highlight"><code> <span class="nd">@SpringBootApplication</span> + <span class="nd">@EnableServiceComb</span> + <span class="nd">@EnableZuulProxy</span><span class="c1">//æ°å¢æ³¨è§£</span> + <span class="kd">public</span> <span class="kd">class</span> <span class="nc">ZuulMain</span><span class="o">{</span> + <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span><span class="o">{</span> + <span class="n">SpringApplication</span><span class="o">.</span><span class="na">run</span><span class="o">(</span><span class="n">ZuulMain</span><span class="o">.</span><span class="na">class</span><span class="o">,</span> <span class="n">args</span><span class="o">);</span> + <span class="o">}</span> + <span class="o">}</span> +</code></pre> + </div> + </li> + <li> + <p><strong>æ¥éª¤ 3</strong>å¨application.ymlæä»¶ä¸å®ä¹è·¯ç±çç¥ï¼</p> + + <div class="language-yaml highlighter-rouge"><pre class="highlight"><code> <span class="s">server</span><span class="pi">:</span> + <span class="s">port</span><span class="pi">:</span> <span class="s">8754</span> <span class="c1">#api gatewayæå¡ç«¯å£</span> + <span class="s">zuul</span><span class="pi">:</span> + <span class="s">routes</span><span class="pi">:</span> <span class="c1">#è·¯ç±çç¥</span> + <span class="s">discoveryServer</span><span class="pi">:</span> <span class="s">/myServer/**</span> <span class="c1">#è·¯ç±è§å</span> +</code></pre> + </div> + + <p>ä¸è¿°çé 置项å¯ä»¥æ ¹æ®å®é å¼åç¯å¢è¿è¡é ç½®ãå ³äºzuul.routersçè·¯ç±çç¥ç详ç»å®ä¹è§åï¼è¯·åè宿¹æç®ï¼<a href="https://springcloud.cc/spring-cloud-dalston.html#_router_and_filter_zuul">è·¯ç±å¨åè¿æ»¤å¨ï¼Zuul</a>ï¼å¯æ´ç»ç²åº¦å°å¯¹è·¯ç±è¿è¡æ§å¶ã</p> + </li> + <li> + <p><strong>æ¥éª¤ 4</strong>å¨microservice.yamlå®ä¹å¾®æå¡å±æ§ï¼</p> + + <div class="language-yaml highlighter-rouge"><pre class="highlight"><code> <span class="s">APPLICATION_ID</span><span class="pi">:</span> <span class="s">discoverytest</span> <span class="c1">#æå¡ID</span> + <span class="s">service_description</span><span class="pi">:</span> + <span class="s">name</span><span class="pi">:</span> <span class="s">discoveryGateway</span> <span class="c1">#æå¡åç§°</span> + <span class="s">version</span><span class="pi">:</span> <span class="s">0.0.2</span> <span class="c1">#æå¡çæ¬å·</span> + <span class="s">cse</span><span class="pi">:</span> + <span class="s">service</span><span class="pi">:</span> + <span class="s">registry</span><span class="pi">:</span> + <span class="s">address</span><span class="pi">:</span> <span class="s">http://127.0.0.1:30100</span> <span class="c1">#æå¡æ³¨åä¸å¿å°å</span> + <span class="s">rest</span><span class="pi">:</span> + <span class="s">address</span><span class="pi">:</span> <span class="s">0.0.0.0:8082</span> <span class="c1">#å¾®æå¡ç«¯å£ï¼å¯ä¸å</span> +</code></pre> + </div> + </li> +</ul> + +<p>æ¬å°èæææå¡ä½¿ç¨ç齿¯æ¬å°çæå¡ä¸å¿ï¼å ·ä½çæå¡ä¸å¿å¯å¨æµç¨è¯·åè<a href="/cn/users/setup-environment/#è¿è¡service-center">å¯å¨æ¬å°æå¡ä¸å¿</a>ã</p> + +<ul> + <li><strong>æ¥éª¤ 5ã</strong>è¿è¡ZuulMain åºç¨</li> +</ul> + +<h2 id="使ç¨zuul-proxy">使ç¨Zuul Proxy</h2> + +<p>å¨ä½¿ç¨zuulåçAPI Gatewayåï¼é¦å è¦å¯å¨å¨zuul.routersä¸å®ä¹çå¾®æå¡æä¾è ã</p> + +<p>å¼åæå¡æä¾è ï¼å¼åæµç¨è¯·åè<a href="/cn/users/service-definition/">å¼åæå¡æä¾è </a>ãå¨å¾®æå¡microservice.yamlæä»¶ä¸é注æä»¥ä¸ä¸¤ç¹ï¼</p> + +<ul> + <li> + <p>APPLICATION_IDéè¦äºzuul proxyä¸å®ä¹çä¿æä¸è´ã</p> + </li> + <li> + <p>service_description.nameéè¦äºzuul.routersä¸ç¸å¯¹åºã</p> + </li> +</ul> + +<p>示ä¾å¦ä¸ï¼</p> + +<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="s">APPLICATION_ID</span><span class="pi">:</span> <span class="s">discoverytest</span> <span class="c1">#ä¸zuul proxyä¸è´</span> + <span class="s">service_description</span><span class="pi">:</span> + <span class="s">name</span><span class="pi">:</span> <span class="s">discoveryServer</span> <span class="c1">#æå¡åç§°ï¼ä¸zuul.routers对åº</span> + <span class="s">version</span><span class="pi">:</span> <span class="s">0.0.2</span> +<span class="s">cse</span><span class="pi">:</span> + <span class="s">service</span><span class="pi">:</span> + <span class="s">registry</span><span class="pi">:</span> + <span class="s">address</span><span class="pi">:</span> <span class="s">http://127.0.0.1:30100</span> <span class="c1">#æå¡æ³¨åä¸å¿å°å</span> + <span class="s">rest</span><span class="pi">:</span> + <span class="s">address</span><span class="pi">:</span> <span class="s">0.0.0.0:8080</span> +</code></pre> +</div> + +<p>API Gatewayç访é®å ¥å£ä¸ºï¼<a href="http://127.0.0.1:8754">http://127.0.0.1:8754</a>ï¼ææå¨zuul.routersä¸å®ä¹çæå¡é½å¯éè¿è¿ä¸ªè®¿é®å ¥å£è¿è¡ä»£ç访é®ï¼è®¿é®è§åå¦ä¸ï¼</p> + +<p>http://127.0.0.1:8754/myServer/***](http://127.0.0.1:8754/myServer/***)</p> + +<p>è¿è¡¨ç¤ºï¼Httpè°ç¨<a href="http://127.0.0.1:8754/myServer/***">http://127.0.0.1:8754/myServer/***</a>ï¼ä¼è½¬å°discoveryServeræå¡ï¼ä¾å¦ï¼â/myServer/101â跳转å°discoveryServer æå¡ä¸çâ/101âï¼</p> + +<blockquote> + <p>妿卿å¡ä¸å¿åæ¶åå¨å¤ä¸ªdiscoveryServeræå¡(çæ¬ä¸å),zuulé»è®¤éç¨Ribbonçç¥å¯¹è¯·æ±è¿è¡è½¬åã</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/zuul.md">æ¥åæ¬ç½é¡µé®é¢</a></li> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_users/cn/zuul.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/index.html ---------------------------------------------------------------------- diff --git a/content/cn/users/index.html b/content/cn/users/index.html new file mode 100644 index 0000000..1f0b945 --- /dev/null +++ b/content/cn/users/index.html @@ -0,0 +1,766 @@ +<!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>Java Chassisç³»ç»æ¶æ - 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="Java Chassisç³»ç»æ¶æ"> + + + <link rel="canonical" href="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/users/"> + <meta property="og:url" content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/users/"> + + + + <meta property="og:description" content="Java Chassisç³»ç»æ¶æ"> + + + + <meta name="twitter:site" content="@ServiceComb"> + <meta name="twitter:title" content="Java Chassisç³»ç»æ¶æ"> + <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 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/>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="active">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="">æå¡é ç½®</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="Java Chassisç³»ç»æ¶æ"> + <meta itemprop="description" content="Java Chassisç³»ç»æ¶æ"> + + <meta itemprop="dateModified" content="June 14, 2017"> + + <div class="page__inner-wrap"> + + + <header> + <h1 class="page__title" itemprop="headline">Java Chassisç³»ç»æ¶æ +</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> +</ul> + + </nav> +</aside> + +<h2 id="æ¡æ¶æ¦è¿°">æ¡æ¶æ¦è¿°</h2> +<p><img src="/assets/images/servicecomb-models.png" alt="ServiceComb Model" class="align-center" /></p> + +<h2 id="主è¦è®¾è®¡æå¾">主è¦è®¾è®¡æå¾</h2> + +<p>1.ç¼ç¨æ¨¡ååé信模åå离ï¼ä¸åçç¼ç¨æ¨¡åå¯ä»¥çµæ´»ç»åä¸åçé信模åãåºç¨å¼åè å¨å¼åé¶æ®µåªå ³æ³¨æ¥å£å¼åï¼é¨ç½²é¶æ®µçµæ´»åæ¢éä¿¡æ¹å¼ï¼æ¯ælegacyç³»ç»ç忢ï¼legacyç³»ç»åªéè¦ä¿®æ¹æå¡åå¸çé ç½®æä»¶ï¼æè annotationï¼ï¼èä¸éè¦ä¿®æ¹ä»£ç ã</p> + +<p>ç°é¶æ®µæ¯æSpringMVCãJAX-RSåéæRPCä¸ç§å¼åæ¹å¼ã</p> + +<p>2.å 建API-firstæ¯æãéè¿å¥çº¦è§èåå¾®æå¡å¼åï¼å®ç°è·¨è¯è¨çéä¿¡ï¼å¹¶æ¯æé å¥çè½¯ä»¶å·¥å ·é¾ï¼å¥çº¦çæä»£ç ã代ç çæå¥çº¦çï¼å¼åï¼æå»ºå®æ´çå¼åçæã</p> + +<p>3.å®ä¹äºå¸¸ç¨çå¾®æå¡è¿è¡æ¨¡åï¼å°å¾®æå¡ä»åç°å°äº¤äºè¿ç¨ä¸çåç§å®¹éææ®µé½å°è£ èµ·æ¥ã该è¿è¡æ¨¡åæ¯æèªå®ä¹åæ©å±ã</p> + +<h2 id="模å说æ">模å说æ</h2> + +<table> + <thead> + <tr> + <th style="text-align: left">ç±»å</th> + <th style="text-align: left">artifact id</th> + <th style="text-align: left">æ¯å¦å¯é</th> + <th style="text-align: left">åè½è¯´æ</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left">ç¼ç¨æ¨¡å</td> + <td style="text-align: left">provider-pojo</td> + <td style="text-align: left">æ¯</td> + <td style="text-align: left">æä¾RPCå¼å模å¼</td> + </tr> + <tr> + <td style="text-align: left">ç¼ç¨æ¨¡å</td> + <td style="text-align: left">provider-jaxrs</td> + <td style="text-align: left">æ¯</td> + <td style="text-align: left">æä¾JAX RSå¼å模å¼</td> + </tr> + <tr> + <td style="text-align: left">ç¼ç¨æ¨¡å</td> + <td style="text-align: left">provider-springmvc</td> + <td style="text-align: left">æ¯</td> + <td style="text-align: left">æä¾Spring MVCå¼å模å¼</td> + </tr> + <tr> + <td style="text-align: left">é信模å</td> + <td style="text-align: left">transport-rest-vertx</td> + <td style="text-align: left">æ¯</td> + <td style="text-align: left">è¿è¡äºHTTPä¹ä¸çå¼åæ¡æ¶ï¼ä¸ä¾èµWEB容å¨ï¼åºç¨æå ä¸ºå¯æ§è¡jar</td> + </tr> + <tr> + <td style="text-align: left">é信模å</td> + <td style="text-align: left">transport-rest-servlet</td> + <td style="text-align: left">æ¯</td> + <td style="text-align: left">è¿è¡äºWEB容å¨çå¼åæ¡æ¶ï¼åºç¨æå 为warå </td> + </tr> + <tr> + <td style="text-align: left">é信模å</td> + <td style="text-align: left">transport-highway</td> + <td style="text-align: left">æ¯</td> + <td style="text-align: left">æä¾é«æ§è½çç§æéä¿¡åè®®ï¼ä» ç¨äºjavaä¹é´äºéã</td> + </tr> + <tr> + <td style="text-align: left">è¿è¡æ¨¡å</td> + <td style="text-align: left">handler-loadbalance</td> + <td style="text-align: left">æ¯</td> + <td style="text-align: left">è´è½½å衡模åãæä¾åç§è·¯ç±çç¥åé ç½®æ¹æ³ãä¸è¬å®¢æ·ç«¯ä½¿ç¨ã</td> + </tr> + <tr> + <td style="text-align: left">è¿è¡æ¨¡å</td> + <td style="text-align: left">handler-bizkeeper</td> + <td style="text-align: left">æ¯</td> + <td style="text-align: left">åæå¡æ²»çç¸å ³çåè½ï¼æ¯å¦é离ãçæã容éã</td> + </tr> + <tr> + <td style="text-align: left">è¿è¡æ¨¡å</td> + <td style="text-align: left">handler-tracing</td> + <td style="text-align: left">æ¯</td> + <td style="text-align: left">è°ç¨é¾è·è¸ªæ¨¡åï¼å¯¹æ¥çæ§ç³»ç»ï¼ååºæç¹æ°æ®ã</td> + </tr> + </tbody> +</table> + + + </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/servicecomb-introduction.md">æ¥åæ¬ç½é¡µé®é¢</a></li> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_users/cn/servicecomb-introduction.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>
