springboot整合nacos注册中心和配置中心 | Nacos 官网
云栖回顾 | 2024 云栖大会微服务和网关相关演讲材料点此了解

springboot整合nacos注册中心和配置中心


用户问题 :

springboot整合nacos注册中心和配置中心


专家官方解答 :

要整合 Spring Boot 项目与 Nacos 作为注册中心和配置中心,您可以按照以下步骤操作,这些步骤基于提供的知识内容:

整合 Nacos 作为配置中心

前提条件:

  • 已启动并运行 Nacos Server。
  1. 添加依赖:pom.xml 文件中加入 Nacos Spring Context 的依赖。确保使用的是最新版本,您可以通过访问 mvnrepository.com 获取。

    <dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-spring-context</artifactId>
    <version>${latest.version}</version>
    </dependency>
  2. 配置启用 Nacos: 在 Spring Boot 的配置类上添加 @EnableNacosConfig 注解,并通过 @NacosPropertySource 指定配置文件。

    @Configuration
    @EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "127.0.0.1:8848"))
    @NacosPropertySource(dataId = "example", autoRefreshed = true)
    public class NacosConfig {
    }
  3. 使用 Nacos 配置: 在需要使用配置的类或方法上使用 @NacosValue 注解。

    @RestController
    public class ConfigController {
    @NacosValue("${useLocalCache:false}")
    private boolean useLocalCache;
    // ...
    }

整合 Nacos 作为服务注册中心

  1. 添加依赖: 与配置中心相同,确保已添加 Nacos Spring Context 依赖。

  2. 启用服务发现: 在配置类中添加 @EnableNacosDiscovery 注解。

    @Configuration
    @EnableNacosDiscovery(globalProperties = @NacosProperties(serverAddr = "127.0.0.1:8848"))
    public class NacosDiscoveryConfig {
    }
  3. 使用服务发现功能: 可以通过 @NacosInjected 注解注入 NamingService 来查询服务实例。

    @RestController
    public class DiscoveryController {
    @NacosInjected
    private NamingService namingService;
    @GetMapping("/services/{serviceName}")
    public List<Instance> getServices(@PathVariable String serviceName) throws NacosException {
    return namingService.getAllInstances(serviceName);
    }
    }

解释:

  • 配置中心部分:通过 @EnableNacosConfig@NacosPropertySource,Spring Boot 应用能够从 Nacos Server 动态获取配置信息,autoRefreshed = true 确保了配置变更时应用能自动刷新配置。

  • 服务注册中心部分@EnableNacosDiscovery 开启了 Nacos 的服务发现功能,允许应用向 Nacos Server 注册服务,并通过 NamingService 查询其他服务实例,便于实现服务间通信。

请确保每一步都正确配置,特别是 Nacos Server 的地址和端口应根据实际情况调整。如果您在整合过程中遇到任何具体问题,欢迎进一步咨询。

---------------

参考链接 :

---------------

答疑服务说明:

本内容经由技术专家审阅的用户问答的镜像生成,我们提供了专家智能答疑服务,使用方法: 用法1: 在页面的右下的浮窗”专家答疑“。 用法2: 点击专家答疑页(针对部分网站不支持插件嵌入的情况)

另:

有其他开源产品的使用问题?点击访问阿里AI专家答疑服务

反馈

如问答有错漏,欢迎点:差评给我们反馈。