美文网首页
Spring Cloud 套餐——服务发现组件 Eureka

Spring Cloud 套餐——服务发现组件 Eureka

作者: 码农套餐 | 来源:发表于2017-06-11 13:57 被阅读0次

    服务注册中心 Eureka

    Eureka 分为 Eureka Server 和 Eureka Client。主要用于 Spring Cloud 的服务注册与服务发现。
    代码:https://github.com/coding-farmer-ming/learning-spring-cloud-sample

    Eureka Server 的使用

    1、添加依赖

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <aftifactId>spring-cloud-starter-eureka-server</aftifactId>
    </denpendency>
    

    2、配置 application.yml

    server:
      port: 8761
    eureka:
      client:
        register-with-eureka: false
        fetch-registry: false
        service-url:
          default-zone: http://localhost:8761/eureka
    
    • eureka.client.register-with-eureka:表示是否将自身注册到 Eureka Server,默认为 true
    • eureka.client.fetch-registry:表示是否从 Eureka Server 获取注册信息,默认为 true,一般单点的 Eureka Server 会将其配置为 false,集群的 Eureka Server 需要同步其他 Eureka Server 的注册信息,一般选择配置为 true 或者默认值
    • eureka.client.service-url.default-zone:设置与 Eureka Server 交互的地址,查询与注册服务都依赖与此地址,多个地址可以用 , 分割
      3、启动类
    @SpringBootApplication
    @EnableEurekaServer
    public class EurekaApplication {
        public static void main(String[] args) {
            SpringApplication.run(EurekaApplication.class, args);
        }
    }
    
    • @EnableEurekaServer 声明这是一个 Eureka Server

    Eureka Client 的使用

    1、添加依赖

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <aftifactId>spring-cloud-starter-eureka-server</aftifactId>
    </denpendency>
    

    2、配置 application.yml

    spring:
      application:
        name: microservice-name
    eureka:
      client:
        service-url:
          default-zone: http://localhost:8761/eureka
      instance:
        prefer-ip-address: true
    
    • spring.application.name:指定注册到 Eureka Server 的服务名称
    • eureka.instance-prefer-ip-address:true 表示将服务的 ip 注册到 Eureka Server,false 则表示将服务所在操作系统的 hostname 注册到 Eureka Server
      3、启动类
    @SpringBootApplication
    @EnableDiscoveryClient
    public class ProvuderUserApplication {
        public static void main(String[] args) {
            SpringApplication.run(ProvuderUserApplication.class, args);
        }
    }
    
    • @EnableDiscoveryClient 也可替换为 @EnableEurekaClient,区别就是,后者主要为 Eureka 提供了支持,而前者是一个通用注解,在支持 Eureka 的同时,还支持 Consul 和 ZooKeeper 等服务发现组件,如果项目中使用 Eureka 作为服务发现组件,则二者无区别

    高可用 Eureka Server

    1、高可用 Eureka Server 的依赖与启动类与单点 Eureka Server 是完全相同的
    2、在高可用 Eureka Server 的 application.yml 配置中,需要开启相互注册以及相互同步彼此的服务注册信息

    为了方便,可以在 host 中配置 127.0.0.1 eureka1 eureka2

    spring:
      application:
        name: microservice-eureka
    ---
    spring:
      profiles: eureka1
    server:
      port: 8761
    eureka:
      instance:
        hostname: eureka1
      client:
        service-url:
          default-zone: http://eureka2:8762/eureka/
    ---
    spring:
      profiles: eureka2
    server:
      port: 8762
    eureka:
      instance:
        hostname: eureka2
      client:
        service-url:
          default-zone: http://eureka1:8761/eureka/
    

    3、将应用注册到 Eureka Server 集群

    spring:
      application:
        name: microservice-name
    eureka:
      client:
        service-url:
          default-zone: http://eureka1:8761/eureka,http://eureka2:8762/eureka
      instance:
        prefer-ip-address: true
    
    • 多个 Eureka Server 需要使用 , 分割
    • 可以将服务只注册到其中一个 Eureka Server,而 Eureka Server 会彼此同步其他的服务注册信息

    带有用户认证的 Eureka Server

    1、在添加 Eureka 自身依赖后,还需要添加 Eureka Server 认证的依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <aftifactId>spring-boot-starter-security</aftifactId>
    </denpendency>
    

    2、在配置中,需要添加相关的用户名与密码配置

    security:
      basic:
        enabled: true
      user:
        name: user
        password: password123
    
    • security.basic.enable:为 true 则表示开启基于 HTTP Basic 的认证
    • user.name、user.password:表示用户名与密码
      3、需要注册至 Eureka Server 的服务,需要修改自身的 application.yml 来配置登录的用户名与密码
    eureka:
      client:
        service-url:
          defaultZone: http://username:password@EUREKA_HOST:EUREKA_PORT/eureka/
    

    相关文章

      网友评论

          本文标题:Spring Cloud 套餐——服务发现组件 Eureka

          本文链接:https://www.haomeiwen.com/subject/myuhqxtx.html