天天看點

20.Spring-Cloud中Eureka自我保護模式和@SpringCloudApplication

20.Spring-Cloud中Eureka自我保護模式和@SpringCloudApplication

      預設情況下,如果Eureka Server在一定時間内沒有接收到某個微服務執行個體的心跳,Eureka Server将會登出執行個體(預設90秒)。但是當網絡分區故障發生時,微服務與Eureka  Server之間無法正常通信,以上行為可能變得非常危險-----因為微服務本省其實是健康的,此時不應該登出這個微服務。

      Eureka通過“自我保護模式”來解決這個問題------當Eureka  Server節點在短時間内丢失過多用戶端時(可能發生網絡分區故障),那麼這個節點就會進入自我保護模式。一旦進入自我保護模式,Eureka  Server就會保護服務系統資料庫中的資訊,不再删除服務系統資料庫中的資料(也就是不會登出任何微服務)。當網絡故障恢複後,該Eureka  Server節點會自動退出自我保護模式。

      綜上,自我保護模式是一種應用網絡異常的安全保護措施。它是甯可同時保留所有微服務(健康的和不健康的),也不盲目登出任何健康的服務。使用自我保護模式,可以讓Eureka叢集更加健壯、穩定。

     在Spring Cloud中可以使用eureka.server.enable-self-preservation=false禁用自我保護模式。

@SpringCloudApplication時一個注解的集合

20.Spring-Cloud中Eureka自我保護模式和@SpringCloudApplication

使用@SpringCloudApplication包括,Springboot注解,注冊服務到注冊中心注解,熔斷器注解。在SpringCloud看來這是每一微服務所必須應有的三個注解,是以才推出了@SpringCloudApplication注解。

使用@SpringCloudApplication需要進入Springboot依賴外,還需要引入下邊。

  <!--将微服務注冊到注冊中心 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<[email protected]注解需要依賴的  熔斷器  -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
           

微信公衆号

20.Spring-Cloud中Eureka自我保護模式和@SpringCloudApplication

繼續閱讀