SpringCloud--04、Eureka集群

版权声明:转载 请注明 原始链接 https://blog.csdn.net/sswqzx/article/details/84779520

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

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

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

服务同步:

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

1、修改EurekaServer配置application.yml

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

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

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

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

eureka:
  client:
    service-url:  # EurekaServer地址
      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加入配置

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

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

5、服务消费者:

获取服务列表:

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

6、失效剔除和自我保护

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

修改Eureka 配置文件application.yml

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

猜你喜欢

转载自blog.csdn.net/sswqzx/article/details/84779520