###服務註冊類配置
- 指定註冊中心 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 | 主機名,不配置的時候將根據作業系統的主機名來獲取 |