赞
踩
1 instance:当前Eureka Instance实例信息配置
2 client:Eureka Client客户端特性配置
3 server:Eureka Server注册中心特性配置
4 dashboard:Eureka Server注册中心仪表盘配置
5 Spring Cloud Eureka常用配置清单
instance:当前Eureka Instance实例信息配置; client:Eureka Client客户端特性配置; server:Eureka Server注册中心特性配置; dashboard:Eureka Server注册中心仪表盘配置。
Bean类:org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean进行加载。包装成com.netflix.appinfo.InstanceInfo对象发送的Eureka服务端。
开头:eureka.instance
1.1 元数据
Eureka客户端在想服务注册中心发送注册请求时的自身服务信息描述对象。主要包含服务名称、实例名称、实例IP、实例端口等,以及一些负载均衡策略或者自定义其他特殊用途元素信息。
格式:eureka.instance.metadatamap.< key >=< value >
如:eureka.instance.metadatamap.zone = shanghai
1.2 实例名称配置
用于区分同一服务中不同实例的标识。(即服务名称相同,主机或者端口不同),避免启动时选择端口的麻烦。
如:eureka.instance.instanceId=${spring.application.name}:${random.int}
1.3 端点配置
在InstanceInfo中,可以看到一些URL的配置信息,比如homePageUrl、statusPageUrl、healthCheckUrl。它们分别代表了应用主页的URL、状态页的URL、健康检查的URL。其中,状态页和监控检查的URL在Spring Cloud Eureka中默认使用了spring-boot-actuator模块提供的/info端点和/health端点。为了服务的正常运作,必须确认Eureka客户端的/health端点在发送元数据的时候,是一个能够被注册中心访问的地址,否则服务注册中心不会根据应用的健康状态来更改状态(仅当开启了healthcheck功能时,以该端点信息作为健康检查标准)。而/info端点如果不正确的话,会导致在Eureka面板单击服务实例时,无法访问到服务实例提供的信息接口。
在一些特殊的情况下,比如,为应用设置了context-path,这时,所有spring-boot-actuator模块的监控端点都会增加一个前缀。所以,我们就需要做类似如下的配置,为/info和/health端点也加上类似的前缀:
- management.context-path=/hello
- eureka.instance.statusPageUrlPath=${management.context-path}/info
- eureka.instance.healthCheckUrlPath=${management.context-path}/health
另外,有时候为了安全考虑,也有可能会修改/info和/health端点的原始路径。这个时候,我们也需要做一些特殊配置,例如:
- endpoints.info.pah=/appinfo
- endpoints.health.path=/cheakHealth
- eureka.instance.statusPageUrlPath=/${endpoints.info.pah}
- eureka.instance.healthCheckUrlPath=/${endpoints.health.path}
上面实例使用的是相对路径。
由于Eureka的服务注册中心默认会以HTTP的方式来访问和暴露这些端点,因此当客户端应用以HTTPS的方式来暴露服务和监控端点时,相对路径的配置方式就无法满足要求了。所以,Spring Cloud Eureka还提供了绝对路径的配置参数,例如:
- eureka.instance.homePageUrl=https://${eureka.instance.homename}
- eureka.instance.statusPageUrlPath=https://${eureka.instance.homename}/info
- eureka.instance.healthCheckUrlPath=https://${eureka.instance.homename}/health
1.4 健康检测
默认情况下,Eureka中各个服务实例的健康检查并不是通过spring-boot-actuator模块的/health端点来实现的,而是依靠客户端心跳的方式保持服务实例的存活,在Eureka的服务续约与剔除机制下,客户端的监控状态从注册到注册中心开始都会处于UP状态,除非心跳终止一段时间之后,服务注册中心将其剔除。默认的心跳实现方式可以有效检查客户端进程是否正常运作,但却无法保证客户端应用能够正常提供服务。由于大多数的应用都会有一些其他的外部资源依赖,比如数据库。缓存、消息代理等,如果应用与这些外部资源无法联通的时候,实际上已经不能提供正常的对外服务了,但此时心跳依然正常,所以它还是会被服务消费者调用,而这样的调用实际上并不能获得预期的结果。
在Spring Cloud Eureka中,我们可以通过简单的配置,把Eureka客户端的监控检查交给spring-boot-actuator模块的/health端点,以实现更加全面的健康状态维护。
详细步骤如下:
- 1 在pom.xml中加入spring-boot-starter-actuator模块的依赖。
-
- 2 在application.properties中增加参数配置eureka.client.healthcheck.enabled=true
-
- 3如果客户端/health端点做了特殊处理,需要参照1.3中的端点配置。
1.5 其他配置
其他配置附于后面的表清单中。
Eureka Client客户端特性配置是对作为Eureka客户端的特性配置,包括Eureka注册中心,本身也是一个Eureka Client。
Eureka Client特性配置全部在org.springframework.cloud.netflix.eureka.EurekaClientConfigBean中,实际上它是com.netflix.discovery.EurekaClientConfig的实现类,替代了netxflix的默认实现。
开头:eureka.client
Eureka Server注册中心端的配置是对注册中心的特性配置。Eureka Server的配置全部在org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean里,实际上它是com.netflix.eureka.EurekaServerConfig的实现类,替代了netflix的默认实现。
Eureka Server的配置全部以eureka.server.xxx的格式进行配置。
注册中心仪表盘的配置主要是控制注册中心的可视化展示。以eureka.dashboard.xxx的格式配置。
清单来源:https://www.cnblogs.com/li3807/p/7282492.html(致谢)
配置名称 | 默认值 默认值 | 说明 说明 | |
服务注册中心配置 |
| Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean | |
eureka.server.enableSelfPreservation | false | 关闭注册中心的保护机制,Eureka 会统计15分钟之内心跳失败的比例低于85%将会触发保护机制,不剔除服务提供者,如果关闭服务注册中心将不可用的实例正确剔除 | |
服务实例类配置 |
| Bean类:org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean | |
eureka.instance.preferIpAddress | false | 不使用主机名来定义注册中心的地址,而使用IP地址的形式,如果设置了 eureka.instance.ip-address 属性,则使用该属性配置的IP,否则自动获取除环路IP外的第一个IP地址 | |
eureka.instance.ipAddress |
| IP地址 | |
eureka.instance.hostname |
| 设置当前实例的主机名称 | |
eureka.instance.appname |
| 服务名,默认取 spring.application.name 配置值,如果没有则为 unknown | |
eureka.instance.leaseRenewalIntervalInSeconds | 30 | 定义服务续约任务(心跳)的调用间隔,单位:秒 | |
eureka.instance.leaseExpirationDurationInSeconds | 90 | 定义服务失效的时间,单位:秒 | |
eureka.instance.statusPageUrlPath | /info | 状态页面的URL,相对路径,默认使用 HTTP 访问,如果需要使用 HTTPS则需要使用绝对路径配置 | |
eureka.instance.statusPageUrl |
| 状态页面的URL,绝对路径 | |
eureka.instance.healthCheckUrlPath | /health | 健康检查页面的URL,相对路径,默认使用 HTTP 访问,如果需要使用 HTTPS则需要使用绝对路径配置 | |
eureka.instance.healthCheckUrl |
| 健康检查页面的URL,绝对路径 | |
服务注册类配置 |
| Bean类:org.springframework.cloud.netflix.eureka.EurekaClientConfigBean | |
eureka.client.serviceUrl. |
| 指定服务注册中心地址,类型为 HashMap,并设置有一组默认值,默认的Key为 defaultZone;默认的Value为 http://localhost:8761/eureka ,如果服务注册中心为高可用集群时,多个注册中心地址以逗号分隔。 如果服务注册中心加入了安全验证,这里配置的地址格式为:http://<username>:<password>@localhost:8761/eureka 其中 <username> 为安全校验的用户名;<password> 为该用户的密码 | |
eureka.client.fetchRegistery | true | 检索服务 | |
eureka.client.registeryFetchIntervalSeconds | 30 | 从Eureka服务器端获取注册信息的间隔时间,单位:秒 | |
eureka.client.registerWithEureka | true | 启动服务注册 | |
eureka.client.eurekaServerConnectTimeoutSeconds | 5 | 连接 Eureka Server 的超时时间,单位:秒 | |
eureka.client.eurekaServerReadTimeoutSeconds | 8 | 读取 Eureka Server 信息的超时时间,单位:秒 | |
eureka.client.filterOnlyUpInstances | true | 获取实例时是否过滤,只保留UP状态的实例 | |
eureka.client.eurekaConnectionIdleTimeoutSeconds | 30 | Eureka 服务端连接空闲关闭时间,单位:秒 | |
eureka.client.eurekaServerTotalConnections | 200 | 从Eureka 客户端到所有Eureka服务端的连接总数 | |
eureka.client.eurekaServerTotalConnectionsPerHost | 50 | 从Eureka客户端到每个Eureka服务主机的连接总数 | |
注册中心仪表盘配置 |
| Bean类:org.springframework.cloud.netflix.eureka.server.EurekaDashboardProperties | |
eureka.dashboard.path |
| 仪表盘访问路径 | |
eureka.dashboard.enabled | true | 是否启用仪表盘 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。