<!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/servicecomb-service-center-client/" rel="permalink">使用ServiceComb客户端轻松调用ServiceCenter
</a>
      
    </h2>
    <p class="archive__item-excerpt" itemprop="description">使用ServiceComb客户端轻松调用ServiceCenter
</p>
    
      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 




  2 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/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>
    </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>
