服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册与发现。
Spring Cloud通过为Eureka增加了Spring Boot风格的自动化配置,我们只需要通过简单引入依赖和注解配置就能让Spring Boot构建的微服务应用轻松地与Eureka服务治理体系进行整合。
Spring Cloud Eureka包含了服务端和客户端。Eureka服务端,也称为服务注册中心,Eureka客户端,主要处理服务的注册与发现。
服务端
- 引入依赖
<dependency>
<groupId>org.springframeword.cloud</groudId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
- 注解激活
@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/
客户端
- 引入依赖
<dependency>
<groupId>org.springframeword.cloud</groudId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
注解激活
@EnableDiscoveryClient
application.properties属性配置
# 自报家门
spring.application.name=xxx
# 指定服务注册中心的地址
eureka.client.serviceUrl.defaultZone=http: //localhost:1111/eureka/
如果我们不想使用主机名来定义注册中心的地址,也可以使用IP地址的形式,但是需要在配置文件中增加eureka.instance.prefer-ip-address=true
,该值默认为false
- 代码中使用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为前缀。