!!! 以下内容仅为个人理解,仅供参考,感谢批评指正 @Coder_Sean !!!
nacos 配置中心
*版本说明
- nacos-server.version: 2.1.1(当前官网推荐稳定版本)
- nacos-client.version: 2.2.1(sca 2022 RC2的默认版本)
- jdk.version: 17
- spring-boot.version: 3.0.8 (当前不支持3.1.1,与RC2对应版本为3.0.2)
- spring-cloud-alibaba.version: 2022.0.0.0-RC2
- 当前时间 ~ 2023.07
- sca = spring cloud alibaba
* 资料参考
sca 对应版本说明: github alibaba wiki 版本说明
spring官网文档: Spring Cloud Alibaba 2022.0.x版本 参考文档(中文)
spring官网spring cloud alibaba 项目的 Reference Doc.
spring cloud alibaba 的官方站用户指南: spring cloud alibaba 用户指南
spring官网文档: spring cloud config
This quick start walks through using both the server and the client of Spring Cloud Config Server.
spring中文社区文档: spring cloud config
本快速入门指南介绍了Spring Cloud Config Server 的服务器和客户端的使用情况。
nacos官方文档: nacos quick start
1. 客户端配置相关
1.1 无需增加bootstrap.yml(properties)配置
1.2 只使用application.yml配置代码示例
spring:
application:
name: app-name
profiles:
active: dev
cloud:
nacos:
config:
server-addr: xxxxxx:8848
# discovery:
# server-addr: xxxxxx:8848
config:
import:
- optional:nacos:xxxxxx.yml
- nacos:xxxxxx-dev.yml
- nacos:yyyyy.yml?group=DEFAULT_GROUP&refreshEnabled=false
1.3 spring.config.import 配置说明
spring.config.import
本身是springboot的配置项, 可以用来引入其他来源的配置:
- 基本格式:
- optional:nacos:xxxxxx.yml?key1=val1&key2=val2
,本质是个url - optional: 省略不写
optional:
相当于spring.cloud.config.fail-fast=true
,开启客户端快速失败 - 参数: 配置来自nacos的配置时key可以配置
group=DEFAULT_GROUP
,refreshEnabled=true
,参考nacos配置等后续再补充 - server-addr: 可以配置到
spring.cloud.nacos.server-addr
这层,相当于同时配置了config和discover的server-addr,不用写两遍 - 局限性:
- 牺牲了使用bootstrap时 nacos 本身一些读取配置方式,如默认
${spring.application.name}-${profile}.${file-extension:properties}
各种粒度的默认读取,需要显式写入到import
,如nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension}
- namespace/Group配置, 自定义扩展的 Data Id 配置等, 这些配置都需要通过import配置的url后面的参数控制
- 牺牲了使用bootstrap时 nacos 本身一些读取配置方式,如默认
1.4 其他配置
- 监控相关配置: 这部分是nacos监控相关配置,需要spring-boot-starter-actuator依赖,根据需要参阅相关文档进行配置
# 官方示例可能包含如下内容:
management:
endpoint:
health:
show-details: always
endpoints:
web:
exposure:
include: '*'
2 服务端升级2.2.3版本
1 服务端配置
- 开启额外端口
9848
和9849
作为grpc通信相关端口, 否则客户端报如下错误2023-07-07T10:29:33.765+08:00 ERROR 20504 --- [t.remote.worker] c.a.n.s.i.g.i.ManagedChannelImpl : [Channel<45>: (kubersphere.lczhonggu.com:31868)] Uncaught exception in the SynchronizationContext. Panic! com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNKNOWN: Uncaught exception in the SynchronizationContext. Re-thrown. ... ... Caused by: com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING
- 默认不开启鉴权, 视nacos网络环境开启 nacos服务端如何开启鉴权
- 客户端鉴权配置
spring: cloud: nacos: server-addr: xxxxx:8848 username: username password: password
- 强鉴权插件用法: 后面再说吧~
!!! 转载请注明出处,3Q~ !!!