《后端程序员 · Nacos 常见配置 · 第一弹》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗
🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数,欢迎多多交流。👍

CSDN.gif

写在前面的话

博主所在公司,采用Nacos作为注册中心和配置中心,在作为配置中心的过程中,总结了一些常见问题点,提供给各部门研发人员查阅。
此篇文章就介绍一下,Nacos 关于常见配置的,先整理了一部分,其实严格来说,算是SpringBoot的配置。

Tips:天街小雨润如酥,草色遥看近却无。最是一年春好处,绝胜烟柳满皇都。


server

描述:Spring Boot 中的 server 配置是用于配置应用程序的服务器相关设置的属性集合,这些属性通常用于定义应用程序的服务器行为和特性。

Tips:开发一般接触比较多的,只是port端口设定,但其实还有很多作用。

【端口配置】
server.port=8080

【上下文路径】
server.servlet.context-path=/myapp

【Tomcat 配置】

在 Spring Boot 中,默认使用的是 Tomcat 作为内嵌的 Servlet 容器。你可以通过在配置文件中添加以 server.tomcat 开头的配置来配置 Tomcat。

最大连接数:
server.tomcat.max-connections=10000

最大线程数:
server.tomcat.max-threads=200

最小空闲线程数:
server.tomcat.min-spare-threads=10

最大请求队列长度,超过将拒绝连接
server.tomcat.accept-count=100

连接超时时间:
server.tomcat.connection-timeout=20000
单位是毫秒,默认值是 -1,表示无限制,即不会发生连接超时。

HTTP 头部最大大小:
server.tomcat.max-http-header-size=8KB

最大可接收请求内容大小
server.tomcat.max-swallow-size=2MB

URI 编码:
server.tomcat.uri-encoding=UTF-8

==================

补充知识:max-connections 和 max-threads 的区别
两者都是用于调整 Tomcat 连接池的参数,但它们调整的是不同的资源。
max-connections:
max-connections 控制的是 Tomcat 连接池中的最大连接数。它指定了 Tomcat 服务器可以同时处理的最大连接数,即客户端与服务器的连接数上限。
当达到 max-connections 设置的值时,新的连接请求将被拒绝,直到有现有连接关闭释放资源。
增大 max-connections 可以提高服务器的并发能力,但同时也会增加服务器的资源消耗,特别是内存消耗。
max-threads:
max-threads 控制的是 Tomcat 连接池中的最大线程数。它指定了 Tomcat 服务器可以同时处理的最大线程数,即服务器能够同时处理的最大请求数。
当达到 max-threads 设置的值时,新的请求会被放入等待队列中,直到有空闲线程可用来处理请求。
增大 max-threads 可以提高服务器同时处理请求的能力,但同时也会增加 CPU 和内存等资源的消耗。
总的来说,max-connections 控制的是服务器与客户端之间的连接数,而 max-threads 控制的是服务器处理请求的线程数。调整这两个参数可以根据服务器的硬件配置和应用程序的负载情况来优化服务器的性能和并发能力。

【框架默认设定】

server:
  # 配置应用程序关闭的行为,如优雅关闭
  shutdown: graceful
  tomcat:
    mbeanregistry:
      enabled: true

spring.datasource

描述:spring.datasource 是 Spring Boot 中用于配置数据源(DataSource)的属性集合。数据源是应用程序与数据库之间的桥梁,它提供了数据库连接和连接池管理等功能,使得应用程序能够与数据库进行交互。可以配置的信息,包含但不限于连接信息、连接池大小、连接超时等。

【具体项目设定】
可以看到数据源的大部分属性,采用引用的方式,即读取global-config.yml内的推荐配置,而不是直接采用线上default.yml限定值。说明框架是允许开发人员针对具体项目情况对参数进行针对性的调整。

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    username: ${global.database.zoemdb.username}
    password: ${global.database.zoemdb.password}
    driver-class-name: ${global.database.zoemdb.driverClassName}
    url: ${global.database.zoemdb.url}
    druid:
      filter:
        # sql防火墙
        wall:
          enabled: false
        config:
          enabled: true
      connect-properties:
        config.decrypt: true
        # public-key
        config.decrypt.key: ${global.database.zoemdb.decryptKey}
      # 最大连接池数量
      max-active: ${global.database.pool.default.max-active:50}
      # 从连接池获取连接等待超时的时间
      max-wait: ${global.database.pool.default.max-wait:5000}
      # 最小连接池数量
      min-idle: ${global.database.pool.default.min-idel:1}
      # 配置一个连接在池中最大空闲时间,单位是毫秒
      min-evictable-idle-time-millis: ${global.database.pool.default.min-evictable-idle-time-millis:300000}
      # 连接泄露检查,打开removeAbandoned功能 , 连接从连接池借出后,长时间不归还,将触发强制回连接。回收周期随timeBetweenEvictionRunsMillis进行,
      # 如果连接为从连接池借出状态,并且未执行任何sql,并且从借出时间起已超过removeAbandonedTimeout时间,则强制归还连接到连接池中。
      remove-abandoned: ${global.database.pool.default.remove-abandoned:false}
      # 回收超时时间
      remove-abandoned-timeout-millis: ${global.database.pool.default.remove-abandoned-timeout-millis:80000}
      # 打开后,增强timeBetweenEvictionRunsMillis的周期性连接检查,
      # minIdle内的空闲连接,每次检查强制验证连接有效性. 参考:https://github.com/alibaba/druid/wiki/KeepAlive_cn
      keep-alive: ${global.database.pool.default.keep-alive:true}
      # 打开PSCache
      pool-prepared-statements: ${global.database.pool.default.pool-prepared-statements:true}
      # 指定每个连接上PSCache的大小,Oracle等支持游标的数据库,打开此开关,会以数量级提升性能,具体查阅PSCache相关资料
      max-pool-prepared-statement-per-connection-size: ${global.database.pool.default.max-pool-prepared-statement-per-connection-size:20}

spring.redis

描述:spring.redis 是 Spring Boot 中用于配置 Redis 连接的属性集合。Redis 是一种基于内存的数据存储服务,常用于缓存、消息队列等场景。通过配置 spring.redis 属性,你可以配置应用程序与 Redis 的连接信息、连接池配置、Redis Sentinel 配置等。

【具体项目设定】
项目的yml文件,仅指定了port和password,其他信息都是在default.yml限定死了。

【框架默认设定】

spring:
  cache:
    redis:
      # 缓存默认过期时间
      time-to-live: 90d
  redis:
    # 集群模式下该host无需配置
    # host: ${global.redis.host}
    password: ${global.redis.password}
    # 超时时间
    timeout: 2s
    lettuce:
      cluster:
        refresh:
          # 开启Redis集群拓扑自动刷新
          adaptive: true
          # 集群拓扑刷新周期
          period: 30s
    cluster:
      # 最大重定向次数
      max-redirects: 3
      # 集群节点列表
      nodes: ${global.redis.cluster.nodes}

spring.cloud

【spring.cloud.loadbalancer.retry】
在 Spring Cloud 中,spring.cloud.loadbalancer.retry 属性用于配置负载均衡器在发生请求失败时的重试行为。该属性指定了负载均衡器应该在发生连接故障或请求处理超时时进行的重试次数。

spring:
  cloud:
    loadbalancer:
      retry:
        enabled: true
        max-attempts: 3
        backoff:
          enabled: true
          delay: 1000
          max-delay: 3000
          multiplier: 2.0

解释每个配置项的含义:
enabled:是否启用负载均衡器的重试功能。默认为 true。
max-attempts:最大重试次数。默认为 3。
backoff:定义了重试的退避策略。
enabled:是否启用退避策略。默认为 true。
delay:初始延迟时间(毫秒)。默认为 1000。
max-delay:最大延迟时间(毫秒)。默认为 3000。
multiplier:延迟时间的增长倍数。默认为 2.0。
通过配置 spring.cloud.loadbalancer.retry 属性,你可以控制负载均衡器在发生请求失败时的重试行为,以提高系统的可靠性和稳定性。

【重试的优先级】
在 Spring Cloud 中,spring.cloud.loadbalancer.retry 用于配置负载均衡器的重试行为,而 Feign 也有自己的重试机制。当同时使用了 Spring Cloud 负载均衡器和 Feign 客户端时,它们的重试行为的优先级如下:
Feign 客户端的重试:
如果在 Feign 客户端中配置了重试机制(例如通过 Feign 的配置或者 Ribbon 的配置),那么 Feign 客户端的重试机制会优先生效。Feign 客户端的重试配置通常包括最大重试次数、重试间隔等参数。
Spring Cloud 负载均衡器的重试:
如果 Feign 客户端没有配置重试机制,但是 Spring Cloud 负载均衡器配置了重试行为(通过 spring.cloud.loadbalancer.retry 属性),那么负载均衡器的重试机制会生效。负载均衡器的重试配置包括最大重试次数、退避策略等参数。
因此,Feign 客户端的重试机制优先级高于 Spring Cloud 负载均衡器的重试机制。如果 Feign 客户端和 Spring Cloud 负载均衡器都配置了重试行为,那么 Feign 客户端的配置将覆盖负载均衡器的配置。

【feign默认重试】
Feign 默认情况下不会进行重试,即使发生了连接故障或请求处理超时等问题。如果你需要在 Feign 客户端中实现重试功能,你可以通过配置来启用 Feign 的重试机制。
在 Spring Cloud 中,你可以通过配置 feign.client.config.default.retryer 属性来启用 Feign 的重试功能。例如,你可以设置最大重试次数和重试间隔等参数。以下是一个示例配置:

feign:
  client:
    config:
      default:
        retryer: # 设置重试器
          maxAttempts: 3 # 最大重试次数
          backoff: # 退避策略
            delay: 1000 # 初始延迟时间(毫秒)
            maxDelay: 3000 # 最大延迟时间(毫秒)
            multiplier: 2.0 # 延迟时间的增长倍数

在上面的示例中,设置了最大重试次数为 3,初始延迟时间为 1000 毫秒,最大延迟时间为 3000 毫秒,延迟时间的增长倍数为 2.0。这意味着在发生连接故障或请求处理超时时,Feign 客户端会最多重试 3 次,并且每次重试的间隔会逐渐增加。


spring.jackson

spring.jackson 是 Spring Boot 中用于配置 Jackson JSON 序列化和反序列化的属性集合。Jackson 是一个用于处理 JSON 数据的 Java 库,Spring Boot 默认使用 Jackson 来处理 HTTP 请求和响应中的 JSON 数据。通过配置 spring.jackson 属性,你可以控制 JSON 数据的序列化和反序列化行为,包括日期格式化、属性命名策略、是否忽略 null 值等。

Spring Jackson 是 Spring 框架中集成的 JSON 处理库,它基于 Jackson 库实现了 JSON 和 Java 对象之间的转换。Jackson 是一个流行的 Java JSON 处理库,提供了高性能的 JSON 解析和生成功能。
通过配置下列属性,你可以定制 Jackson 在 Spring Boot 中的行为,以满足你的应用程序的需求。

日期格式化配置:
date-format:指定日期的格式。默认情况下,Jackson 使用 ISO-8601 格式。

spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss

时区配置:
time-zone:指定日期的时区。默认情况下,Jackson 使用系统默认时区。

spring:
  jackson:
    time-zone: Asia/Shanghai

时间戳配置:
serialization.write-dates-as-timestamps:指定是否将日期序列化为时间戳。
默认情况下,Jackson 使用 ISO-8601 格式,不过SpringBoot中,该属性的默认值为true。

spring:
  jackson:
    serialization:
      write-dates-as-timestamps: true

忽略未知属性:
serialization.fail-on-empty-beans:指定在序列化空对象时是否抛出异常。
默认情况下,Jackson 不会抛出异常。

spring:
  jackson:
    serialization:
      fail-on-empty-beans: false

自定义配置:
你还可以通过 spring.jackson.* 前缀配置任意的 Jackson ObjectMapper 属性。
例如,设置序列化的特性:

spring:
  jackson:
    property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES
    serialization:
      indent-output: true

logging

描述:在 Spring Boot 应用程序中,日志记录是通过 Spring Boot 提供的默认日志框架实现的,默认情况下使用的是 Logback。

# 设置日志级别为 DEBUG
logging.level.root=DEBUG

# 设置日志输出格式为 JSON
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n

【默认日志级别】
在 Spring Boot 中,默认的日志级别是 INFO。这意味着除非明确指定了其他日志级别,否则日志消息只会记录 INFO 级别及以上的消息。如果你没有显式地配置日志级别,Spring Boot 会将根日志记录器(Root Logger)的级别设置为 INFO。
像开发经常反馈MyBatis的日志无法打印输出,其实是由于其输出语句使用了debug模式,当前类的日志级别是INFO的话,这里是无法打印的。

Tips:线上如果要输出这类型日志,可以在logging.yml配置或SBA调整,但要慎重。

//BatchByJdbcInterceptor
if (log.isDebugEnabled()) {
    log.debug("[SQL] [BatchByJdbc] SQL: {} , Params: {}", sql, JSON.toJSONString(execParam));
}

//MybatisSqlTraceLogInterceptor
if (log.isDebugEnabled() && !isPageCountSql) {
    log.debug("SQL返回行数:{} , SQL语法: \n{} \n{}", returnRows, sqlGrammar.replace("\n", " "), sqlParam);
}
logging:
  level:
    # Nacos 配置中心日志级别
    com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: debug
    # 全局异常处理器日志级别
    com.zoe.core.exception.handler.GlobalExceptionHandler: debug
    # 本地开发环境可以将日志级别设置为debug,线上请勿使用debug级别
    com.zoe.onelink.logging: debug
    # 输出Mybatis相关日志
    com.zoe.onelink.logging.trace.sql.mybatis: debug
    com.zoe.onelink.business.mybatis.interceptor: debug
    
logging:
  level:
    com.zoe.onelink.logging.trace.sql.SqlTraceLogInterceptor: debug
    org.springframework.context.support.PostProcessorRegistrationDelegate: warn
    com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: debug
    com.zoe.core.exception.handler.GlobalExceptionHandler: debug
    com.alibaba.nacos.client.naming: warn
    org.apache.dubbo.registry.nacos.NacosRegistry: warn
    com.alibaba.nacos.common.remote.client: warn
    com.zoe.onelink.logging: debug

【项目级的日志配置】
大部分开发会将logging配置书写在application-dev.yml,但要注意需要添加如下配置才能生效。
spring.profiles.active=dev

Tips:该配置提交不会影响生产环境,具体值在发布的时候会覆盖。


spring.others

【一些重要配置】

spring.main.allow-bean-definition-overriding=true
# Spring 不允许覆盖已经存在的 Bean 定义,如果尝试注册一个与现有 Bean 名称相同的新的 Bean,则会抛出异常。
# 将此属性设置为 true 可以允许覆盖已注册的 Bean 定义,即使已经存在同名的 Bean,也不会抛出异常,这样做有时可能会用于测试或特殊情况下的调试目的。但在实际生产环境中,通常不建议开启此选项,以避免意外覆盖和错误的 Bean 定义。
# 默认情况下 allow-bean-definition-overriding 是关闭的,即默认值为 false。

spring.jackson.serialization.write-dates-as-timestamps=true
# 这个配置告诉 Jackson 序列化器将日期对象转换为时间戳形式。
# 在将 Java 对象序列化为 JSON 字符串时,日期字段会以时间戳的形式表示。
# 请注意,这个配置仅影响序列化操作。在反序列化时,时间戳会被正确地解析为日期对象,无需额外配置。

spring.sleuth、spring.zipkin
# 链路追踪相关配置,不继续展开

spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
spring.servlet.multipart.file-size-threshold=0
spring.servlet.multipart.location=/path/to/temp/dir
spring.servlet.multipart.resolve-lazily=true
# spring.servlet.multipart.max-file-size:
# 设置上传文件的最大大小限制。如果上传的文件大小超过了这个限制,
# 将会抛出 MaxUploadSizeExceededException 异常。默认值为 -1,表示不限制文件大小。
# spring.servlet.multipart.max-file-size:
# 设置每个请求的最大大小限制。如果请求的总大小(包括所有上传文件和其他请求参数)
# 超过了这个限制,将会抛出 MultipartException 异常。默认值为 -1,表示不限制请求大小。
# file-size-threshold:
# 设置文件大小阈值。上传文件大小超过了这个阈值时,文件会被写入磁盘;
# 否则,文件会保存在内存中。默认值为 0,表示所有文件都会保存在磁盘上。
# location:
# 设置临时文件存储位置。上传的文件在处理过程中会被保存为临时文件,默认情况下会保存在系统默认的临时目录中。你可以通过这个属性来指定其他的临时目录。
# resolve-lazily:
# 设置是否懒解析 multipart 请求。默认值为 false,表示在 Servlet 请求处理之前立即解析 multipart 请求。你可以将其设置为 true 来延迟解析 multipart 请求,以提高性能。

【框架关于Spring的默认配置】

spring:
  cache:
    redis:
      # 缓存默认过期时间
      time-to-live: 90d
  redis:
    # 集群模式下该host无需配置
    # host: ${global.redis.host}
    password: ${global.redis.password}
    # 超时时间
    timeout: 2s
    lettuce:
      cluster:
        refresh:
          # 开启Redis集群拓扑自动刷新
          adaptive: true
          # 集群拓扑刷新周期
          period: 30s
    cluster:
      # 最大重定向次数
      max-redirects: 3
      # 集群节点列表
      nodes: ${global.redis.cluster.nodes}
  zipkin:
    sender:
      type: web
    base-url: ${global.zipkin.baseUrl}
    compression:
      enabled: true
    encoder: proto3
  sleuth:
    messaging:
      kafka:
        enabled: false  
    circuitbreaker:
      enabled: false
    sampler:
      probability: 1
    redis:
      enabled: true
  # 配置文件上传大小限制
  servlet:
    multipart:
      max-file-size: 500MB
      max-request-size: 500MB

【具体项目设定参考】

spring:
  zipkin:
    sender:
      type: slf4j
    base-url: ${global.zipkin.baseUrl}
  sleuth:
    sampler:
      probability: 1
  elasticsearch:
    rest:
      username: ${global.es.username}
      password: ${global.es.password}
      uris:
        - ${global.es.host}:${global.es.port}

feign

在 Spring Cloud 应用中,Feign 是一个声明式的、模板化的 HTTP 客户端,它简化了与 RESTful 服务的交互。你可以通过在 application.properties 文件中配置 Feign 来定制其行为。

feign:
  httpclient:
    enabled: true
  client:
    config:
      default:
        connectTimeout: 5000
        readTimeout: 10000
      # 调用时常较长的接口
      emrIdesDocInfoTimeClient:
        connectTimeout: 5000
        readTimeout: 15000

【feign.httpclient.enabled】
在使用 Feign 时,默认情况下它使用的是 HttpURLConnection 来进行 HTTP 请求,但你也可以配置 Feign 来使用 Apache HttpClient 或 OkHttp 来替代默认的 HTTP 客户端。如果你想要使用 Apache HttpClient,你需要在项目中引入相关依赖,并在配置文件中进行相应的配置。
如果你使用的是 Spring Cloud,你可以直接在配置文件中配置 Feign 使用 Apache HttpClient,而无需创建额外的配置类(直接使用上面配置启用)。

【feign.client.config】
在使用 Feign 进行 HTTP 客户端调用时,你可以通过 feign.client.config 属性来配置 Feign 客户端的行为。这个属性允许你为每个 Feign 客户端指定特定的配置,以覆盖全局配置。
feign.client.config..connectTimeout=5000
feign.client.config..readTimeout=5000
请将 替换为你实际使用的 Feign 客户端的名称。这些配置选项可以帮助你定制每个 Feign 客户端的行为,以满足项目的需求。
如果你希望设置默认的 Feign 客户端配置,可以使用 feign.client.config.default 属性。这个属性允许你设置所有 Feign 客户端的默认配置,以覆盖全局配置。

# 连接超时和读取超时
feign.client.config.default.connectTimeout=5000
feign.client.config.default.readTimeout=5000
# 重试次数和间隔 
feign.client.config.default.retryer.maxAttempts=3
feign.client.config.default.retryer.backoffStrategy=org.springframework.cloud.openfeign.Retryer#DEFAULT
# 日志级别
feign.client.config.default.loggerLevel=full
# 自定义配置,你可以创建一个默认的 Feign 配置类,并将其作为默认配置。

【默认连接时间】
feign.client.config.default.connectTimeout 的默认值并不是直接在 Feign 或者 Spring Cloud 中指定的,它实际上是由底层 HTTP 客户端库(如 Apache HttpClient 或 OkHttp)所决定的,默认情况下它们可能有自己的默认连接超时时间。
在使用 Apache HttpClient 时,其默认连接超时时间通常是 0,表示无限等待。而在使用 OkHttp 时,默认连接超时时间可能是 10 秒。这些值是由具体的 HTTP 客户端库的实现决定的,并不是 Feign 或 Spring Cloud 所决定的。
同理,readTimeout 也类似,对于 Apache HttpClient,默认的读取超时时间通常是 -1,表示无限等待。而对于 OkHttp,默认的读取超时时间可能是 10 秒。这些值都是由具体的 HTTP 客户端库的实现决定的,而不是由 Feign 或 Spring Cloud 所决定的。

【Ribbon 和 Feign 超时时间优先级】
在 Spring Cloud 中,Feign 和 Ribbon 都是常用的用于服务间通信的组件,它们都有自己的超时配置。对于服务间的请求,如果同时使用了 Feign 和 Ribbon,两者的超时配置会有不同的优先级:
Feign 的优先级:
如果你使用了 Feign 来发送服务间的请求,并且在 Feign 客户端中设置了超时时间(例如 connectTimeout 和 readTimeout),那么 Feign 的超时配置会优先生效。这意味着 Feign 客户端会按照 Feign 的配置来设置连接超时和读取超时。
Ribbon 的优先级:
如果你没有在 Feign 客户端中设置超时时间,但是使用了 Ribbon 作为负载均衡器,那么 Ribbon 的超时配置会生效。Ribbon 也有自己的超时配置,例如 ribbon.ConnectTimeout 和 ribbon.ReadTimeout,它们会影响到底层的 HTTP 请求。
综上所述,Feign 的超时配置优先级高于 Ribbon。如果你同时使用了 Feign 和 Ribbon,并且在 Feign 客户端中设置了超时时间,那么 Feign 的超时配置会覆盖 Ribbon 的超时配置。

【框架默认配置】

feign:
  client:
    config:
      # 对象存储服务接口请求的超时时间。(业务组件统一设置)
      storage-service:
        readTimeout: 60000 #毫秒时间

ribbon

描述:ribbon的配置不展开介绍,下方是框架关于ribbon的默认配置。

ribbon:
  # 对当前节点的最大重试次数,不包括首次调用,默认值为0。
  MaxAutoRetries: 0
  # 下个节点数最大重试次数,不包括首个节点,默认值为1。不重试该值需要设置为-1 (0的话也不重试,但是会触发一次服务选举)
  MaxAutoRetriesNextServer: -1
  # 是否对所有请求进行失败重试, 设置为 false, 让feign只针对Get请求进行重试.
  OkToRetryOnAllOperations: false
  # true: 无论是接口请求超时、服务端处理失败、建立连接失败等,统一返回true,即可以重试
  okToRetryOnAllErrors: false
  # true: 只要是在跟服务端建立连接时出现错误,无论建立连接超时、建立连接失败等,统一返回true;false: 不重试
  okToRetryOnConnectErrors: false

mybatis

框架默认配置

mybatis-plus:
  configuration:
    # 使用空实现,防止正式环境多份日志
    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
    # 默认10分钟
    default-statement-timeout: 600

关闭一级缓存

#一级缓存修改为statement
mybatis-plus:
  configuration:
    local-cache-scope: statement

springmvc

Tips:部分属性前面已经介绍过,这里把相关的SpringMVC配置补充说明。

静态资源映射:
通过配置 spring.resources.static-locations 属性来指定静态资源的映射路径。默认情况下,Spring Boot 会将 /static、/public、/resources 和 /META-INF/resources 目录下的静态资源映射到根路径下。

Multipart 文件上传配置:
配置 spring.servlet.multipart 属性来设置文件上传的相关参数,如文件大小限制、临时文件存储位置等。

# 配置文件上传大小限制
spring:
  servlet:
    multipart:
      max-file-size: 500MB
      max-request-size: 500MB

字符编码配置:
通过配置 spring.http.encoding 属性来设置字符编码相关的选项,如请求编码、响应编码等。

异常处理配置:
通过配置 server.error 属性来设置异常处理的相关选项,如是否显示异常堆栈信息、错误页面等。


management

Spring Boot Actuator 提供了一系列管理端点(management endpoints),可以用于监控和管理 Spring Boot 应用程序。这些端点可以通过 HTTP 请求访问,提供了关于应用程序运行状态、健康状况、性能指标等信息。

框架默认配置

management:
  health:
    livenessstate:
      enabled: true
    # Spring Boot 2.4 以前版本
    readynessstate:
      enabled: true
    # Spring Boot 2.4 以后版本
    readinessstate:
      enabled: true
  endpoints:
    web:
      exposure:
        # 暴露所有端口
        include: "*"
  endpoint:
    health:
      show-details: always
      probes:
        enabled: true
    shutdown:
      enabled: true
  metrics:
    tags:
      application: ${spring.application.name:unknown}

总结陈词

此篇文章介绍了Nacos 常见配置第一部分,仅供学习参考。
💗 近期在整理职场入职新人必读的N各系列,积极备战!

CSDN_END.gif

相关推荐

  1. 开发常见错误

    2024-07-16 22:26:02       28 阅读
  2. 】rabbitmq常见使用问题

    2024-07-16 22:26:02       32 阅读
  3. 常用的方法

    2024-07-16 22:26:02       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 22:26:02       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 22:26:02       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 22:26:02       62 阅读
  4. Python语言-面向对象

    2024-07-16 22:26:02       72 阅读

热门阅读

  1. [笔试题] C语言部分练习2

    2024-07-16 22:26:02       18 阅读
  2. Mysql关闭严格模式

    2024-07-16 22:26:02       18 阅读
  3. OTP的变化时间

    2024-07-16 22:26:02       21 阅读
  4. xxs攻击的攻击和防范

    2024-07-16 22:26:02       23 阅读
  5. Kotlin 内联

    2024-07-16 22:26:02       23 阅读
  6. 搭建远程控制(远程桌面)服务器

    2024-07-16 22:26:02       23 阅读