《后端程序员 · Nacos 常见配置 · 第一弹》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗
🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数,欢迎多多交流。👍
文章目录
- 写在前面的话
- server
- spring.datasource
- spring.redis
- spring.cloud
- spring.jackson
- logging
- spring.others
- feign
- ribbon
- mybatis
- springmvc
- management
- 总结陈词
写在前面的话
博主所在公司,采用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=2MBURI 编码:
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: gracefultomcat:mbeanregistry:enabled: true
spring.datasource
描述:spring.datasource 是 Spring Boot 中用于配置数据源(DataSource)的属性集合。数据源是应用程序与数据库之间的桥梁,它提供了数据库连接和连接池管理等功能,使得应用程序能够与数据库进行交互。可以配置的信息,包含但不限于连接信息、连接池大小、连接超时等。
【具体项目设定】
可以看到数据源的大部分属性,采用引用的方式,即读取global-config.yml内的推荐配置,而不是直接采用线上default.yml限定值。说明框架是允许开发人员针对具体项目情况对参数进行针对性的调整。
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourceusername: ${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: falseconfig:enabled: trueconnect-properties:config.decrypt: true# public-keyconfig.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_cnkeep-alive: ${global.database.pool.default.keep-alive:true}# 打开PSCachepool-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: 90dredis:# 集群模式下该host无需配置# host: ${global.redis.host}password: ${global.redis.password}# 超时时间timeout: 2slettuce:cluster:refresh:# 开启Redis集群拓扑自动刷新adaptive: true# 集群拓扑刷新周期period: 30scluster:# 最大重定向次数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: truemax-attempts: 3backoff:enabled: truedelay: 1000max-delay: 3000multiplier: 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_UNDERSCORESserialization: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: debugcom.zoe.onelink.business.mybatis.interceptor: debuglogging:level:com.zoe.onelink.logging.trace.sql.SqlTraceLogInterceptor: debugorg.springframework.context.support.PostProcessorRegistrationDelegate: warncom.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: debugcom.zoe.core.exception.handler.GlobalExceptionHandler: debugcom.alibaba.nacos.client.naming: warnorg.apache.dubbo.registry.nacos.NacosRegistry: warncom.alibaba.nacos.common.remote.client: warncom.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: 90dredis:# 集群模式下该host无需配置# host: ${global.redis.host}password: ${global.redis.password}# 超时时间timeout: 2slettuce:cluster:refresh:# 开启Redis集群拓扑自动刷新adaptive: true# 集群拓扑刷新周期period: 30scluster:# 最大重定向次数max-redirects: 3# 集群节点列表nodes: ${global.redis.cluster.nodes}zipkin:sender:type: webbase-url: ${global.zipkin.baseUrl}compression:enabled: trueencoder: proto3sleuth:messaging:kafka:enabled: false circuitbreaker:enabled: falsesampler:probability: 1redis:enabled: true# 配置文件上传大小限制servlet:multipart:max-file-size: 500MBmax-request-size: 500MB
【具体项目设定参考】
spring:zipkin:sender:type: slf4jbase-url: ${global.zipkin.baseUrl}sleuth:sampler:probability: 1elasticsearch: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: trueclient:config:default:connectTimeout: 5000readTimeout: 10000# 调用时常较长的接口emrIdesDocInfoTimeClient:connectTimeout: 5000readTimeout: 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: 500MBmax-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: trueendpoints:web:exposure:# 暴露所有端口include: "*"endpoint:health:show-details: alwaysprobes:enabled: trueshutdown:enabled: truemetrics:tags:application: ${spring.application.name:unknown}
总结陈词
此篇文章介绍了Nacos
常见配置第一部分,仅供学习参考。
💗 近期在整理职场入职新人必读的N各系列,积极备战!
相关文章:

《后端程序员 · Nacos 常见配置 · 第一弹》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...

深入解析HTTPS与HTTP
在当今数字化时代,网络安全已成为社会各界关注的焦点。随着互联网技术的飞速发展,个人和企业的数据安全问题日益凸显。在此背景下,HTTPS作为一种更加安全的通信协议,逐渐取代了传统的HTTP协议,成为保护网络安全的重要屏…...

vue3+TS从0到1手撸后台管理系统
1.路由配置 1.1路由组件的雏形 src\views\home\index.vue(以home组件为例) 1.2路由配置 1.2.1路由index文件 src\router\index.ts //通过vue-router插件实现模板路由配置 import { createRouter, createWebHashHistory } from vue-router import …...

黑马头条-环境搭建、SpringCloud
一、项目介绍 1. 项目背景介绍 项目概述 类似于今日头条,是一个新闻资讯类项目。 随着智能手机的普及,人们更加习惯于通过手机来看新闻。由于生活节奏的加快,很多人只能利用碎片时间来获取信息,因此,对于移动资讯客…...

基于centos2009搭建openstack-t版-ovs网络-脚本运行
openstackT版脚本 环境变量ip初始化 controlleriaas-pre.shiaas-install-mysql.shiaas-install-keystone.shiaas-install-glance.shiaas-install-placement.shiaas-install-nova-controller.shiaas-install-neutron-controller.shiaas-install-dashboard.sh computeiaas-instal…...

buuctf-web
查看后端源码 得到base64编码,解码得flag...

UBUNTU22 安装QT5.15.2 记录
安装QT预置安装软件包 sudo apt install gcc sudo apt install g sudo apt install clang sudo apt install clang sudo apt install make sudo snap install cmake --classic sudo apt-get install build-essential sudo apt install libxcb-xinerama0 #安装OpenGL核心库 su…...

C++基础知识:C++内存分区模型,全局变量和静态变量以及常量,常量区,字符串常量和其他常量,栈区,堆区,代码区和全局区
1.C内存分区模型 C程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的(在编译器中所书写的代码都会存放在这个空间。) 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分…...

MySQL面试题-重难点
mysql中有哪些锁?举出所有例子,各个锁的作用是什么?区别是什么? 共享锁:也叫读锁,简称S锁,在事务要读取一条记录时,先获取该记录的S锁,别的事务也可以继续获取该记录的S…...

【Linux杂货铺】期末总结篇3:用户账户管理命令 | 组账户管理命令
🌈个人主页:聆风吟_ 🔥系列专栏:Linux杂货铺、Linux实践室 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 第五章5.1 ⛳️Linux 账户5.2 ⛳️用户配置文件和目录(未完待续)5.2.1 …...

基于STM32设计的超声波测距仪(微信小程序)(186)
基于STM32设计的超声波测距仪(微信小程序)(186) 文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】ESP8266工作模式配置1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献1.4 开发工具的选择1.5 系统框架图…...

Web前端-Web开发HTML基础2-list
一. 基础 1. 写一个列表标签,生成一个有三条记录的无序列表; 2. 写一个列表标签,生成一个有四条记录的无序列表; 3. 写一个列表标签,生成一个有五条记录的无序列表; 4. 写一个列表标签,生成一个…...

MAVSDK-Java安卓客户端编译与使用完整示例
效果: 1.启动PX4容器 2.监听QGC连接端口 3.手机与QGC连接到同一局域网(此例QGC为:192.168.6.250 手机为:192.168.6.86) 4.监听手机mavsdk_server连接端口 5.使用Android Studio打开MAVSDK-JAVA下的examples/android-c…...

JavaEE:Spring Web简单小项目实践二(用户登录实现)
学习目的: 1、理解前后端交互过程 2、学习接口传参,数据返回以及页面展示 1、准备工作 创建SpringBoot项目,引入Spring Web依赖,添加前端页面到项目中。 前端代码: login.html <!DOCTYPE html> <html lang&…...

深度学习 | CNN 基本原理
目录 1 什么是 CNN2 输入层3 卷积层3.1 卷积操作3.2 Padding 零填充3.3 处理彩色图像 4 池化层4.1 池化操作4.2 池化的平移不变性 5 全连接层6 输出层 前言 这篇博客不够详细,因为没有介绍卷积操作的具体计算;但是它介绍了 CNN 各层次的功能…...

解读|http和https的区别,谁更好用
在日常我们浏览网页时,有些网站会看到www前面是http,有些是https,这两种有什么区别呢?为什么单单多了“s”,会有人说这个网页会更安全些? HTTP(超文本传输协议)和HTTPS(…...

汽车零部件制造企业MES系统主要功能介绍
随着汽车工业的不断发展,汽车零部件制造企业面临着越来越高的生产效率、质量控制和成本管理要求。MES系统作为一种综合信息系统,能够帮助企业实现从订单接收到产品交付的全流程数字化管理,优化资源配置,提高生产效率,确…...

常见的五种聚类算法总结
常见的聚类算法总结 1. K-Means 聚类 描述 K-Means 是一种迭代优化的聚类算法,它通过最小化样本点到质心的距离平方和来进行聚类。 思想 随机选择 K 个初始质心。分配每个数据点到最近的质心,形成 K 个簇。重新计算每个簇的质心。重复上述步骤&…...

智能车存在网络安全隐患,如何应设计出更好的安全防护技术?
智能车网络安全防护技术的研究与设计 摘要:随着智能车技术的迅速发展,车辆的网络连接性不断增强,然而这也带来了诸多网络安全隐患。本文深入探讨了智能车面临的网络安全威胁,并提出了一系列创新的安全防护技术设计,旨…...

通讯的概念
通讯的概念 文章目录 通讯的概念1.通讯的基本概念2. 串行通讯与并行通讯2. 全双工、半双工及单工通讯3. 同步通讯与异步通讯4. 通讯速率 1.通讯的基本概念 通讯是指在嵌入式系统中实现数据交换的技术手段,它涉及到硬件与硬件、硬件与软件之间的信息传输。基本概念包…...

Centos7 rpm 安装 Mysql 8.0.28
Centos7 rpm 安装 Mysql 8.0.28 一、检查系统是否已经安装了Mysql 如果安装了则卸载 [rootiZbp1byzaznzn9jncxr010Z /]# rpm -qa | grep mysql[rootiZbp1byzaznzn9jncxr010Z /]# rpm -qa | grep mariadb mariadb-libs-5.5.68-1.el7.x86_64如果安装了 mysql ,maria…...

Linux 多进程编程详解
Linux 多进程编程详解 多进程编程是现代操作系统中一种重要的并发编程技术。通过在同一程序中运行多个独立的进程,可以实现并发处理,充分利用多核处理器的优势,提高程序的运行效率。本文将详细介绍Linux多进程的基本概念、创建方法、进程间通…...

C语言之大小端理解
目录 1前言2 大小端理解与区分3 大小端的识别和基本切换操作4 总结 1前言 在汽车CAN通讯报文中往往会接触到Intel类型和motorola类型,实际项目中涉及到多机通讯也会接触到大小端问题 2 大小端理解与区分 大端(Big_Endian) :低字节放在高地址小端(Little_Endian):…...

GIT相关操作,推送本地分支到远程仓库流程记录学习
git流程 切换到源文件夹:cd 源文件夹克隆远程仓库:git clone [ssh]进入项目文件夹:cd .\project\查看本地分支:git branch获取远程仓库更新,使远程同步:git fetch查看所有分支(包括远程分支&am…...

网络协议 — Keepalived 高可用方案
目录 文章目录 目录Keepalived 是实现了 VRRP 协议的软件Keepalived 的软件架构VRRP StackCheckersKeepalived 的配置Global configurationvrrp_scriptVRRP Configurationvrrp synchroization groupvrrp instancevirtual ip addressesvirtual routesLVS Configurationvirtual_s…...

前端报错adding CSS “touch-action: none“ to this element解决方案
目录 如图所示控制台出现报错: 原因: touch-action 介绍: 解决方案: 1.手动设置touch-action: 2.使用条件渲染: 3.CSS样式隔离: 4.浏览器兼容性: 5. 忽略警告 如图所示控制台…...

使用phpMyAdmin操作MYSQL(四)
一. 学会phpMyAdmin? phpMyAdminhttp://water.ve-techsz.cn/phpmyadmin/ 虽然我我们可以用命令行操作数据库,但这样难免没有那么直观,方便。所以接下来我们使用phpMyAdmin来操作MySQL,phpMyAdmin是众多MySQL图形化管理工具中使用…...

webpack配置代理请求
在 Webpack 中,可以通过配置devServer中的proxy选项来设置代理请求,以解决开发环境中的跨域问题或实现特定的请求转发逻辑。以下是一个常见的 Webpack 配置示例,展示了如何设置代理: module.exports {// 其他配置项...devServer…...

热门软件缺陷管理工具2024:专业评测与建议
国内外主流的10款软件缺陷管理工具软件对比:PingCode、Worktile、禅道、Tapd、Teambition、Tower、JIRA、Bugzilla、MantisBT、Trac。 在软件开发过程中,管理缺陷和漏洞常常成为一项挑战,尤其是在项目规模庞大时。选择一个高效的软件缺陷管理…...

冒泡,选择,插入,希尔排序
目录 一. 冒泡排序 1. 算法思想 2. 时间复杂度与空间复杂度 3. 代码实现 二. 选择排序 1. 算法思想 2. 时间复杂度与空间复杂度 3. 代码实现 三.插入排序 1. 直接插入排序 (1). 算法思想 (2). 时间复杂度与空间复杂度 (3). 代码实现 2. 希尔排序 (1). 算法思想 …...