nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,这次来体验一下nacos和SpringBoot集成使用。

1、安装

前提:安装好Docker、Docker-compose、Git,如果不会安装请查看 CoderQi公众号的文章

  • Clone项目

    git clone https://github.com/nacos-group/nacos-docker.git
    //如果上面地址慢,请用下面的地址
    git clone https://gitee.com/amoqi/nacos-docker.git
    cd nacos-docker
    

目录如下

.
├── build
│   ├── bin
│   ├── conf
│   ├── Dockerfile
│   └── init.d
├── changlog
├── env
│   ├── mysql.env
│   ├── nacos-embedded.env
│   ├── nacos-hostname.env
│   ├── nacos-ip.env
│   └── nacos-standlone-mysql.env
├── example
│   ├── cluster-embedded.yaml
│   ├── cluster-hostname.yaml
│   ├── cluster-ip.yaml
│   ├── init.d
│   ├── mysql
│   ├── prometheus
│   ├── standalone-derby.yaml
│   ├── standalone-logs
│   ├── standalone-mysql-5.7.yaml
│   └── standalone-mysql-8.yaml
├── README.md
└── README_ZH.md

输入命令修改nacos的镜像版本,现在需要nacos需要设置镜像版本才能启动。

vi example/standalone-mysql-5.7.yaml
//修改下面一行
image: nacos/nacos-server:${NACOS_VERSION}
//改为下面的版本号,注意只改动版本号,前面的空格别动
image: nacos/nacos-server:1.4.2

输入如下命令进行启动

docker-compose -f example/standalone-mysql-5.7.yaml up -d

启动后输入地址进行查看:

http://IP地址:8848/nacos/

2、使用配置中心

创建springboot项目spring-boot-nacos,POM依赖如下

        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
		<!--nacos-->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>${nacos-config-spring-boot.version}</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-actuator</artifactId>
            <version>${nacos-config-spring-boot.version}</version>
        </dependency>
        

配置application.yml , server-addr为nacos的地址+IP

spring:
  application:
    name: spirngboot-nacos
nacos:
  config:
    server-addr: 192.168.67.68:8848
management:
  endpoints:
    web:
      exposure:
        include: always
  endpoint:
    health:
      show-details: always

进入nacos配置,点击左边的配置列表,添加一个配置,如图所示
在这里插入图片描述

在启动文件上加入注解 NacosPropertySource

@SpringBootApplication
@NacosPropertySource(dataId = "example", autoRefreshed = true)
public class SpringBootNacosApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootNacosApplication.class, args);
    }
}

创建ConfigController.java文件,如下

@Controller
@RequestMapping("config")
public class ConfigController{

//    @Value("${useLocalCache:false}")
    @NacosValue(value = "${useLocalCache:false}",autoRefreshed = true)
    private boolean useLocalCache;

    @RequestMapping(value = "/get")
    @ResponseBody
    public boolean get() {
        return useLocalCache;
    }
}

访问 http://localhost:8080/config/get,就会展示出useLocalCache的值
在这里插入图片描述

3、测试Nacos修改配置自动生效

进入nacos,编辑example文件,把useLocalCache修改false,如下

useLocalCache:true

访问 http://localhost:8080/config/get,就会展示出useLocalCache为修改后的值。
在这里插入图片描述

结语

码字不易,希望能多多支持。一名四年工作经验的程序猿,目前从事物流行业的工作,有自己的小破网站amoqi.cn。欢迎大家关注公众号【CoderQi】,一起来交流JAVA知识,包括但不限于SpringBoot+微服务,更有奇奇学习过程中学习的视频、面试资料和专业书籍等免费放送,希望大家能够喜欢。
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐