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

news2025/5/10 19:44:40

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

文章目录

    • 写在前面的话
    • server
    • spring.datasource
    • spring.redis
    • spring.cloud
    • spring.jackson
    • logging
    • spring.others
    • feign
    • ribbon
    • mybatis
    • springmvc
    • management
    • 总结陈词

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1931332.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows系统安装nacos

1、github下载nacos并解压。 https://github.com/alibaba/nacos 2、启动nacos: 进入bin目录,打开命令行,然后输入命令: startup.cmd -m standalone2.1 如何直接启动 修改bin目录下的startup.cmd启动文件,修改为:MODE“standalone…

Jenkins安装nodeJs环境

首先插件市场安装nodeJS插件,我这里已经安装了,没安装的话在 Available plugins 中搜索安装 安装完成后需要下载需要的nodejs版本 新增完成就可以在构建的时候选择当前版本号了

Kafka Producer发送消息流程之分区器和数据收集器

文章目录 1. Partitioner分区器2. 自定义分区器3. RecordAccumulator数据收集器 1. Partitioner分区器 clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java,中doSend方法,记录了生产者将消息发送的流程,其中有一步…

Mongodb数组字段索引之多键索引

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第92篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关…

跨境电商小白0-1教程,跨境电商新手开店教程

跨境电商新纪元,新手开店秘籍大公开!🚀 还在为跨境电商的浩瀚海洋感到迷茫?别怕,从0到1的开店之旅,我们为你精心铺设了每一步!👣 无论你是完全的新手跨境小白,还是对未来…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【23】【订单服务】

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【23】【订单服务】 订单中心订单信息用户信息订单基础信息商品信息优惠信息支付信息物流信息 订单状态订单流程订单创建与支付逆向流程 订单确认页Feign远程调用丢失请求头问题Feign异步…

Qt第十一章 其他控件

其他控件 文章目录 其他控件按钮组项目小部件输入控件显示控件容器 按钮组 命令链接按钮 对话框按钮盒子 添加基础按钮 改变排列方向 项目小部件 列表控件List Widget 也可以通过代码添加 // 添加ui->listWidget->addItem("你好啊");ui->listWidge…

数据链路层重点协议

目录 一、以太网 二、MTU 1、MTU对IP协议的影响 2、MTU对UDP的影响 3、MTU对TCP协议的影响 三、ARP协议 1、作用:建立主机IP地址和MAC地址的映射关系 2、工作流程 一、以太网 以太网不是一种具体的网络,而是一种技术标准。既包含了数据链路层的…

数据库第9

安装redis,启动客户端、验证 C:\Windows\System32>redis-cli string类型数据的命令操作: 设置键值 set k1 12 读取键值 get k1 ​ 数值类型自增1 incr k1 数值类型自减1 decr k1 查看值的长度 STRLEN k1 list类型数据的命令操作: &#x…

[MySQL][内置函数][日期函数][字符串函数][数学函数]详细讲解

目录 1.日期函数1.基础语法2.示例13.示例2 2.字符串函数1.基础语法2.示例 3.数学函数1.基础语法2.示例 4.其他函数 1.日期函数 1.基础语法 日期时间在MYSQL中是区分开的 日期:年月日时间:时分秒 获得年月日select current_date();----------------| cur…

Open3D 最小二乘法拟合点云平面

目录 一、概述 1.1最小二乘法原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2matplotlib可视化 3.3平面拟合方程 前期试读,后续会将博客加入该专栏,欢迎订阅 Open3D点云算法与点云深度学习…

opencv学习:图像视频的读取截取部分图像数据颜色通道提取合并颜色通道边界填充数值计算图像融合

一、计算机眼中的图像 1.图像操作 构成像素点的数字在0~255之间 RGB叫做图像的颜色通道 h500,w500 2.灰度图像 3. 彩色图像 4.图像的读取 5.视频的读取 cv2.VideoCapture()--在OpenCV中,可以使用VideoCapture来读取视频文件,或是摄像头数…

前缀和算法——部分OJ题详解

(文章的题目解释可能存在一些问题,欢迎各位小伙伴私信或评论指点(双手合十)) 关于前缀和算法 前缀和算法解决的是“快速得出一个连续区间的和”,以前求区间和的时间复杂度是O(N),使用前缀和可…

关于springboot的@DS(““)多数据源的注解无法生效的原因

对于com.baomidou.dynamic.datasource.annotation的DS注解,但凡有一个AOP的修改都会影响到多数据源无法生效的问题,本次我是添加了方法上添加了Transactional,例如下图: 在方法上写了这个注解,会影响到DS("db2&qu…

MODEL4高性价比工业级HMI芯片在喷码机解决方案中的应用

一、概述 随着工业自动化与智能化的发展,喷码机作为标识设备在各行各业中扮演着至关重要的角色。为满足市场对于高效、精准、灵活喷码的需求,我们推出了基于MODEL4工业级HMI芯片的喷码机解决方案。 该方案集成了高性能国产嵌入式64位RISC-V内核芯片组&…

<数据集>铁轨缺陷检测数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:844张 标注数量(xml文件个数):844 标注数量(txt文件个数):844 标注类别数:3 标注类别名称:[Spalling, Squat, Wheel Burn] 序号类别名称图片数框数1Spalling3315522…

集线器、交换机、路由器的区别,冲突域、广播域

冲突域 定义:同一时间内只能有一台设备发送信息的范围。 分层:基于OSI模型的第一层物理层。 广播域 定义:如果某个站点发出一个广播信号,所有能接受到这个信号的设备的范围称为一个广播域。 分层:基于OSI模型的第二…

绿色水利,智慧未来:数字孪生技术在智慧水库建设中的应用,助力实现水资源的可持续利用与环境保护的双赢

本文关键词:智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…

【Python】open()函数的全面解析:如何读取和写入文件

文章目录 1. 基本用法:打开文件2. 不同模式的使用3. 文件读取方法3.1 readline()方法3.2 readlines()方法 4. 上下文管理器5. 错误处理6. 小结 在编程过程中,文件操作是一个非常常见的任务,而Python的open()函数是进行文件操作的基础。通过op…

Sparse4D-v3:稀疏感知的性能优化及端到端拓展

极致的感知性能与极简的感知pipeline一直是牵引我们持续向前的目标。为了实现该目标,打造一个性能优异的端到端感知模型是重中之重,充分发挥深度神经网络数据闭环的作用,才能打破当前感知系统的性能上限,解决更多的corner case&am…