<!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>ServiceComb Pack 0.4.0 Integrated Discovery Service : Eureka - Apache ServiceComb</title>




<meta name="description" content="ServiceComb Pack Integrated Discovery Service Eurek">




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

<meta property="og:locale" content="en">
<meta property="og:site_name" content="Apache ServiceComb">
<meta property="og:title" content="ServiceComb Pack 0.4.0 Integrated Discovery Service : Eureka">


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



  <meta property="og:description" content="ServiceComb Pack Integrated Discovery Service Eurek">



  <meta name="twitter:site" content="@ServiceComb">
  <meta name="twitter:title" content="ServiceComb Pack 0.4.0 Integrated Discovery Service : Eureka">
  <meta name="twitter:description" content="ServiceComb Pack Integrated Discovery Service Eurek">
  <meta name="twitter:url" content="">

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

  
    <meta name="twitter:creator" content="@">
  



  

  





  <meta property="og:type" content="article">
  <meta property="article:published_time" content="2019-04-15T00:00:00+08:00">








  <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.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" 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 href="/docs/users/">Documentation</a>
              

              <ul id="childrenShow" class="def-children-show" onmouseleave="$('#childrenShow').css('display', 'none')">
                
                <li><a href="/docs/getting-started/" class="">Get 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/servicecomb-pack-eureka/>中文</a>
          
        </div>
      </nav>
    </div>
  </div>
</div>


    



<div id="main" role="main">
  
  <div class="sidebar sticky">
      
      <div class="back-to-home"><a href="/">Home</a> > ServiceComb Pack 0.4.0 Integrated Discovery Service : Eureka</div>
      
  

<div itemscope itemtype="http://schema.org/Person">

  

  <div class="author__content">
    <h3 class="author__name" itemprop="name">Zhang Lei</h3>
    
      <p class="author__bio" itemprop="description">
	    
        Enjoy sharing, Enjoy living
	    
      </p>
    
  </div>

  <div class="author__urls-wrapper">
    <button class="btn btn--inverse">Follow</button>
    <ul class="author__urls social-icons">
      

      
        <li>
          <a href="http://github.com/coolbeevip" itemprop="url">
            <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
          </a>
        </li>
      

      
        <li>
          <a href="mailto:coolbeevip@gmail.com">
            <meta itemprop="email" content="coolbeevip@gmail.com" />
            <i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> Email
          </a>
        </li>
      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      <!--
  <li>
    <a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs">
      <i class="fa fa-fw" aria-hidden="true"></i> Custom Social Profile Link
    </a>
  </li>
-->
    </ul>
  </div>
</div>

  
  </div>



  <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
    <meta itemprop="headline" content="ServiceComb Pack 0.4.0 Integrated Discovery Service : Eureka">
    <meta itemprop="description" content="ServiceComb Pack Integrated Discovery Service Eurek">
    <meta itemprop="datePublished" content="April 15, 2019">
    <meta itemprop="dateModified" content="April 15, 2019">

    <div class="page__inner-wrap">
      
        
          <header>
            <h1 class="page__title" itemprop="headline">ServiceComb Pack 0.4.0 Integrated Discovery Service : Eureka
</h1>
            
              <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 




  1 minute read

</p>
            
          </header>
        
      

      <section class="page__content" itemprop="text">
        <p>ServiceComb Pack supports the registration of Alpha service instances to Eureka from version 0.4.0, and Omega-side programs can visit Alpha with Eureka</p>

<h3 id="compile-with-eureka">Compile with Eureka</h3>

<p>Pack doesn’t include Eureka support by default，you can use profile <code class="highlighter-rouge">-Pspring-cloud-eureka</code> to enable the feature of eureka when building the code of Pack.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/apache/servicecomb-pack.git
<span class="nb">cd </span>servicecomb-pack
mvn clean <span class="nb">install</span> <span class="nt">-DskipTests</span><span class="o">=</span><span class="nb">true</span> <span class="nt">-Pspring-boot-2</span>,spring-cloud-eureka
</code></pre></div></div>

<h3 id="run-eureka">Run Eureka</h3>

<ul>
  <li>Start Eureka with Docker, please refer to the official website <a href="https://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html#spring-cloud-eureka-server">https://cloud.spring.io</a> for more information.</li>
</ul>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker run <span class="nt">-d</span> <span class="nt">-p</span> 8761:8761 springcloud/eureka
</code></pre></div></div>

<ul>
  <li>Eureka UI</li>
</ul>

<p>Visit http://0.0.0.0:8761 in the browser, you can see the following page shows that Eureka is started successfully</p>

<p><img src="/assets/images/2019-04-15-servicecomb-pack-eureka/eureka-main.png" alt="eureka_main" /></p>

<h3 id="run-alpha">Run Alpha</h3>

<p>Enable registration to Eureka with the configuration of <code class="highlighter-rouge">eureka.client.enabled=true</code></p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>java <span class="nt">-jar</span> alpha-server-0.4.0-exec.jar <span class="se">\</span>
  <span class="nt">--server</span>.port<span class="o">=</span>8090 <span class="se">\</span>
  <span class="nt">--alpha</span>.server.port<span class="o">=</span>8080 <span class="se">\</span>
  <span class="nt">--spring</span>.datasource.url<span class="o">=</span><span class="s2">"jdbc:postgresql://127.0.0.1:5432/saga?useSSL=false"</span> <span class="se">\</span>
  <span class="nt">--spring</span>.datasource.username<span class="o">=</span>saga-user <span class="se">\</span>
  <span class="nt">--spring</span>.datasource.password<span class="o">=</span>saga-password <span class="se">\</span>
  <span class="nt">--eureka</span>.client.enabled<span class="o">=</span><span class="nb">true</span> <span class="se">\</span>
  <span class="nt">--eureka</span>.client.service-url.defaultZone<span class="o">=</span>http://0.0.0.0:8761/eureka <span class="se">\</span>
  <span class="nt">--spring</span>.profiles.active<span class="o">=</span>prd 
</code></pre></div></div>
<p><strong>Note:</strong> Check out for Eureka more details <a href="https://cloud.spring.io/spring-cloud-netflix/multi/multi__service_discovery_eureka_clients.html#netflix-eureka-client-starter">Spring Cloud Netflix 2.x</a> <a href="https://cloud.spring.io/spring-cloud-netflix/1.4.x/multi/multi__service_discovery_eureka_clients.html#netflix-eureka-client-starter">Spring Cloud Netflix 1.x</a></p>

<p>After Alpha is launched, you can see that you have registered to Eureka</p>

<p><img src="/assets/images/2019-04-15-servicecomb-pack-eureka/alpha_register_to_eureka.png" alt="alpha_register_to_eureka" /></p>

<p>Use <code class="highlighter-rouge">curl http://127.0.0.1:8761/eureka/apps/</code> You can see that Alpha’s gRPC service address and port have been registered in Eureka’s Metadata</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;applications&gt;</span>
  <span class="nt">&lt;versions__delta&gt;</span>1<span class="nt">&lt;/versions__delta&gt;</span>
  <span class="nt">&lt;apps__hashcode&gt;</span>UP_1_<span class="nt">&lt;/apps__hashcode&gt;</span>
  <span class="nt">&lt;application&gt;</span>
    <span class="nt">&lt;name&gt;</span>SERVICECOMB-ALPHA-SERVER<span class="nt">&lt;/name&gt;</span>
    <span class="nt">&lt;instance&gt;</span>
      <span class="nt">&lt;hostName&gt;</span>10.50.8.23<span class="nt">&lt;/hostName&gt;</span>
      <span class="nt">&lt;app&gt;</span>SERVICECOMB-ALPHA-SERVER<span class="nt">&lt;/app&gt;</span>
      <span class="nt">&lt;ipAddr&gt;</span>10.50.8.23<span class="nt">&lt;/ipAddr&gt;</span>
      <span class="nt">&lt;status&gt;</span>UP<span class="nt">&lt;/status&gt;</span>
      <span class="nt">&lt;overriddenstatus&gt;</span>UNKNOWN<span class="nt">&lt;/overriddenstatus&gt;</span>
      <span class="nt">&lt;port</span> <span class="na">enabled=</span><span class="s">"true"</span><span class="nt">&gt;</span>8090<span class="nt">&lt;/port&gt;</span>
      <span class="nt">&lt;securePort</span> <span class="na">enabled=</span><span class="s">"false"</span><span class="nt">&gt;</span>443<span class="nt">&lt;/securePort&gt;</span>
      <span class="nt">&lt;countryId&gt;</span>1<span class="nt">&lt;/countryId&gt;</span>
      <span class="nt">&lt;dataCenterInfo</span> <span class="na">class=</span><span class="s">"com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo"</span><span class="nt">&gt;</span>
        <span class="nt">&lt;name&gt;</span>MyOwn<span class="nt">&lt;/name&gt;</span>
      <span class="nt">&lt;/dataCenterInfo&gt;</span>
      <span class="nt">&lt;leaseInfo&gt;</span>
        <span class="nt">&lt;renewalIntervalInSecs&gt;</span>30<span class="nt">&lt;/renewalIntervalInSecs&gt;</span>
        <span class="nt">&lt;durationInSecs&gt;</span>90<span class="nt">&lt;/durationInSecs&gt;</span>
        <span class="nt">&lt;registrationTimestamp&gt;</span>1555317761365<span class="nt">&lt;/registrationTimestamp&gt;</span>
        <span class="nt">&lt;lastRenewalTimestamp&gt;</span>1555317761365<span class="nt">&lt;/lastRenewalTimestamp&gt;</span>
        <span class="nt">&lt;evictionTimestamp&gt;</span>0<span class="nt">&lt;/evictionTimestamp&gt;</span>
        <span class="nt">&lt;serviceUpTimestamp&gt;</span>1555317761067<span class="nt">&lt;/serviceUpTimestamp&gt;</span>
      <span class="nt">&lt;/leaseInfo&gt;</span>
      <span class="nt">&lt;metadata&gt;</span>
        <span class="nt">&lt;management.port&gt;</span>8090<span class="nt">&lt;/management.port&gt;</span>
        <span class="nt">&lt;servicecomb-alpha-server&gt;</span>0.0.0.0:8080<span class="nt">&lt;/servicecomb-alpha-server&gt;</span>
      <span class="nt">&lt;/metadata&gt;</span>
      <span class="nt">&lt;homePageUrl&gt;</span>http://10.50.8.23:8090/<span class="nt">&lt;/homePageUrl&gt;</span>
      <span class="nt">&lt;statusPageUrl&gt;</span>http://10.50.8.23:8090/actuator/info<span class="nt">&lt;/statusPageUrl&gt;</span>
      <span class="nt">&lt;healthCheckUrl&gt;</span>http://10.50.8.23:8090/actuator/health<span class="nt">&lt;/healthCheckUrl&gt;</span>
      <span class="nt">&lt;vipAddress&gt;</span>servicecomb-alpha-server<span class="nt">&lt;/vipAddress&gt;</span>
      <span class="nt">&lt;secureVipAddress&gt;</span>servicecomb-alpha-server<span class="nt">&lt;/secureVipAddress&gt;</span>
      <span class="nt">&lt;isCoordinatingDiscoveryServer&gt;</span>false<span class="nt">&lt;/isCoordinatingDiscoveryServer&gt;</span>
      <span class="nt">&lt;lastUpdatedTimestamp&gt;</span>1555317761365<span class="nt">&lt;/lastUpdatedTimestamp&gt;</span>
      <span class="nt">&lt;lastDirtyTimestamp&gt;</span>1555317760932<span class="nt">&lt;/lastDirtyTimestamp&gt;</span>
      <span class="nt">&lt;actionType&gt;</span>ADDED<span class="nt">&lt;/actionType&gt;</span>
    <span class="nt">&lt;/instance&gt;</span>
  <span class="nt">&lt;/application&gt;</span>
<span class="nt">&lt;/applications&gt;</span>
</code></pre></div></div>

<h3 id="configuring-the-omega-side">Configuring the Omega side</h3>

<blockquote>
  <p>ServiceComb Pack 0.4.0 Omega defaults use Spring Boot 2.x Spring and Spring Cloud Netflix 2.x, If your Omega side project base on Spring Boot 1.x you can use <code class="highlighter-rouge">-Pspring-boot-1</code> to rebuild ServiceComb Pack to Spring Boot 1.x and Spring Cloud Netflix 1.x</p>
</blockquote>

<p>Modify the original omega project</p>

<p>add dependencies</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.apache.servicecomb.pack<span class="nt">&lt;/groupId&gt;</span>
  <span class="nt">&lt;artifactId&gt;</span>omega-spring-cloud-eureka-starter<span class="nt">&lt;/artifactId&gt;</span>
  <span class="nt">&lt;version&gt;</span>${pack.version}<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
</code></pre></div></div>

<p>Add the following to <code class="highlighter-rouge">application.yaml</code></p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">eureka</span><span class="pi">:</span>
  <span class="na">client</span><span class="pi">:</span>
    <span class="na">service-url</span><span class="pi">:</span>
      <span class="na">defaultZone</span><span class="pi">:</span> <span class="s">http://127.0.0.1:8761/eureka</span>
<span class="na">alpha</span><span class="pi">:</span>
  <span class="na">cluster</span><span class="pi">:</span>
    <span class="na">register</span><span class="pi">:</span>
      <span class="na">type</span><span class="pi">:</span> <span class="s">eureka</span>
</code></pre></div></div>

<ul>
  <li>
    <p><code class="highlighter-rouge">eureka.client.service-url.defaultZone</code> property is set to the Eureka server’s instance address, check out Spring Boot’s  <a href="https://cloud.spring.io/spring-cloud-netflix/multi/multi__service_discovery_eureka_clients.html#netflix-eureka-client-starter">Spring Cloud Netflix 2.x</a> or <a href="https://cloud.spring.io/spring-cloud-netflix/1.4.x/multi/multi__service_discovery_eureka_clients.html#netflix-eureka-client-starter">Spring Cloud Netflix 1.x</a> for more details.</p>
  </li>
  <li>
    <p><code class="highlighter-rouge">alpha.cluster.register.type=eureka</code>  property is omega gets alpha gRPC address from Eureka</p>
  </li>
  <li>
    <p>spring boot version compatible</p>
  </li>
</ul>

<p>If your project is not using spring boot 2.1.1, please refer to this list to add a compatible spring-cloud-starter-netflix-eureka-client version</p>

<table>
  <thead>
    <tr>
      <th>spring boot</th>
      <th>spring-cloud-starter-netflix-eureka-client</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>2.1.x.RELEASE</td>
      <td>2.1.1.RELEASE</td>
    </tr>
    <tr>
      <td>2.0.x.RELEASE</td>
      <td>2.0.3.RELEASE</td>
    </tr>
  </tbody>
</table>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;dependencyManagement&gt;</span>
  <span class="nt">&lt;dependencies&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-netflix-eureka-client<span class="nt">&lt;/artifactId&gt;</span>
      <span class="nt">&lt;version&gt;</span>2.0.3.RELEASE<span class="nt">&lt;/version&gt;</span>
    <span class="nt">&lt;/dependency&gt;</span>
  <span class="nt">&lt;/dependencies&gt;</span>
<span class="nt">&lt;/dependencyManagement&gt;</span>
</code></pre></div></div>

        
      </section>

      <footer class="page__meta">
        
        
  


  
  
  

  <p class="page__taxonomy">
    <strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> Tags: </strong>
    <span itemprop="keywords">
    
      
      
      <a href="/tags/#discovery" class="page__taxonomy-item" rel="tag">Discovery</a><span class="sep">, </span>
    
      
      
      <a href="/tags/#eureka" class="page__taxonomy-item" rel="tag">Eureka</a><span class="sep">, </span>
    
      
      
      <a href="/tags/#servicecomb-pack" class="page__taxonomy-item" rel="tag">ServiceComb Pack</a>
    
    </span>
  </p>





        
          
            
              <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2019-04-15">April 15, 2019</time></p>
            
          
        
      </footer>

      <section class="page__share">
  
    <h4 class="page__share-title">Share on</h4>
  

  <a href="https://twitter.com/intent/tweet?via=ServiceComb&text=ServiceComb Pack 0.4.0 Integrated Discovery Service : Eureka /docs/servicecomb-pack-eureka/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>

  <a href="https://www.facebook.com/sharer/sharer.php?u=/docs/servicecomb-pack-eureka/" class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>

  <a href="https://plus.google.com/share?url=/docs/servicecomb-pack-eureka/" class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>

  <a href="https://www.linkedin.com/shareArticle?mini=true&url=/docs/servicecomb-pack-eureka/" class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
</section>


      
  <nav class="pagination">
    
      <a href="/cn/docs/servicecomb-pack-consul/" class="pagination--pager" title="ServiceComb Pack 0.4.0 集成发现服务 : Consul
">Previous</a>
    
    
      <a href="/cn/docs/servicecomb-pack-eureka/" class="pagination--pager" title="ServiceComb Pack 0.4.0 集成发现服务 : Spring Cloud Eureka
">Next</a>
    
  </nav>


    </div>

    
      <div class="page__comments">
  
  
    <section id="static-comments">
      
        <!-- Start static comments -->
        <div class="js-comments">
          
        </div>
        <!-- End static comments -->

        <!-- Start new comment form -->
        <h4 class="page__comments-title">Leave a Comment</h4>
        <p class="small">Your email address will not be published. Required fields are marked <span class="required">*</span></p>
        <form id="new_comment" class="page__comments-form js-form form" method="post" action="https://api.staticman.net/v1/entry/apache/incubator-servicecomb-website/master">
          <div class="form__spinner">
            <i class="fa fa-spinner fa-spin fa-3x fa-fw"></i>
            <span class="sr-only">Loading...</span>
          </div>

          <fieldset>
            <label for="comment-form-message">Comment <small class="required">*</small></label>
            <textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea>
            <div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">Markdown is supported.</a></div>
          </fieldset>
          <fieldset>
            <label for="comment-form-name">Name <small class="required">*</small></label>
            <input type="text" id="comment-form-name" name="fields[name]" tabindex="2" />
          </fieldset>
          <fieldset>
            <label for="comment-form-email">Email address <small class="required">*</small></label>
            <input type="email" id="comment-form-email" name="fields[email]" tabindex="3" />
          </fieldset>
          <fieldset>
            <label for="comment-form-url">Website (optional)</label>
            <input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/>
          </fieldset>
          <fieldset class="hidden" style="display: none;">
            <input type="hidden" name="options[slug]" value="servicecomb-pack-eureka">
            <label for="comment-form-location">Not used. Leave blank if you are a human.</label>
            <input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/>
          </fieldset>
          <!-- Start comment form alert messaging -->
          <p class="hidden js-notice">
            <strong class="js-notice-text"></strong>
          </p>
          <!-- End comment form alert messaging -->
          <fieldset>
            <button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--large">Submit Comment</button>
          </fieldset>
        </form>
        <!-- End new comment form -->
      
    </section>
  
</div>

    
  </article>

  
  
    <div class="page__related">
      <h4 class="page__related-title">You May Also Enjoy</h4>
      <div class="grid__wrapper">
        
          



<div class="grid__item">
  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
    
    <h2 class="archive__item-title" itemprop="headline">
      
        <a href="/cn/docs/playing-on-the-open-source-community-with-Apache-ServiceComb-BUPT/" rel="permalink">与Apache ServiceComb一起玩开源-北邮站 (PPT Download)
</a>
      
    </h2>
    <p class="archive__item-excerpt" itemprop="description">与Apache ServiceComb一起玩开源-北邮站 (PPT Download)
</p>
    
      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 




  less than 1 minute read

</p>
    
  </article>
</div>

        
          



<div class="grid__item">
  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
    
    <h2 class="archive__item-title" itemprop="headline">
      
        <a href="/docs/servicecomb-accept-newcapec-institute-code-donation/" rel="permalink">Apache ServiceComb Accept Code Donation From NewCapec Institute
</a>
      
    </h2>
    <p class="archive__item-excerpt" itemprop="description">Apache ServiceComb Accept Code Donation From NewCapec Institute
</p>
    
      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 




  less than 1 minute read

</p>
    
  </article>
</div>

        
          



<div class="grid__item">
  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
    
    <h2 class="archive__item-title" itemprop="headline">
      
        <a href="/cn/docs/servicecomb-accept-newcapec-institute-code-donation/" rel="permalink">Apache ServiceComb社区接受新开普软件研究院的代码捐赠
</a>
      
    </h2>
    <p class="archive__item-excerpt" itemprop="description">Apache Servicecomb社区接受新开普软件研究院的代码捐赠
</p>
    
      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 




  less than 1 minute read

</p>
    
  </article>
</div>

        
          



<div class="grid__item">
  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
    
    <h2 class="archive__item-title" itemprop="headline">
      
        <a href="/cn/docs/use-oas-validator-help-standardize-oas-spec/" rel="permalink">使用OAS Validator帮助你规范OpenAPI Spec文档
</a>
      
    </h2>
    <p class="archive__item-excerpt" itemprop="description">本文将介绍如何规范你的OpenAPI Spec文档
</p>
    
      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 




  1 minute read

</p>
    
  </article>
</div>

        
      </div>
    </div>
  
</div>


    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <div align="center" style="margin: 0 0;">
    <ins class="adsbygoogle"
         style="display:block; border-bottom: initial;"
         data-ad-client="ca-pub-7328585512091257"
         data-ad-slot="3049671934"
         data-ad-format="auto"></ins>
    </div>

    <div class="page__footer">
      <footer>
        <!-- start custom footer snippets -->

<!-- end custom footer snippets -->

        <div class="container">
  <div class="row justify-content-md-center">
    
    <div class="col">
      <ul>
        <p class="header">Resources</p>
        <li><a href="/docs/quick-start/">Get started</a></li>
        <li><a href="/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/_posts/2019-04-15-servicecomb-pack-eureka.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; 2019 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>







  
  <script>
    (function ($) {
    var $comments = $('.js-comments');

    $('#new_comment').submit(function () {
      var form = this;

      $(form).addClass('disabled');
      $('#comment-form-submit').html('<i class="fa fa-spinner fa-spin fa-fw"></i> Loading...');

      $.ajax({
        type: $(this).attr('method'),
        url: $(this).attr('action'),
        data: $(this).serialize(),
        contentType: 'application/x-www-form-urlencoded',
        success: function (data) {
          $('#comment-form-submit').html('Submitted');
          $('.page__comments-form .js-notice').removeClass('notice--danger');
          $('.page__comments-form .js-notice').addClass('notice--success');
          showAlert('Thanks for your comment! It will show on the site once it has been approved.');
        },
        error: function (err) {
          console.log(err);
          $('#comment-form-submit').html('Submit Comment');
          $('.page__comments-form .js-notice').removeClass('notice--success');
          $('.page__comments-form .js-notice').addClass('notice--danger');
          showAlert('Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again.');
          $(form).removeClass('disabled');
        }
      });

      return false;
    });

    function showAlert(message) {
      $('.page__comments-form .js-notice').removeClass('hidden');
      $('.page__comments-form .js-notice-text').html(message);
    }
  })(jQuery);
  </script>







  </body>
</html>
