spring-cloud-alibaba-examples/nacos-example/readme-zh.md
本项目演示如何使用 Spring Cloud Alibaba Nacos 相关 Starter 完成 Spring Cloud 应用的服务发现和配置管理。
Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
在 Nacos 3.1.0 中,加入了用户鉴权相关的功能,在首次启动 Nacos Server 时,需要正确配置,避免出现启动失败的问题。
本示例中使用 Nacos Server 版本为 3.1.0!
Nacos 支持直接下载和源码构建两种方式。推荐在 Spring Cloud Alibaba 2023.x 中使用 Nacos Server 3.1.0 版本。
打开 \nacos-server-3.1.0\conf\application.properties 配置文件,修改以下配置项:
此处以 MySQL 数据库为例,使用 nacos-server-3.1.0\conf\mysql-schema.sql 初始化数据库表文件。同时修改以下配置
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.user.0=root
db.password.0=root
### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
注意:不开启在 3.1.0 中会出现登陆失败异常!
### The auth system to use, currently only 'nacos' and 'ldap' is supported:
nacos.core.auth.system.type=nacos
### If turn on auth system:
nacos.core.auth.enabled=true
nacos.core.auth.server.identity.key=test
nacos.core.auth.server.identity.value=test
### The default token (Base64 String):
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
在使用 Nacos 服务发现和配置功能时,一定要配置 username 和 password 属性,否则会出现用户未找到异常!
在 nacos server 3.1.0 中使用 Open api 接口时需要鉴权:更多细节请参考:Nacos api 鉴权
获取 accessToken:使用用户名和密码登陆 nacos server:
curl -X POST '127.0.0.1:8848/nacos/v1/auth/login' -d 'username=nacos&password=nacos'
若用户名和密码正确,返回信息如下:
{"accessToken":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYwNTYyOTE2Nn0.2TogGhhr11_vLEjqKko1HJHUJEmsPuCxkur-CfNojDo","tokenTtl":18000,"globalAdmin":true}
使用 accessToken 请求 nacos api 接口:
curl -X GET '127.0.0.1:8848/nacos/v1/cs/configs?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYwNTYyMzkyM30.O-s2yWfDSUZ7Svd3Vs7jy9tsfDNHs1SuebJB4KlNY8Q&dataId=nacos.example.1&group=nacos_group'
启动 Nacos Server,进入下载到本地并解压完成后的文件夹(使用源码构建的方式则进入编译打包好的文件夹),再进去其相对文件夹 nacos/bin,并对照操作系统实际情况执行如下命令。详情参考此文档。
Linux/Unix/Mac 操作系统,执行命令
sh startup.sh -m standalone
Windows 操作系统,执行命令
cmd startup.cmd
访问 Nacos Server Console
浏览器输入地址 http://127.0.0.1:8848/nacos ,首次登陆需要绑定 nacos 用户,因为新版本增加了鉴权,需要应用注册和配置绑定时配置用户名和密码。
在2023.0.1.3版本中,为了支持在SpringBoot中接入Nacos配置中心以及基于原有的nacos config模块之上支持@NacosConfig,@NacosConfigListener注解,将spring-cloud-starter-alibaba-nacos-config模块进行了拆分
在模块拆分的过程中,发现随着代码不断的变更,配置的加载逻辑存在多个分支,包括最初版本中通过拼接spring.application.name以及fileExtension等参数,通过share-configs,extension-configs以及spring.config.import。多个属性源加载时机不一致且代码逻辑分叉,不利于配置模块的扩展。
出于代码的可维护性考虑,对配置加载逻辑进行了删减,仅保留了spring在Spring Boot 2.4.0 (2020年11月12日)推出的spring.config.import标准配置导入方式,在该版本中Spring同时建议废弃bootstrap模式启动,统一迁移到application.properties。
对于之前通过application.name拼接模式以及share-configs,extension-configs等方式导入的配置,需要统一修改为spring.config.import模式进行配置导入。
接入NacosConfig的标准用法如下
导入单个配置
spring:
config:
import:nacos:application.propertise?refreshEnabled=true&group=DEFAULT_GROUP
cloud:
nacos:
config:
serverAddr: {nacos server addr}
namespace: {nacos namespace id}
导入多个配置
spring:
config:
import:
- nacos:application.propertise?group=refreshEnabled=true&group=DEFAULT_GROUP
- nacos:{other config data id}?group={other config group}&refreshEnabled=true
cloud:
nacos:
config:
serverAddr: {nacos server addr}
namespace: {nacos namespace id}
在启动应用示例进行项目功能演示之前,先了解一下 Spring Cloud 应用如何接入 Nacos Config 作为服务配置中心。
注意 本章节只是为了便于理解接入方式,本示例代码中已经完成接入工作,无需再进行修改。
首先,修改 pom.xml 文件,引入 spring-cloud-starter-alibaba-nacos-config ;
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
在应用的 /src/main/resources/application.yaml 配置文件中配置 Nacos 地址并引入服务配置;
spring:
cloud:
nacos:
serverAddr: 127.0.0.1:8848
# 以下配置项必须填写
username: 'nacos'
password: 'nacos'
config:
import:
- nacos:nacos-config-example.properties?refreshEnabled=true&group=DEFAULT_GROUP
完成上述两步后,应用会从 Nacos Server 中获取相应的配置,并添加在 Spring Environment 的 PropertySources 中。使用 Nacos 配置中心保存 Nacos 的部分配置时,有以下四种方式:
在命令行执行如下命令,向 Nacos Server 中添加一条配置。可直接通过 Nacos 控制台注入!
注意:需要替换 accessToken。
$ curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?accessToken=XXXXXXXXXXXXXXXXXXXXXXXX&dataId=nacos-config-example.properties&group=DEFAULT_GROUP&content=spring.cloud.nacos.config.serverAddr=127.0.0.1:8848%0Aspring.cloud.nacos.config.prefix=PREFIX%0Aspring.cloud.nacos.config.group=GROUP%0Aspring.cloud.nacos.config.namespace=NAMESPACE"
添加的配置详情如下:
# dataId 为 nacos-config-example.properties
# group 为 DEFAULT_GROUP
# 内容如下:
spring.cloud.nacos.config.serveraddr=127.0.0.1:8848
spring.cloud.nacos.config.prefix=PREFIX
spring.cloud.nacos.config.group=GROUP
spring.cloud.nacos.config.namespace=NAMESPACE
增加配置,在应用的 /src/main/resources/application.yml 中添加基本配置信息;
server:
port: 18084
management:
endpoints:
web:
exposure:
include: '*'
启动应用,支持 IDE 直接启动和编译打包后启动。
NacosConfigApplication,执行 main 方法启动应用。mvn clean package 将工程编译打包,进入 target 文件夹执行 java -jar nacos-config-example.jar 启动应用。在浏览器地址栏输入 http://127.0.0.1:18084/nacos/bean,并点击调转,可以看到成功从 Nacos Server 中获取了数据。
执行如下命令,修改 Nacos Server 端的配置数据
$ curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?accessToken=XXXXXXXXXXXXXXXXXXXXXXXXXXX&dataId=nacos-config-example.properties&group=DEFAULT_GROUP&content=spring.cloud.nacos.config.serveraddr=127.0.0.1:8848%0Aspring.cloud.nacos.config.prefix=PREFIX%0Aspring.cloud.nacos.config.group=DEFAULT_GROUP%0Aspring.cloud.nacos.config.namespace=NAMESPACE"
在浏览器地址栏输入 http://127.0.0.1:18084/nacos/bean,并点击调转,可以看到应用从 Nacos Server 中获取了最新的数据,group 变成了 DEFAULT_GROUP。
Nacos Config 主要通过 dataId 和 group 来唯一确定一条配置,假定您已经了解此背景。如果不了解,请参考 Nacos 文档。
Nacos Client 从 Nacos Server 端获取数据时,调用的是此接口 ConfigService.getConfig(String dataId, String group, long timeoutMs)。
在 Nacos Config Starter 中,dataId 的拼接格式如下
${prefix} - ${spring.profiles.active} . ${file-extension}
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档
注意,当 active profile 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
file-extension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension来配置。
目前只支持 properties 类型。
group 默认为 DEFAULT_GROUP,可以通过 spring.cloud.nacos.config.group 配置。Spring Cloud Alibaba Nacos Config Starter 实现了 org.springframework.boot.context.config.ConfigDataLoader 接口,并将优先级设置成了最高。
在 Spring Cloud 应用启动阶段,会主动从 Nacos Server 端获取对应的数据,并将获取到的数据转换成 PropertySource 且注入到 Environment 的 PropertySources 属性中,所以使用 @Value 注解也能直接获取 Nacos Server 端配置的内容。
Nacos Config Starter 默认为所有获取数据成功的 Nacos 的配置项添加了监听功能,在监听到服务端配置发生变化时会实时触发 org.springframework.cloud.context.refresh.ContextRefresher 的 refresh 方法 。
如果需要对 Bean 进行动态刷新,请参照 Spring 和 Spring Cloud 规范。推荐给类添加 @RefreshScope 或 @ConfigurationProperties 注解,
更多详情请参考 ContextRefresher Java Doc。
Spring Boot 应用支持通过 Endpoint 来暴露相关信息,Spring Cloud Alibaba Nacos Config Starter 也支持这一点。
在使用之前需要在 maven 中添加 spring-boot-starter-actuator依赖,并在配置中允许 Endpoints 的访问。
Spring Boot 3.x 可以通过访问 http://127.0.0.1:18084/actuator/nacosconfig 来访问。
如上图所示,Sources 表示此客户端从哪些 Nacos Config 配置项中获取了信息,RefreshHistory 表示动态刷新的历史记录,最多保存20条,NacosConfigProperties 则为 Nacos Config Starter 本身的配置。
| 配置项 | key | 默认值 | 说明 |
|---|---|---|---|
| 服务端地址 | spring.cloud.nacos.config.server-addr | 服务器ip和端口 | |
| DataId前缀 | spring.cloud.nacos.config.prefix | ${spring.application.name} | DataId的前缀,默认值为应用名称 |
| Group | spring.cloud.nacos.config.group | DEFAULT_GROUP | |
| DataId后缀及内容文件格式 | spring.cloud.nacos.config.file-extension | properties | DataId的后缀,同时也是配置内容的文件格式,目前只支持 properties |
| 配置内容的编码方式 | spring.cloud.nacos.config.encode | UTF-8 | 配置的编码 |
| 获取配置的超时时间 | spring.cloud.nacos.config.timeout | 3000 | 单位为 ms |
| 配置的命名空间 | spring.cloud.nacos.config.namespace | 常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源隔离等。 | |
| AccessKey | spring.cloud.nacos.config.access-key | ||
| SecretKey | spring.cloud.nacos.config.secret-key | ||
| 相对路径 | spring.cloud.nacos.config.context-path | 服务端 API 的相对路径 | |
| 接入点 | spring.cloud.nacos.config.endpoint | 地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址 | |
| 是否开启监听和自动刷新 | spring.cloud.nacos.config.refresh-enabled | true | |
| 集群服务名 | spring.cloud.nacos.config.cluster-name | ||
| 是否开启 Nacos Config 的 Health Indicator | spring.nacos.config.health-indicator.enabled | false | |
| 是否开启 Nacos Discovery 的 Health Indicator | spring.cloud.nacos.discovery.health-indicator.enabled | false |
在启动 Nacos Discovery 示例进行演示之前,了解一下 Spring Cloud 应用如何接入 Nacos Discovery。
注意 本章节只是为了便于您理解接入方式,本示例代码中已经完成接入工作,您无需再进行修改。
首先,修改 pom.xml 文件,引入 spring-cloud-alibaba-nacos-discovery-starter;
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
在应用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server 地址;
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
使用 @EnableDiscoveryClient 注解开启服务注册与发现功能;
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
@RestController
class EchoController {
@GetMapping(value = "/echo/{string}")
public String echo(@PathVariable String string) {
return string;
}
}
}
增加配置,在 nacos-discovery-provider-example 项目的 /src/main/resources/application.properties 中添加基本配置信息;
spring.application.name=service-provider
server.port=18082
启动应用,支持 IDE 直接启动和编译打包后启动。
ProviderApplication,执行 main 方法启动应用。mvn clean package 将工程编译打包,然后执行 java -jar nacos-discovery-provider-example.jar启动应用。注意:需要替换 accessToken!
在浏览器输入此地址 http://127.0.0.1:8848/nacos/v1/ns/catalog/instances?accessToken=XXXXXXXXXXXXXXXXXXXXXX&serviceName=service-provider&clusterName=DEFAULT&pageSize=10&pageNo=1&namespaceId=,并点击跳转,可以看到服务节点已经成功注册到 Nacos Server。
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
</dependencies>
增加如下配置,使用 Spring Cloud Alibaba 社区针对 Spring Cloud Loadbalancer 负载均衡依赖提供的负载均衡策略,以便使用 Spring Cloud Alibaba 提供的所有的能力:
spring.cloud.loadbalancer.ribbon.enabled=false
spring.cloud.loadbalancer.nacos.enabled=true
在配置完成 Spring Cloud Loadbalancer 作为负载均衡策略后,应用启动后会默认将微服务的 IPv4 地址和 IPv6 地址注册到注册中心中,其中 IPv4 地址会存放在 Nacos 服务列表中的 IP 字段下,IPv6 地址在 Nacos 的 metadata 字段中,其对应的 Key 为 IPv6。当服务消费者调用服务提供者时,会根据自身的 IP 地址栈支持情况,选择合适的 IP 地址类型发起服务调用。具体规则: (1)服务消费者本身支持 IPv4 和 IPv6 双地址栈或仅支持 IPv6 地址栈的情况下,服务消费者会使用服务提供的 IPv6 地址发起服务调用,IPv6 地址调用失败如本身还同时支持 IPv4 地址栈时,暂不支持切换到 IPv4 再发起重试调用; (2)服务消费者本身仅支持 IPv4 单地址栈的情况下,服务消费者会使用服务提供的 IPv4 地址发起服务调用。
如果您只想使用 IPv4 地址进行注册,可以在 application.properties 使用以下配置:
spring.cloud.nacos.discovery.ip-type=IPv4
如果您只想使用 IPv6 地址,可以在 application.properties 使用以下配置:
spring.cloud.nacos.discovery.ip-type=IPv6
下面将分析 nacos-discovery-consumer-example 项目的代码,演示如何 RestTemplate 与 FeignClient。
注意 本章节只是为了便于理解接入方式,本示例代码中已经完成接入工作,您无需再进行修改。此处只涉及 Ribbon、RestTemplate、FeignClient 相关的内容,如果已经使用了其他服务发现组件,可以通过直接替换依赖来接入 Nacos Discovery。
添加 @LoadBalanced 注解,使得 RestTemplate 接入 Ribbon
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
FeignClient 已经默认集成了 Ribbon ,此处演示如何配置一个 FeignClient。
@FeignClient(name = "service-provider")
public interface EchoService {
@GetMapping(value = "/echo/{str}")
String echo(@PathVariable("str") String str);
}
使用 @FeignClient 注解将 EchoService 这个接口包装成一个 FeignClient,属性 name 对应服务名 service-provider。
echo 方法上的 @RequestMapping 注解将 echo 方法与 URL "/echo/{str}" 相对应,@PathVariable 注解将 URL 路径中的 {str} 对应成 echo 方法的参数 str。
完成以上配置后,将两者自动注入到 TestController 中。
@RestController
public class TestController {
@Autowired
private RestTemplate restTemplate;
@Autowired
private EchoService echoService;
@GetMapping(value = "/echo-rest/{str}")
public String rest(@PathVariable String str) {
return restTemplate.getForObject("http://service-provider/echo/" + str, String.class);
}
@GetMapping(value = "/echo-feign/{str}")
public String feign(@PathVariable String str) {
return echoService.echo(str);
}
}
配置必要的配置,在 nacos-discovery-consumer-example 项目的 /src/main/resources/application.properties 中添加基本配置信息
spring.application.name=service-consumer
server.port=18083
management.endpoints.web.exposure.include=*
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.fail-fast=true
spring.cloud.nacos.username=nacos
spring.cloud.nacos.password=nacos
5.启动应用,支持 IDE 直接启动和编译打包后启动。
ConsumerApplication,执行 main 方法启动应用。mvn clean package 将工程编译打包,然后执行 java -jar nacos-discovery-consumer-example.jar 启动应用。Spring Cloud Alibaba Nacos Discovery 遵循了 Spring Cloud Common 标准,实现了 AutoServiceRegistration、ServiceRegistry、Registration 这三个接口。
在 Spring Cloud 应用的启动阶段,监听了 WebServerInitializedEvent 事件,当 Web 容器初始化完成后,即收到 WebServerInitializedEvent 事件后,会触发注册的动作,调用 ServiceRegistry 的 register 方法,将服务注册到 Nacos Server。
Spring Boot 应用支持通过 Endpoint 来暴露相关信息,Spring Cloud Alibaba Nacos Discovery Starter 也支持这一点。
在使用之前需要在 maven 中添加 spring-boot-starter-actuator依赖,并在配置中允许 Endpoints 的访问。
Spring Boot 3.x 可以通过访问 http://127.0.0.1:18083/actuator/nacos-discovery 来访问。
如上图所示,NacosDiscoveryProperties 则为 Spring Cloud Alibaba Nacos Discovery 本身的配置,也包括本机注册的内容,subscribe 为本机已订阅的服务信息。
| 配置项 | key | 默认值 | 说明 |
|---|---|---|---|
| 服务端地址 | spring.cloud.nacos.discovery.server-addr | ||
| 服务名 | spring.cloud.nacos.discovery.service | ${spring.application.name} | 注册到Nacos上的服务名称,默认值为应用名称 |
| 权重 | spring.cloud.nacos.discovery.weight | 1 | 取值范围 1 到 100,数值越大,权重越大 |
| 网卡名 | spring.cloud.nacos.discovery.network-interface | 当IP未配置时,注册的IP为此网卡所对应的IP地址,如果此项也未配置,则默认取第一块网卡的地址 | |
| 注册的IP地址 | spring.cloud.nacos.discovery.ip | 优先级最高 | |
| 注册的IP地址类型 | spring.cloud.nacos.discovery.ip-type | 双栈地址 | 可以配置IPv4和IPv6两种类型,如果网卡同类型IP地址存在多个,希望制定特定网段地址,可使用spring.cloud.inetutils.preferred-networks配置筛选地址 |
| 注册的端口 | spring.cloud.nacos.discovery.port | -1 | 默认情况下不用配置,会自动探测 |
| 命名空间 | spring.cloud.nacos.discovery.namespace | 常用场景之一是不同环境的注册的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。 | |
| AccessKey | spring.cloud.nacos.discovery.access-key | ||
| SecretKey | spring.cloud.nacos.discovery.secret-key | ||
| Metadata | spring.cloud.nacos.discovery.metadata | 使用Map格式配置 | |
| 日志文件名 | spring.cloud.nacos.discovery.log-name | ||
| 集群 | spring.cloud.nacos.discovery.cluster-name | DEFAULT | Nacos集群名称 |
| 接入点 | spring.cloud.nacos.discovery.endpoint | 地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址 | |
| 是否集成LoadBalancer | spring.cloud.loadbalancer.nacos.enabled | false | |
| 是否开启Nacos Watch | spring.cloud.nacos.discovery.watch.enabled | false | 可以设置成true来开启 watch |
| 是否启用Nacos | spring.cloud.nacos.discovery.enabled | true | 默认启动,设置为false时会关闭自动向Nacos注册的功能 |
在启动示例进行演示之前,了解一下 Spring Cloud 应用如何接入 Spring Cloud 如何接入 Nacos Discovery、Spring Cloud Gateway。
注意 本章节只是为了便于您理解接入方式,本示例代码中已经完成接入工作,您无需再进行修改。
首先,修改 pom.xml 文件,引入 Spring Cloud Alibaba Nacos Discovery Starter、Spring Cloud Gateway Starter。
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway-server-webflux</artifactId>
</dependency>
在应用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server 地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
在应用的 /src/main/resources/application.properties 配置文件中配置 Spring Cloud Gateway 路由
spring.cloud.gateway.server.webflux.routes[0].id=nacos-route
spring.cloud.gateway.server.webflux.routes[0].uri=lb://service-gateway-provider
spring.cloud.gateway.server.webflux.routes[0].predicates[0].name=Path
spring.cloud.gateway.server.webflux.predicates[0].args[pattern]=/nacos/**
spring.cloud.gateway.server.webflux.routes[0].filters[0]=StripPrefix=1
使用 @EnableDiscoveryClient 注解开启服务注册与发现功能
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
启动应用,支持 IDE 直接启动和编译打包后启动。
GatewayApplication,执行 main 方法启动应用。mvn clean package 将工程编译打包,然后执行 java -jar nacos-gateway-discovery-example.jar启动应用。启动应用,支持 IDE 直接启动和编译打包后启动。
ProviderApplication,执行 main 方法启动应用。mvn clean package 将工程编译打包,然后执行 java -jar nacos-gateway-provider-example.jar启动应用。 curl 'http://127.0.0.1:18085/nacos/echo/hello-world'
hello Nacos Discovery hello-world⏎
curl 'http://127.0.0.1:18085/nacos/divide?a=6&b=2'
3⏎
请参考 Spring Cloud Alibaba 官网中的 Graalvm 快速开始
Nacos 为用户提供包括动态服务发现,配置管理,服务管理等服务基础设施,帮助用户更灵活,更轻松地构建,交付和管理他们的微服务平台,基于 Nacos, 用户可以更快速的构建以“服务”为中心的现代云原生应用。Nacos 可以和 Spring Cloud、Kubernetes/CNCF、Dubbo 等微服务生态无缝融合,为用户提供更卓越的体验。更多 Nacos 相关的信息,请参考 Nacos 项目。
未来,Spring-Alibaba-Nacos-Config模块将承载更多职责,面向二方中间件组件,对SpringBoot(包括Spring AI)以及SpringCloud应用提供统一的配置托管以及运行时无损轮转功能,面向普通的业务组件,通过@NacosConfig,@NacosConfigListener注解提供灵活易用的配置注入和变更回调能力。
如果您对 Spring Cloud Nacos Discovery 有任何建议或想法,欢迎在 issue 中或者通过其他社区渠道向我们提出。