服务发现
- 默认情况下,
DiscoveryClient将本地 Spring Boot 服务器自动注册到远程发现服务器的实现。可以通过设置来禁用此autoRegister=false行为@EnableDiscoveryClient。
@EnableDiscoveryClient不再需要。您可以DiscoveryClient在类路径上放置一个实现,以使 Spring Boot 应用程序向服务发现服务器注册。
服务注册
- 默认情况下,
ServiceRegistry实现会自动注册正在运行的服务。要禁用该行为,您可以设置:@EnableDiscoveryClient(autoRegister=false)永久禁用自动注册。spring.cloud.service-registry.auto-registration.enabled=false通过配置禁用该行为。 - 服务自动注册时将触发两个事件。第一个事件称为
InstancePreRegisteredEvent,在服务注册之前被触发。第二个事件称为InstanceRegisteredEvent,在服务注册后触发。您可以注册一个ApplicationListener(s) 来收听这些事件并做出反应。
忽略网络接口
配置忽略了docker0接口和所有以 开头的接口veth
spring:
cloud:
inetutils:
ignoredInterfaces:
- docker0
- veth.*
通过使用正则表达式列表强制仅使用指定的网络地址
spring:
cloud:
inetutils:
preferredNetworks:
- 192.168
- 10.0
强制仅使用站点本地地址
spring:
cloud:
inetutils:
useOnlySiteLocalInterfaces: true
HTTP客户端工厂
- Spring Cloud Commons 提供了用于创建 Apache HTTP 客户端 (
ApacheHttpClientFactory) 和 OK HTTP 客户端 (OkHttpClientFactory) 的 bean。仅当OkHttpClientFactoryOK HTTP jar 在类路径上时才会创建 bean。此外,Spring Cloud Commons 提供了用于创建两个客户端使用的连接管理器的 bean:ApacheHttpClientConnectionManagerFactory用于 Apache HTTP 客户端和OkHttpClientConnectionPoolFactoryOK HTTP 客户端。如果您想自定义如何在下游项目中创建 HTTP 客户端,您可以提供自己的这些 bean 实现。另外,如果你提供一个HttpClientBuilderor类型的 beanOkHttpClient.Builder,默认工厂使用这些构建器作为构建器返回到下游项目的基础。您还可以通过设置spring.cloud.httpclientfactories.apache.enabled或spring.cloud.httpclientfactories.ok.enabled来禁用这些 bean 的创建false。 添加gradle配置,自动启用OK HTTP 客户端
implementation 'com.squareup.okhttp3:okhttp'
Spring Cloud LoadBalancer缓存
-
如果您
com.github.ben-manes.caffeine:caffeine在类路径中有,将使用基于 Caffeine 的实现。有关如何配置它的信息,请参阅LoadBalancerCacheConfiguration部分。 -
如果您使用的是咖啡因,您还可以通过在属性中传递您自己的咖啡因规范来覆盖 LoadBalancer 的默认咖啡因缓存设置。
spring.cloud.loadbalancer.cache.caffeine.spec -
警告:传递您自己的 Caffeine 规范将覆盖任何其他 LoadBalancerCache 设置,包括常规 LoadBalancer 缓存配置字段,例如
ttl和capacity。 -
默认设置包括
ttl设置为35s,默认设置initialCapacity为256.
要使用 Caffeine 而不是默认缓存,请将
com.github.ben-manes.caffeine:caffeine依赖项添加到类路径。CaffeineCacheManager需要添加org.springframework:spring-context-support依赖。
常见应用程序属性
| Name | Default | Description |
|---|---|---|
| spring.cloud.compatibility-verifier.compatible-boot-versions | 2.6.x | Default accepted versions for the Spring Boot dependency. You can set {@code x} for the patch version if you don’t want to specify a concrete value. Example: {@code 3.4.x} |
| spring.cloud.compatibility-verifier.enabled | false | Enables creation of Spring Cloud compatibility verification. |
| spring.cloud.config.allow-override | true | Flag to indicate that {@link #isOverrideSystemProperties() systemPropertiesOverride} can be used. Set to false to prevent users from changing the default accidentally. Default true. |
| spring.cloud.config.override-none | false | Flag to indicate that when {@link #setAllowOverride(boolean) allowOverride} is true, external properties should take lowest priority and should not override any existing property sources (including local config files). Default false. |
| spring.cloud.config.override-system-properties | true | Flag to indicate that the external properties should override system properties. Default true. |
| spring.cloud.decrypt-environment-post-processor.enabled | true | Enable the DecryptEnvironmentPostProcessor. |
| spring.cloud.discovery.client.composite-indicator.enabled | true | Enables discovery client composite health indicator. |
| spring.cloud.discovery.client.health-indicator.enabled | true | |
| spring.cloud.discovery.client.health-indicator.include-description | false | |
| spring.cloud.discovery.client.health-indicator.use-services-query | true | Whether or not the indicator should use {@link DiscoveryClient#getServices} to check its health. When set to {@code false} the indicator instead uses the lighter {@link DiscoveryClient#probe()}. This can be helpful in large deployments where the number of services returned makes the operation unnecessarily heavy. |
| spring.cloud.discovery.client.simple.instances | ||
| spring.cloud.discovery.client.simple.order | ||
| spring.cloud.discovery.enabled | true | Enables discovery client health indicators. |
| spring.cloud.features.enabled | true | Enables the features endpoint. |
| spring.cloud.httpclientfactories.apache.enabled | true | Enables creation of Apache Http Client factory beans. |
| spring.cloud.httpclientfactories.ok.enabled | true | Enables creation of OK Http Client factory beans. |
| spring.cloud.hypermedia.refresh.fixed-delay | 5000 | |
| spring.cloud.hypermedia.refresh.initial-delay | 10000 | |
| spring.cloud.inetutils.default-hostname | localhost | The default hostname. Used in case of errors. |
| spring.cloud.inetutils.default-ip-address | 127.0.0.1 | The default IP address. Used in case of errors. |
| spring.cloud.inetutils.ignored-interfaces | List of Java regular expressions for network interfaces that will be ignored. | |
| spring.cloud.inetutils.preferred-networks | List of Java regular expressions for network addresses that will be preferred. | |
| spring.cloud.inetutils.timeout-seconds | 1 | Timeout, in seconds, for calculating hostname. |
| spring.cloud.inetutils.use-only-site-local-interfaces | false | Whether to use only interfaces with site local addresses. See {@link InetAddress#isSiteLocalAddress()} for more details. |
| spring.cloud.loadbalancer.cache.caffeine.spec | The spec to use to create caches. See CaffeineSpec for more details on the spec format. | |
| spring.cloud.loadbalancer.cache.capacity | 256 | Initial cache capacity expressed as int. |
| spring.cloud.loadbalancer.cache.enabled | true | Enables Spring Cloud LoadBalancer caching mechanism. |
| spring.cloud.loadbalancer.cache.ttl | 35s | Time To Live - time counted from writing of the record, after which cache entries are expired, expressed as a {@link Duration}. The property {@link String} has to be in keeping with the appropriate syntax as specified in Spring Boot StringToDurationConverter. @see StringToDurationConverter.java |
| spring.cloud.loadbalancer.clients | ||
| spring.cloud.loadbalancer.configurations | default | Enables a predefined LoadBalancer configuration. |
| spring.cloud.loadbalancer.enabled | true | Enables Spring Cloud LoadBalancer. |
| spring.cloud.loadbalancer.health-check | Properties for HealthCheckServiceInstanceListSupplier. | |
| spring.cloud.loadbalancer.hint | Allows setting the value of hint that is passed on to the LoadBalancer request and can subsequently be used in {@link ReactiveLoadBalancer} implementations. | |
| spring.cloud.loadbalancer.hint-header-name | X-SC-LB-Hint | Allows setting the name of the header used for passing the hint for hint-based service instance filtering. |
| spring.cloud.loadbalancer.retry | Properties for Spring-Retry and Reactor Retry support in Spring Cloud LoadBalancer. | |
| spring.cloud.loadbalancer.retry.avoid-previous-instance | true | Enables wrapping ServiceInstanceListSupplier beans with RetryAwareServiceInstanceListSupplier if Spring-Retry is in the classpath. |
| spring.cloud.loadbalancer.retry.enabled | Enables LoadBalancer retries. | |
| spring.cloud.loadbalancer.service-discovery.timeout | String representation of Duration of the timeout for calls to service discovery. | |
| spring.cloud.loadbalancer.sticky-session | Properties for LoadBalancer sticky-session. | |
| spring.cloud.loadbalancer.x-forwarded | Enabling X-Forwarded Host and Proto Headers. | |
| spring.cloud.loadbalancer.zone | Spring Cloud LoadBalancer zone. | |
| spring.cloud.refresh.additional-property-sources-to-retain | Additional property sources to retain during a refresh. Typically only system property sources are retained. This property allows property sources, such as property sources created by EnvironmentPostProcessors to be retained as well. | |
| spring.cloud.refresh.enabled | true | Enables autoconfiguration for the refresh scope and associated features. |
| spring.cloud.refresh.extra-refreshable | true | Additional class names for beans to post process into refresh scope. |
| spring.cloud.refresh.never-refreshable | true | Comma separated list of class names for beans to never be refreshed or rebound. |
| spring.cloud.service-registry.auto-registration.enabled | true | Whether service auto-registration is enabled. Defaults to true. |
| spring.cloud.service-registry.auto-registration.fail-fast | false | Whether startup fails if there is no AutoServiceRegistration. Defaults to false. |
| spring.cloud.service-registry.auto-registration.register-management | true | Whether to register the management as a service. Defaults to true. |
| spring.cloud.util.enabled | true | Enables creation of Spring Cloud utility beans. |