欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring Cloud 第四章 高可用Eureka注册中心以及常用拓展配置

程序员文章站 2024-03-18 09:07:04
...

通过前面几章的学习,相信小伙伴们已经能够正确的搭建Eureka的服务注册中心。由于之前我们的例子是基于单机运行,在现实场景中往往不会只用一台机器,所以想到达到服务中心的高可用的话需要多创建几个服务中心来搭建集群高可用环境,这样才能保证当服务中心A挂掉后、其他服务能通过服务中心B来进行发布服务和消费。
那么怎么进行Eureka服务中心的集群呢?首先我们需要再创建一个Eureka服务中心,创建步骤和前面第一章的方式一样,项目创建好后,需要在两个服务中心项目中分别增加一个对应的配置文件,配置文件的作用主要是配置当前环境的实例。我们以下对之前创建的Eureka服务中心统称为服务中心1,新建的为服务中心2。要保证服务中心高可用的话,我们需要将服务中心1注册到服务中心2,服务中心2也需要注册到服务中心1上面。下面我们依次贴出对应的配置文件
服务中心1:application-master.yml

eureka:
  client:
    service-url:
      defaultZone: http://server2:8762/eureka/

服务中心2:application-slave.yml

eureka:
  client:
    service-url:
      defaultZone: http://server2:8761/eureka/

这两个文件配置好后、还需要在application.yml中指定当前项目的当前环境。具体配置如下

spring:
  #指定当前环境:master
  profiles:
    active: master

上面是服务中心1的配置、服务中心2的配置只需要把profiles.active设置为slave就可以了。
上面的配置已经完成服务中心1和服务中心2的相互注册,这时候如果你是两台机器分别部署的话,那么直接部署就行了;但是如果是一台电脑想模拟集群部署环境的话,需要修改本机host文件,需要增加两条代理配置
127.0.0.1 server1
127.0.0.1 server2
这个配置好后,这时候本机分别启用服务中心1和服务中心2,然后访问http://localhost:8761/,如看到下图的页面,则代表相互注册成功了
Spring Cloud 第四章 高可用Eureka注册中心以及常用拓展配置
服务中心都相互注册好后、这时候再启动一个Eureka Client、看服务是否两个服务中心都注册好了。
上面的步骤已经可以正常搭建服务中心集群,下面我们讲一些服务中心的其他配置,比如服务中心的自我保护机制。
在现实的开发过程中,我们可能会不停的重启,这时候由于Eureka的保护机制,所以服务重启下线的时候服务中心并不能及时移除。
遇到这种情况怎么办呢?答案就是增加部分配置让服务中心移除服务更快一些,具体配置如下

eureka:
  server:
    #关闭Server的保护模式
    enable-self-preservation: false
    #自动清理的间隔,单位毫秒,默认是60000毫秒
    eviction-interval-timer-in-ms: 6000

这个配置一般和Eureka客户端的健康检查配置一起使用,客户端的健康检查配置可以参考上一节的application.yml配置。
服务中心的自己保护机制和客户端的健康检查机制介绍完成后,下面再介绍一下Eureka的事件监听事件,下面罗列几种Eureka的事件。

  1. EurekaInstanceCanceledEvent 服务下线事件
  2. EurekaInstanceRegisteredEvent 服务注册事件
  3. EurekaInstanceRenewedEvent 服务续约事件
  4. EurekaRegistryAvailableEvent 服务中心启动事件
  5. EurekaServerStartedEvent Eureka Server启动事件
    现实开发场景中,我们往往会对监听部分事件从而对特定的事件进行监控,比如服务注册和下线的时候,这时候我们就可以在特定的事件监听代码中写特定的逻辑代码。
    好了,Eureka的学习就算告一段落了,没理解或者对此文档有疑问的欢迎留言讨论哦、因为楼主也是从头开始学习Spring Cloud,如有不足,敬请谅解哦