SpringCloud--04、Eureka集群

悠悠 2022-04-12 13:56 306阅读 0赞

Eureka架构中的三个核心角色:

  1. - 服务注册中心
  2. Eureka的服务端应用,提供服务注册和发现功能,就是刚刚我们建立的eureka-demo
  3. - 服务提供者
  4. 提供服务的应用,可以是SpringBoot应用,也可以是其它任意技术实现,
  5. 只要对外提供的是Rest风格服务即可。本例中就是我们实现的user-service
  6. - 服务消费者
  7. 消费应用从注册中心获取服务列表,从而得知每个服务方的信息,知道去哪里调用服务方。
  8. 本例中就是我们实现的consumer-demo

我们假设要搭建三台EurekaServer的集群,端口分别为:10086 10087 10088

服务同步:

  1. 多个Eureka Server之间也会互相注册为服务,当服务提供者注册到Eureka Server集群中的某个节点时,
  2. 该节点会把服务的信息同步给集群中的每个节点,从而实现数据同步

1、修改EurekaServer配置application.yml

  1. server:
  2. port: 10087 # 端口
  3. spring:
  4. application:
  5. name: eureka-server # 应用名称,会在Eureka中显示
  6. eureka:
  7. client:
  8. register-with-eureka: true # 是否注册自己的信息到EurekaServer,默认是true
  9. fetch-registry: true # 是否拉取其它服务的信息,默认是true
  10. service-url: # EurekaServer的地址,现在是自己的地址,如果是集群,需要加上其它Server的地址。
  11. defaultZone: http://127.0.0.1:10086/eureka,http://127.0.0.1:10088/eureka

2、相同的方法分别添加另个二台Eureka服务器 127.0.0.1:10088/10086

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Nzd3F6eA_size_16_color_FFFFFF_t_70

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Nzd3F6eA_size_16_color_FFFFFF_t_70 1

分别启动三台Eureka服务、这样集群就搭好了。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Nzd3F6eA_size_16_color_FFFFFF_t_70 2

3、客户端注册服务到集群

  1. eureka:
  2. client:
  3. service-url: # EurekaServer地址
  4. defaultZone: http://127.0.0.1:10086/eureka,http://127.0.0.1:10087/eureka,http://127.0.0.1:10088/eureka

4、服务提供者续约、user-service加入配置

服务注册、服务续约(服务提供者会维持一个心跳)

  1. eureka:
  2. instance:
  3. lease-expiration-duration-in-seconds: 90 #服务续约(renew)的间隔,默认为30秒
  4. lease-renewal-interval-in-seconds: 30 #服务失效时间,默认值90秒

5、服务消费者:

获取服务列表:

  1. 当服务消费者启动时,会检测eureka.client.fetch-registry=true参数的值,如果为true
  2. 则会从Eureka Server服务的列表只读备份,然后缓存在本地。并且每隔30秒会重新获取并更新数据。
  3. 我们可以通过下面的参数来修改:
  4. eureka:
  5. client:
  6. registry-fetch-interval-seconds: 5 # 获取服务列表的周期:5s

6、失效剔除和自我保护

  1. Eureka Server需要将这样的服务剔除出服务列表。它会开启一个定时任务,每隔60秒对所有失效的服务(超过90秒未响应)进行剔除。

修改Eureka 配置文件application.yml

  1. eureka:
  2. server:
  3. enable-self-preservation: false # 关闭自我保护模式(缺省为打开)
  4. eviction-interval-timer-in-ms: 1000 # 扫描失效服务的间隔时间(缺省为60*1000ms)

发表评论

表情:
评论列表 (有 0 条评论,306人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SpringCloud-eurekademo

    eureka的工作方式、原理: •会保存各个注册进来的微服务的基本信息:微服务名、ip、端口等 •eureka还会监控各个微服务的运行情况,做一个基本的监控,每隔30