SpringCloud之Eureka服务注册与发现(一)

一 Eureka的基本架构

Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper)。

Eureka 采用了 C-S 的设计架构。Eureka Server 作为服务注册功能的服务器,它是服务注册中心。

而系统中的其他微服务,使用 Eureka 的客户端连接到 Eureka Server并维持心跳连接。这样系统的维护人员就可以通过 Eureka Server 来监控系统中各个微服务是否正常运行。SpringCloud 的一些其他模块(比如Zuul)就可以通过 Eureka Server 来发现系统中的其他微服务,并执行相关的逻辑。

二 Eureka的三大角色

    SpringCloud之Eureka服务注册与发现(一)_第1张图片

  • Eureka Server 提供服务注册和发现

  • Service Provider服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到

  • Service Consumer服务消费方从Eureka获取注册服务列表,从而能够消费服务

三 构建步骤

  • 创建eureka-server项目

    • pom.xml


     
     
            
                org.springframework.boot
                spring-boot-starter-web
            
            
                org.springframework.cloud
                spring-cloud-starter-netflix-eureka-server
            
                org.springframework.boot
                spring-boot-starter-test
                test
            
        
            
                
                    org.springframework.cloud
                    spring-cloud-dependencies
                    ${spring-cloud.version}
                    pom
                    import
                
            
        
            
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                
            
        

     

    • yml

      server:
        port: 8761
      ​
      eureka:
        instance:
          hostname: localhost
        client:
          registerWithEureka: false
          fetchRegistry: false
          serviceUrl:
            defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

       

    • 启动类

      @SpringBootApplication
      @EnableEurekaServer
      public class EurekaServerApplication {
      ​
          public static void main(String[] args) {
              SpringApplication.run(EurekaServerApplication.class, args);
          }
      ​
      }

       

    • 启动结果

      SpringCloud之Eureka服务注册与发现(一)_第2张图片

  • 创建producer-service

    • pom.xml

       1   
       2         
       3             org.springframework.boot
       4             spring-boot-starter-actuator
       5         
       6         
       7             org.springframework.boot
       8             spring-boot-starter-web
       9         
      10         
      11             org.springframework.cloud
      12             spring-cloud-starter-netflix-eureka-client
      13         
      14 15         
      16             org.springframework.boot
      17             spring-boot-starter-test
      18             test
      19         
      20     
      21 22     
      23         
      24             
      25                 org.springframework.cloud
      26                 spring-cloud-dependencies
      27                 ${spring-cloud.version}
      28                 pom
      29                 import
      30             
      31         
      32     
      33     
      34     
      35         microservicecloud
      36         
      37             
      38                 src/main/resources
      39                 true
      40             
      41         
      42         
      43             
      44                 org.apache.maven.plugins
      45                 maven-resources-plugin
      46                 
      47                     
      48                         $
      49                     
      50                 
      51             
      52         
      53     
    • yml

      eureka:
        client:
          serviceUrl:
            defaultZone: http://localhost:8761/eureka/
        instance:         
          instance-id: product-service8080    #主机名称:服务名称修改
          prefer-ip-address: true   #访问路径可以显示IP地址
      ​
      server:
        port: 8080
      spring:
        application:
          name: product-service
      #微服务info内容详细信息
      info:
        app.name: product-servic
        company.name: www.topcheer.com

       

    • 启动类

      @SpringBootApplication
      public class ProducerServiceApplication {
      ​
          public static void main(String[] args) {
              SpringApplication.run(ProducerServiceApplication.class, args);
          }
      ​
      }
      ​
    • 结果:

                   SpringCloud之Eureka服务注册与发现(一)_第3张图片 

你可能感兴趣的:(SpringCloud之Eureka服务注册与发现(一))