Eureka服務配置與進階


1. Eureka服務配置與進階

1.1. 主要配置

1.1.1. 服務端(eureka.server.*)

  1. enableSelfPreservation默認true,啟用注冊中心的自保護機制,Eureka如果統計到15分鍾之內損失>15%的微服務心跳,則會觸發自保護機制,不再提出服務提供者
  2. waitTimeInMsWhenSyncEmpty默認1000605,在Eureka服務器獲取不到集群里對等服務器上的實例時,需要等待的時間,單位為毫秒,單機開發模式建議設置為0

1.1.2. 客戶信息配置(eureka.client.*)

  1. serviceUrl指定服務注冊中心,類型為HashMap,並設置有一組默認值,默認key為defaultZone;默認的Value為http://localhost:8761/eureka,如果服務注冊中心為高可用集群時,多個注冊中心地址以逗號分隔。如果服務注冊中心加入了安全驗證,這里配置的地址格式為http://<username>:<password>@localhost:8761/eureka
  2. fetchRegistry是否從Eureka服務端獲取注冊信息,默認true
  3. registryFetchIntervalSeconds從Eureka服務端獲取注冊信息的間隔時間,單位為秒,默認30
  4. registerWithEureka是否要將自身的實例信息注冊到Eureka服務端,默認true

1.1.3. 實例級別配置(eureka.instance.*)

  1. leaseRenewalIntervalInSeconds,Eureka客戶端向服務端發送心跳的時間間隔,單位為秒,默認30
  2. leaseExpirationDurationInSeconds,Eureka服務端在收到最后一次心跳之后等待的過期時間上線,單位為秒。超過該時間沒有收到心跳,則服務端會將該服務實例從服務清單中剔除,從而禁止服務調用請求被發送到該實例上
  3. appname服務名,默認取spring.application.name的配置值,如果沒有則為unknown
  4. hostname主機名,不配置的時候將根據操作系統的主機名來獲取
  5. instance-id注冊到eureka的實例id,推薦${spring.cloud.client.ip-address}😒{spring.application.name}😒{server.port}

1.1.4. Ribbon主要配置項({svc}.ribbon.*)

  1. ConnectionTimeout連接超時時間,默認值1000ms
  2. ReadTimeout讀取超時時間,默認1000ms
  3. ServerListRefreshInterval刷新服務列表源的間隔時間,默認30s
  4. NFLoadBalancerClassName定制ILoadBalancer實現,默認com.netflix.loadbalancer.ZoneAwareLoadBalancer
  5. NFLoadBalancerRuleClassName定制IRule實現,默認com.netflix.loadbalancer.ZoneAvoidanceRule
  6. NFLoadBalancerPingClassName定制IPing,默認com.netflix.loadbalancer.DummyPing
  7. NIWSServerListClassName定制ServerList,默認com.netflix.loadbalancer.ConfigurationBasedServerList
  8. ServerListUpdateClassName定制serverListUpdater,默認com.netflix.loadbalancer.PollingServerListUpdater
  9. NIWSServerListFilterClassName定制ServerListFilter,默認com.netflix.loadbalancer.ZonePreferenceServerListFilter

1.2. Eureka自保護模式

  1. 避免網絡分區或抖動導致的,服務端與Eureka通信不成功,但實際服務端是存活的

1.3. 心跳檢查和應用檢測

  1. 實例會定期默認30s,向Eureka Server發送心跳式健康檢查,把自己的狀態服務實例信息上報上去
  2. 定制注冊EurekaClient#registerHeathCheck
  3. Spring Cloud配置eureka.client.healthcheck.enable=true,EurekaHealthCheckHandler中回去執行檢查,DiskSpaceHealthIndicator,RefreshScopeHealthIndicator,HystrixHealthIndicator
  4. 獲取應用信息GET /eureka/apps/ORDER-SERVICE,獲取XML信息結果
  5. 實例信息更新延遲的地方有哪些
    1. 注冊延遲(30s)
    2. Eureka服務響應延遲(30s)
    3. Eureka客戶端更新延遲(30s)
    4. Ribbon服務列表更新延遲(30s)
    5. 所以最大可能又2分鍾延遲

1.4. 藍綠發布

  1. 發布工具拉出

1.5. 服務注冊中心對比


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM