Springboot整合nacos实现配置中心及服务发现

一、概述

首先,nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。而springboot能够创建一个独立运行spring应用框架,因此,springboot整合nacos,可以更方便实现服务的发现、配置管理等相关功能。

二、springboot是如何整合nacos?

1.在pom文件中添加nacos依赖。

csharp 复制代码
<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
			<version>2021.0.5.0</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
			<version>2021.0.5.0</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-bootstrap</artifactId>
			<version>3.1.3</version>
		</dependency>

注:这里用的spring版本是2.6.0。

2.配置nacos。

在bootstrap.properties或bootstrap.yml文件中配置nacos的相关信息。这里以bootstrap.yml为例。

csharp 复制代码
spring:
  application:
    name: my-blog#为服务名
  cloud:
    nacos:
      username: nacos
      password: nacos
      discovery:
        namespace: e50bbc31-d4bd-4f7f-852a-c5cacf3a2a24
        server-addr: localhost:8848
        register-enabled: true
        watch:
          enabled: true
      config:
        extension-configs:
          - data-id: common.properties
            refresh: true
        file-extension: properties #后缀名,只支持 properties 和 yaml 类型
        prefix: my-blog #文件名,如果没有配置则默认为 ${spring.appliction.name}
        namespace: e50bbc31-d4bd-4f7f-852a-c5cacf3a2a24
        auto-refresh: true
        enable-remote-sync-config: true #启用远程同步配置
        group: DEFAULT_GROUP  #配置组
        refresh-enabled: true
        server-addr: localhost:8848

3.使用nacos配置。

我们可以在SpringBoot应用中,通过@Value注解或在application.yml中,你可以通过占位符${...}来引用nacos中的配置。

csharp 复制代码
@Component  
@ConfigurationProperties(prefix = "blog")  
public class MyConfigProperties {  
    private String property;  
}
csharp 复制代码
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

@Component
@Data
@RefreshScope
public class MyConfig {
    /**
     * url地址
     */
    @Value("${blog.url}")
    private String url;
    /**
     * 路径
     */
    @Value("${blog.path}")
    private String path;
}

其中 @RefreshScope注解实现配置动态刷新。

4.启动nacos服务发现。

csharp 复制代码
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication  
@EnableDiscoveryClient  
public class MyApplication {  
    public static void main(String[] args) {  
        SpringApplication.run(MyApplication.class, args);  
    }  
}

接着启动应用后,就可以在nacos的服务列表中看到我们已经注册到nacos的服务。

相关推荐
Flynn Liang16 小时前
可观测性与成本治理:一次对话的 17 个观测点
java·langchain·可观测性·micrometer·langchain4j·token 成本·llm 监控
金銀銅鐵16 小时前
带您看懂字节码指令(三):同一行加法,为什么有四种指令
java·jvm
yuyuxun118 小时前
协同过滤的校园二手物品智能推荐系统的设计与实现 毕业设计-附源码40082
javascript·vue.js·spring boot·python·数据分析·django·课程设计
文丑颜不良啊20 小时前
LeetCode2821~2840题目解析
java·leetcode
apcipot_rain20 小时前
C++转Java日记(10)
java·开发语言
简 洁 冬冬21 小时前
泛型方法写法全面辨析:从「能编译」到「能跑」到「能用」
java·泛型
LGL6030A21 小时前
Java学习历程31——初识Spring Boot
java·spring boot·学习
阿达和自己1 天前
springboot学习-springboot引入MyBatis-Plus
spring boot·学习·mybatis
Lansonli1 天前
大数据Spark(八十八):Spark任务资源之Standalone集群测试
java·服务器·spark
budingxiaomoli1 天前
Spring AOP
java·spring·java-ee