<!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="en" class="no-js">
  <head>
    <meta charset="utf-8">

<!-- begin SEO -->









<title>Using Zuul for Edge Service - Apache ServiceComb</title>




<meta name="description" content="Using Zuul for Edge Service">




<meta name="author" content="">

<meta property="og:locale" content="en">
<meta property="og:site_name" content="Apache ServiceComb">
<meta property="og:title" content="Using Zuul for Edge Service">


  <link rel="canonical" href="https://github.com/pages/apache/incubator-servicecomb-website/docs/users/edging-service/zuul/">
  <meta property="og:url" content="https://github.com/pages/apache/incubator-servicecomb-website/docs/users/edging-service/zuul/">



  <meta property="og:description" content="Using Zuul for Edge Service">



  <meta name="twitter:site" content="@ServiceComb">
  <meta name="twitter:title" content="Using Zuul for Edge Service">
  <meta name="twitter:description" content="Using Zuul for Edge Service">
  <meta name="twitter:url" content="">

  
    <meta name="twitter:card" content="summary">
    
  

  



  

  












  <script type="application/ld+json">
    {
      "@context" : "http://schema.org",
      "@type" : "Person",
      "name" : "Apache ServiceComb",
      "url" : "https://github.com/pages/apache/incubator-servicecomb-website",
      "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 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/vendor/prism/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?v=1">
<link rel="stylesheet" href="/assets/vendor/prism/prism.css?v=1">

<!--[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.loli.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" onmouseleave="$('#childrenShow').css('display', 'none')">
  <div class="masthead__inner-wrap">
    <div class="masthead__menu">
      <nav id="site-nav" class="greedy-nav">
	      
          <a class="site-title active" href="/"><img src="https://www.apache.org/img/servicecomb.png"></a>
	      
        <ul class="visible-links">
          
            
          
          
            
              <li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
                
                  <a href="/">Home</a>
                
              </li>
            
          
            
          
          
            
              <li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
                
                  <a href="/developers/">Projects</a>
                
              </li>
            
          
            
          
          
            
            <li class="def-nav-li" onmouseenter="$('#childrenShow').css('display', 'block')">
              
              
              

              
                <a class="active" href="/docs/users/">Documentation</a>
              

              <ul id="childrenShow" class="def-children-show-en" onmouseleave="$('#childrenShow').css('display', 'none')">
                
                <li><a href="/docs/getting-started/" class="">Getting started</a></li>
                
                <li><a href="/docs/users/" class="">Docs</a></li>
                
                <li><a href="/slides/" class="">Video</a></li>
                
                <li><a href="/faqs/" class="">FAQ</a></li>
                
              </ul>
            </li>
          
          
            
          
          
            
              <li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
                
                  <a href="/developers/contributing">Community</a>
                
              </li>
            
          
            
          
          
            
              <li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
                
                  <a href="/year-archive/">Blogs</a>
                
              </li>
            
          
            
          
          
            
              <li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
                
                  <a href="/release/">Downloads</a>
                
              </li>
            
          
        </ul>
        <button><div class="navicon"></div></button>
        <ul class="hidden-links hidden"></ul>
        <div class="nav-lang">
          
            
            <a href=/cn/docs/users/edging-service/zuul/>中文</a>
          
        </div>
      </nav>
    </div>
  </div>
</div>


    



<div id="main" role="main">
  
  <div class="sidebar sticky">
      
      <div class="back-to-home"><a href="/">Home</a> > Using Zuul for Edge Service</div>
      
  
  
    
      
      
      
    
    
      

<nav class="nav__list">
  
  <input id="ac-toc" name="accordion-toc" type="checkbox" />
  <label for="ac-toc">Toggle Menu</label>
  <ul class="nav__items">
    
      <li>
        
          <span class="nav__sub-title">Java Chassis User Guide</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="https://docs.servicecomb.io/java-chassis/en_US/index.html" class="">1.2.1</a></li>
          
        </ul>
        
      </li>
    
      <li>
        
          <span class="nav__sub-title">Saga User Guide</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="https://docs.servicecomb.io/saga/en_US/index.html" class="">0.5.0</a></li>
          
        </ul>
        
      </li>
    
      <li>
        
          <span class="nav__sub-title">ServiceCenter User Guide</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="https://docs.servicecomb.io/service-center/en_US/index.html" class="">1.2.0</a></li>
          
        </ul>
        
      </li>
    
      <li>
        
          <span class="nav__sub-title">Kie User Guide</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="/docs/kie/0.1.0/index.html" class="">0.1.0</a></li>
          
        </ul>
        
      </li>
    
      <li>
        
          <span class="nav__sub-title">Mesher User Guide</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="/docs/mesher/1.6.3/index.html" class="">1.6.3</a></li>
          
        </ul>
        
      </li>
    
  </ul>
</nav>

    
  
  </div>



  <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
    <meta itemprop="headline" content="Using Zuul for Edge Service">
    <meta itemprop="description" content="Using Zuul for Edge Service">
    
    <meta itemprop="dateModified" content="August 15, 2017">

    <div class="page__inner-wrap">
      
        
          <header>
            <h1 class="page__title" itemprop="headline">Using Zuul for Edge Service
</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> On This Page</h4></header> -->
<ul class="toc__menu" id="markdown-toc">
  <li><a href="#concept-description" id="markdown-toc-concept-description">Concept Description</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="#scenario" id="markdown-toc-scenario">Scenario</a></li>
  <li><a href="#precautions" id="markdown-toc-precautions">Precautions</a></li>
  <li><a href="#starting-zuul-proxy" id="markdown-toc-starting-zuul-proxy">Starting Zuul Proxy</a></li>
  <li><a href="#using-zuul-proxy" id="markdown-toc-using-zuul-proxy">Using Zuul Proxy</a></li>
</ul>

  </nav>
</aside>

<h2 id="concept-description">Concept Description</h2>

<h3 id="api-gateway">API Gateway：</h3>

<p>An API Gateway is a server and the only node through which you can access the system. API Gateway encapsulates the internal system architecture and provides APIs for clients.</p>

<h3 id="zuul">Zuul</h3>

<p>Zuul is a JVM-based router and server load balancer of Netflix. You can use Zuul to perform the following operations:</p>

<ul>
  <li>Certification</li>
  <li>Insight</li>
  <li>Stress test</li>
  <li>Canary test</li>
  <li>Dynamic route</li>
  <li>Service migration</li>
  <li>Offload</li>
  <li>Security</li>
  <li>Static phase response processing</li>
  <li>Proactive/passive traffic management</li>
</ul>

<p>This section describes how to use Zuul as the API Gateway in the Spring Boot application. For details about Zuul, see <a href="https://springcloud.cc/spring-cloud-dalston.html#_router_and_filter_zuul">Router and Filter: Zuul</a>.</p>

<h2 id="scenario">Scenario</h2>

<p>Use Zuul as the API Gateway, that is, establishes a Zuul Proxy application. In this proxy application, a unified access of all the microservices is defined, and each microservice is distinguished using a prefix (stipped). This section establishes the ZuulProxy Spring Boot application to demonstrate the API Gateway function.</p>

<h2 id="precautions">Precautions</h2>

<p>In this section, demos, such as ZuulProxy and ZuulServer, are based on Spring Boot and the Java Chassis framework. For detals, see <a href="/users/use-servicecomb-in-spring-boot/">Integrating Spring Boot into Java Chassis</a>.</p>

<h2 id="starting-zuul-proxy">Starting Zuul Proxy</h2>

<p>This topic describes how to start a ZuulProxy application as the API Gateway. Perform the following steps:</p>

<ul>
  <li>
    <p><strong>Step 1</strong> Add the following dependency to the POM file.</p>

    <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;dependency&gt;</span> 
   <span class="nt">&lt;groupId&gt;</span>org.springframework.cloud<span class="nt">&lt;/groupId&gt;</span>  
   <span class="nt">&lt;artifactId&gt;</span>spring-cloud-starter-zuul<span class="nt">&lt;/artifactId&gt;</span> 
 <span class="nt">&lt;/dependency&gt;</span>
 <span class="nt">&lt;dependency&gt;</span> 
   <span class="nt">&lt;groupId&gt;</span>org.springframework.cloud<span class="nt">&lt;/groupId&gt;</span>  
   <span class="nt">&lt;artifactId&gt;</span>spring-cloud-starter-ribbon<span class="nt">&lt;/artifactId&gt;</span> 
 <span class="nt">&lt;/dependency&gt;&lt;dependency&gt;</span> 
   <span class="nt">&lt;groupId&gt;</span>org.springframework.cloud<span class="nt">&lt;/groupId&gt;</span>  
   <span class="nt">&lt;artifactId&gt;</span>spring-cloud-starter-hystrix<span class="nt">&lt;/artifactId&gt;</span> 
 <span class="nt">&lt;/dependency&gt;</span>
 <span class="nt">&lt;dependency&gt;</span> 
   <span class="nt">&lt;groupId&gt;</span>org.apache.servicecomb<span class="nt">&lt;/groupId&gt;</span>  
   <span class="nt">&lt;artifactId&gt;</span>spring-boot-starter-discovery<span class="nt">&lt;/artifactId&gt;</span> 
 <span class="nt">&lt;/dependency&gt;</span>
</code></pre></div>    </div>
  </li>
  <li>
    <p><strong>Step 2</strong> Add annotations to the main Spring Boot category:</p>

    <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nd">@SpringBootApplication</span>
 <span class="nd">@EnableServiceComb</span>
 <span class="nd">@EnableZuulProxy</span><span class="c1">//new Annotation</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="nc">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">Exception</span><span class="o">{</span>
     <span class="nc">SpringApplication</span><span class="o">.</span><span class="na">run</span><span class="o">(</span><span class="nc">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>    </div>
  </li>
  <li>
    <p><strong>Step 3</strong> Define a routing policy in the application.yaml file</p>

    <div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="na">server</span><span class="pi">:</span>
   <span class="na">port</span><span class="pi">:</span> <span class="m">8754</span> <span class="c1">#api gateway service port number</span>
 <span class="na">zuul</span><span class="pi">:</span>
   <span class="na">routes</span><span class="pi">:</span> <span class="c1">#Routing policy</span>
     <span class="na">discoveryServer</span><span class="pi">:</span> <span class="s">/myServer/**</span> <span class="c1">#Routing rule</span>
</code></pre></div>    </div>

    <p>The configuration item in ted indicates that the configuration can be performed based on the actual development environment. For details about the rules for defining routing policies of zuul.routers, see：<a href="https://springcloud.cc/spring-cloud-dalston.html#_router_and_filter_zuul">Router and Fillter: Zuul</a> to control routes in a finer granularity.</p>
  </li>
  <li>
    <p><strong>Step 4</strong> Define the microservice attributes in the microservice.yaml fiel.</p>

    <div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="na">APPLICATION_ID</span><span class="pi">:</span> <span class="s">discoverytest</span> <span class="c1">#Service ID</span>
 <span class="na">service_description</span><span class="pi">:</span>
   <span class="na">name</span><span class="pi">:</span> <span class="s">discoveryGateway</span> <span class="c1">#Service Name</span>
   <span class="na">version</span><span class="pi">:</span> <span class="s">0.0.2</span> <span class="c1">#Service Version</span>
 <span class="na">servicecomb</span><span class="pi">:</span>
   <span class="na">service</span><span class="pi">:</span>
     <span class="na">registry</span><span class="pi">:</span>
       <span class="na">address</span><span class="pi">:</span> <span class="s">http://127.0.0.1:30100</span>  <span class="c1">#Service Center registration</span>
   <span class="na">rest</span><span class="pi">:</span>
     <span class="na">address</span><span class="pi">:</span> <span class="s">0.0.0.0:8082</span> <span class="c1">#(Optional) microservice port number</span>
</code></pre></div>    </div>
  </li>
</ul>

<p>All the services used in this section use the local service center. For details, see <a href="/users/setup-environment/#运行service-center">Starting the Local Service Center</a>。</p>

<ul>
  <li><strong>Step 5　</strong> Run ZuulMain Application</li>
</ul>

<h2 id="using-zuul-proxy">Using Zuul Proxy</h2>

<p>Before using the API Gateway provided by Zuul, start the microservice provider defined in zuul.routers.</p>

<p>Pay attention to the following points in the microservice.yaml file:</p>

<ul>
  <li>
    <p>APPLICATION_ID must be the same as that defined in ZuulProxy.</p>
  </li>
  <li>
    <p>The value of service_description.name must be the same as that of zuul.routers</p>
  </li>
</ul>

<p>An example is as follows:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">APPLICATION_ID</span><span class="pi">:</span> <span class="s">discoverytest</span> <span class="c1">#same as ZuulProxy</span>
  <span class="na">service_description</span><span class="pi">:</span>
    <span class="na">name</span><span class="pi">:</span> <span class="s">discoveryServer</span> <span class="c1">#Service name, which corresponds to that of zuul.routers</span>
    <span class="na">version</span><span class="pi">:</span> <span class="s">0.0.2</span>
<span class="na">servicecomb</span><span class="pi">:</span>
  <span class="na">service</span><span class="pi">:</span>
    <span class="na">registry</span><span class="pi">:</span>
      <span class="na">address</span><span class="pi">:</span> <span class="s">http://127.0.0.1:30100</span> <span class="c1">#Service Center registration</span>
  <span class="na">rest</span><span class="pi">:</span>
    <span class="na">address</span><span class="pi">:</span> <span class="s">0.0.0.0:8080</span>
</code></pre></div></div>

<p>The portal for API Gateway is: <a href="http://127.0.0.1:8754">http://127.0.0.1:8754</a>. All services defined in zuul.routers can be accessed through this portal. The access rule are as follows:</p>

<p>http://127.0.0.1:8754/myServer/***](http://127.0.0.1:8754/myServer/***)</p>

<p>This indicates that HTTP calls [http://127.0.0.1:8754/myServer/*** to switch to the discoveryServer service. For example: “/myServer/101” switches to “/101” of discoveryServer service.</p>

<blockquote>
  <p>If multiple discoveryServer service (in different versions) exist in the Service Center, Zuul uses the Ribbon policy to transfer the request by default.</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">Resources</p>
        <li><a href="/docs/getting-started/">Getting started</a></li>
        <li><a href="/docs/users/">User Guide</a></li>
        <li><a href="/slides/">Slides</a></li>
        <li><a href="/users/faq/">Common Questions</a></li>
      </ul>
    </div>
    <div class="col">
      <ul>
        <p class="header">ASF</p>
        <li><a href="http://www.apache.org">Foundation</a></li>
        <li><a href="http://www.apache.org/licenses/">License</a></li>
        <li><a href="http://www.apache.org/events/current-event">Events</a></li>
        <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
        <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
      </ul>
    </div>
    <div class="col">
      <ul>
        <p class="header">Contribute</p>
        <li><a href="http://issues.apache.org/jira/browse/SCB">Report a Doc Issue</a></li>
        <li><a href="https://github.com/apache/servicecomb-website/edit/master/_users/zuul.md">Edit This Page on Github</a></li>
        <li><a href="/developers/submit-codes/">Code Submit Guide</a></li>
        <li><a href="/security">Security</a></li>
      </ul>
    </div>
    <div class="col">
      <ul class="social-icons">
        <p class="header">Community</p>
        <li>
            <a href="mailto:dev-subscribe@servicecomb.incubator.apache.org" rel="nofollow"><span class="mail">Mailing List</span></a>
        </li>
        <li>
            <a href="https://github.com/apache?q=ServiceComb" target="_blank"><span class="github">Github</span></a>
        </li>
        <li>
            <a href="https://twitter.com/ServiceComb" target="_blank"><span class="twitter">Twitter</span></a>
        </li>
        <li>
            <a href="/feed.xml" target="_blank"><span class="rss">Feed</span></a>
        </li>
      </ul>
    </div>
  </div>
</div>
<div class="page__footer-bottom">
  <div>&copy; 2020 Apache ServiceComb. Powered by <a href="http://jekyllrb.com" rel="nofollow">Jekyll</a> &amp; <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
  <div>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</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>
