SpringBoot引入nacos为注册中心和配置中心

基础环境

已经安装好了nacos服务器

参考:https://nacos.io/zh-cn/

已经有一个SpringBoot工程。

注册中心配置

添加依赖

注册中心配置依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>${nacos.version}</version>
</dependency>

启用注解

然后使用@EnableDiscoveryClient启用注册:

@EnableDiscoveryClient
@SpringBootApplication
public class MasterServiceApplication {
    // 其他代码
    public static void main(String[] args) {
        SpringApplication.run(MasterServiceApplication.class, args);
    }
}

配置nacos地址

配置application.yml,如果自定义了namespace,需要填写namespace的ID(不是名称)

SpringBoot引入nacos为注册中心和配置中心

spring:
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848
      discovery:
        enabled: true
        namespace: my_dev

启动后可以在控制台看到:

SpringBoot引入nacos为注册中心和配置中心

可以使用命名空间区分注册中心环境,测试和开发可以使用同一个nacos的不同命名空间。

配置中心

配置中心可以支持动态刷新,需要配置到bootstrap.yml

引入依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>${nacos.version}</version>
</dependency>

启用配置中心

启用配置中心,需要在bootstrap.yml中配置:

spring:
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848
      config:
        enabled: true
        namespace: my_dev
        file-extension: yml

使用配置

新建配置:

SpringBoot引入nacos为注册中心和配置中心

配置ID格式:${应用名字}-${环境}.${扩展名}

如:MasterServiceProvider-dev.yml

必须在需要刷新的地方添加@RefreshScope注解,否则只能重启后有效,不能实时更新状态。

@RefreshScope
@RestController
@RequestMapping("/test")
public class TestController {
    @Value("${test.my-key}")
    private String myKey;
    @GetMapping("/showKey")
    public String test() {
        return "test.my-key=" + myKey;
    }
}

配置完成。

给TA打赏
共{{data.count}}人
人已打赏
运维

Nacos最新2.x集群安装以及Nginx负载均衡配置

2024-11-19 10:37:31

运维

freessl.cn申请免费https证书并配置到Nginx

2024-11-19 10:37:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索