Spring Cloud Eureka 服务治理

服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册与发现。

Spring Cloud通过为Eureka增加了Spring Boot风格的自动化配置,我们只需要通过简单引入依赖和注解配置就能让Spring Boot构建的微服务应用轻松地与Eureka服务治理体系进行整合。

Spring Cloud Eureka包含了服务端和客户端。Eureka服务端,也称为服务注册中心,Eureka客户端,主要处理服务的注册与发现。

服务端

  1. 引入依赖
<dependency>
    <groupId>org.springframeword.cloud</groudId>
    <artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
  1. 注解激活
    @EnableEurekaServer

3.application.properties属性配置

server.port=1111

eureka.instance.hostname=
eureka.client.register-with-eureka=false # 由于该应用为注册中心,所以设置为false,代表不向注册中心注册自己
eureka.client.fetch-registry=false # 由于注册中心的职责就是维护服务实例,它并不需要去检索服务,所以设置为false
eureka.client.serviceUrl.defaultZone=http ://${eureka.instance.hostname}:${server.port}/eureka/

客户端

  1. 引入依赖
<dependency>
    <groupId>org.springframeword.cloud</groudId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
  1. 注解激活
    @EnableDiscoveryClient

  2. application.properties属性配置

# 自报家门
spring.application.name=xxx
# 指定服务注册中心的地址
eureka.client.serviceUrl.defaultZone=http: //localhost:1111/eureka/

如果我们不想使用主机名来定义注册中心的地址,也可以使用IP地址的形式,但是需要在配置文件中增加eureka.instance.prefer-ip-address=true,该值默认为false

  1. 代码中使用DiscoveryClient的对象(通过注入),获取从服务中心获取的服务相关的信息

服务消费

服务消费方是Eureka服务治理下的一个普通的微服务(客户端),因此需要按照客户端配置,并与其他微服务进行通信即可,通信方式点我

配置详解

在实际使用Spring Cloud Eureka的过程中,几乎都是对Eureka客户端进行配置。

服务端的配置参考org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean类进一步学习,这些参数均以eureka.server作为前缀。

客户端的配置主要分为以下两方面:

  • 服务注册相关的配置:包括注册中心的地址、服务获取的间隔时间、可用区域等
  • 服务实例相关的配置:包括服务实例的名称、IP地址、端口号、健康检查路径等

服务注册相关的的配置参考org.springframeword.cloud.netflix.eureka.EurekaClientConfigBean类,这些配置信息都已eureka.client为前缀。

服务实例相关的配置参考ort.springframework.cloud.netlix.eureka.EurekaInstanceConfigBean类,这些配置信息都已enreka.instance为前缀。

推荐阅读更多精彩内容