springcloud服務端配置檔案

zhumeilu發表於2017-12-14

###服務註冊類配置

  • 指定註冊中心 eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/ 配置值儲存在HashMap中,預設的key為defaultZone,預設的value為http://localhost:8761/eureka/ 配置高可用註冊中心時,可以配置多個註冊中心,多個url使用逗號隔開 為服務註冊中心新增安全校驗時,http://:@localhost:1111/eurekaa/
  • 其他配置 下面整理了org.springframework.cloud.netflix.eureka.EurekaClient-ConfigBean中定義的常用配置引數以及對應的說明和預設值,這些引數均以eureka.client為字首
引數名 說明 預設值
enable 啟用eureka客戶端 true
eureka.client.registry-fetch-interval-seconds 從eureka服務端獲取註冊資訊的間隔時間,單位為秒 30
eureka.client.initial-instance-info-replication-interval-seconds 更新例項資訊的變化到eureka服務端的間隔時間,單位為秒 30
eureka.client.initial-instance-info-replication-interval-seconds 初始化例項資訊到eureka服務端的時間間隔,單位為秒 40
eureka.client.eureka-service-url-poll-interval-seconds 輪詢eureka服務端地址更改的間隔時間,單位為秒。當我們與Spring Cloud Config配合,動態重新整理Eureka的serviceURL地址時需要關注該引數 300
eureka.client.eureka-server-read-timeout-seconds 讀取eureka資訊超時時間,單位為秒 8
eureka.client.eureka-server-connect-timeout-seconds 連結eureka超時時間,單位為秒 5
eureka.client.eureka-server-total-connections 從eureka客戶端到所有eureka伺服器的連線總數 200
eureka.client.eureka-server-total-connections-per-host 從eureka客戶端到每個eureka主機的連線總數 50
eureka.client.eureka-connection-idle-timeout-seconds eureka伺服器連線的空閒關閉時間,單位為秒 30
eureka.client.heartbeat-executor-thread-pool-size 心跳連線池的初始化執行緒數 2
eureka.client.heartbeat-executor-exponential-back-off-bound 心跳超時重試延遲時間的最大乘數值 10
eureka.client.cache-refresh-executor-thread-pool-size 快取重新整理執行緒池的初始化執行緒數 2
eureka.client.cache-refresh-executor-exponential-back-off-bound= 快取重新整理重試延遲時間的最大乘值 10
eureka.client.use-dns-for-fetching-service-urls 使用dns來獲取eureka服務端的serviceUrl false
eureka.client.register-with-eureka 是否要將自身的例項資訊註冊到eureka服務端 true
eureka.client.prefer-same-zone-eureka 是否偏好使用處於相同zone的eureka服務端 true
eureka.client.filter-only-up-instances= 獲取例項時是否過濾,僅保留up狀態的例項 true
eureka.client.fetch-registry 是否從eureka服務端獲取註冊資訊 true

###服務例項類配置

可以通過org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean的原始碼來獲取詳細內容,這些配置資訊都是以eureka.instance為字首。

  • 例項名配置 區分同一個服務中不同例項的唯一標識。 eureka.instance.instanceId 在springcloud中的預設規則:${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}} 對於例項名的命名規則可以通過eureka.instance.instanceId引數進行配置 如:eureka.instance.instanceId=${spirng.applicaiton.name}:${random.int}

  • 端點配置 在InstanceInfo中的一些URL配置資訊,比如homePageUrl,statusPageUrl,healthCheckUrl分別代表了應用主頁的URL、狀態頁的URL、健康檢查的URL。其中狀態也和健康檢查的URL在spring Cloud Eureka中預設使用spirng-boot-actuator模組提供的/info斷點和/health端點。 可以通過 eureka.instance.statusPageUrlPath=/hello/info eureka.instance.healthCheckUrlPath=/hello/checkhealth 來修改頁面路徑

  • 健康檢測 在沒有引入spring-cloud-actuator模組的情況下,服務例項的健康檢測是通過客戶端心跳的方式來實現的。預設的心跳實現方式可以實現檢查客戶端的程式是否正常運作,但卻無法保證客戶端應用能夠正常提供服務,比如資料庫,快取,訊息等連線無法使用。 這個時候就需要引入spring-cloud-actuator模組,並配置eureka.client.healthcheck.enable=true。

  • 其他配置

引數名 說明 預設值
eureka.instance.prefer-ip-address 是否優先使用IP地址作為主機名的標識 false
eureka.instance.lease-renewal-interval-in-seconds Eureka客戶端想服務端傳送心跳的時間間隔,單位為秒 30
eureka.instance.lease-expiration-duration-in-seconds Eureka服務端在收到最後一次心跳之後的等待時間的時間上限,單位為秒。超過該時間之後服務端會將該服務例項從服務清單中剔除,從而禁止服務呼叫請求被髮送到該例項上 90
eureka.instance.appname 服務名,預設取spring.application.name的配置值,如果沒有則為unknown
eureka.instance.virtual-host-name 主機名,不配置的時候將根據作業系統的主機名來獲取

相關文章