Spring Cloud Eureka (一)

2019-10-30  本文已影响0人  jeff_chang_liu

服务治理 Spring Cloud Eureka

服务治理是微服务架构中最为核心和基础的模块,主要用来实现各个微服务实例的自动化注册与发现。Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件中的一部分,基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能。

1. 搭建服务注册中心(Eureka 服务端)

1.1 服务注册中心搭建

  1. 创建Spring Boot 工程
  2. 添加依赖: spring-cloud-starter-eureka-server
  3. 使用@EnableEurekaServer开启服务注册中心
  4. 配置服务注册中心

1.2 服务注册中心配置

name description value
spring.application.name 服务名 -
server.port 端口 -
eureka.instance.hostname 主机名称 -
eureka.client.register-with-eureka 是否向注册中心注册自己 false
eureka.client.fetch-registry 是否需要检索服务 false
eureka.client.service-url.defaultZone 服务注册中心地址 http://{eureka.instance.hostname}:{server.port}/eureka/

2. 注册服务提供者(Eureka 客户端)

2.1 服务提供者注册

  1. 创建Spring Boot 工程
  2. 添加依赖: spring-cloud-starter-eureka-client
  3. 使用@EnableDiscoveryClient激活 discovery client
  4. 配置服务提供者

2.2 服务提供者配置

name description value
spring.application.name 服务名 -
server.port 端口 -
eureka.client.service-url.defaultZone 服务注册中心地址 -

3. 注册服务消费者(Eureka 客户端)

3.1 服务消费者注册

  1. 创建Spring Boot 工程
  2. 添加依赖: spring-cloud-starter-eureka-client, spring-cloud-starter-ribbon
  3. 使用@EnableDiscoveryClient激活 discovery client,在主类中创建RestTemplate的Spring Bean实例,并通过@LoadBalanced注解开启客户端负载均衡
  4. 配置服务提供者

3.2 服务消费者配置

name description value
spring.application.name 服务名 -
server.port 端口 -
eureka.client.service-url.defaultZone 服务注册中心地址 -

4. 高可用服务注册中心

在分布式环境中,需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对于服务中心也一样。在 Eureka 的服务治理设计中,<font color=#FF0000>所有节点既是服务提供方也是服务消费方</font>,服务注册中心也不例外。<font color=#FF0000>Eureka Server 高可用实际上就是将自己作为服务向其它服务注册中心注册自己,形成一组互相注册的注册中心</font>,实现服务清单互相同步,达到高可用效果。

4.1 高可用服务注册中心配置

name description value
spring.application.name 服务名 -
server.port 端口 -
eureka.instance.hostname 主机名称 -
eureka.client.service-url.defaultZone 服务注册中心地址 其它服务注册中心地址: url2,url3...

4.2 服务提供方配置

name description value
spring.application.name 服务名 -
server.port 端口 -
eureka.client.service-url.defaultZone 服务注册中心地址 其它服务注册中心地址: url1,url2,url3...

附. 常用配置

name description default
spring.application.name 服务名 -
server.port 端口 -
eureka.instance.hostname 主机名称 -
eureka.instance.lease-renewal-interval-in-seconds 服务续约任务的调用间隔时间 30
eureka.instance.lease-expiration-duration-in-seconds 服务失效时间 90
eureka.client.register-with-eureka 是否向注册中心注册自己 true
eureka.client.fetch-registry 是否需要检索服务 true
eureka.client.service-url.defaultZone eureka server 分区地址 -
eureka.server.enable-self-preservation 是否开启保护机制 -
上一篇 下一篇

猜你喜欢

热点阅读