Nacos下载与配置
下载
Nacos Server 下载 | Nacos 官网,目前最新稳定的是2.3.2
也可以在Github下载,Releases · alibaba/nacos (github.com)
配置(不知道这一步是否必要)
下载完后解压,conf目录中有一个mysql-schema.sql文件,先在自己的MySQL创建nacos数据库,然后在nacos数据库运行这个SQL文件创建相应的表。
然后还是conf目录下的application.properties文件,使用自己的文本编辑器编辑打开这个文件,把43行到45行取消注释并且修改为自己的数据库信息。这几行大概是这个样子
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
db.user.0=root
db.password.0=123456
运行
方式1
在bin目录下,通过命令行来运行
启动命令(standalone代表着单机模式运行,非集群模式):
startup.cmd -m standalone
或者说你把nacos这个bin目录添加到自己的环境变量,那么在哪都可以直接运行这个命令脚本
方式2
或者也可以直接编辑startup.cmd,把26行的
set MODE="cluster"
改成
set MODE="standalone"
保存退出,就可以直接点这个文件来运行。
使用
运行成功之后在命令行输出的nacos图标右侧可以看到进入的网址,如果是本地运行直接localhost:8848/nacos也可以
进入nacos页面在配置管理-配置列表就可以新建自己的配置了。
SpringBoot版本用的2.6.5
Maven
<!-- https://mvnrepository.com/artifact/com.alibaba.boot/nacos-config-spring-boot-starter -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.12</version>
</dependency>
在pom.xml文件中添加这个依赖。
配置文件 application.yml
spring:
application:
name: demonacos
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: dbfe38f8-482c-4d49-a96e-b40e46f20afa
auto-refresh: true
bootstrap:
enable: true
data-id: demo.yml
group: DEMO_GROUP
name用自己的就可以,就是项目名称
如果Nacos自己新建了命名空间那么,namespace写命名空间的id,没有新建用的默认的话应该就不用写,默认的是public
server-addr,如果没有修改过配置就写这个,如果不是本地运行或者修改过端口号就自己做相应修改。
data-id写自己的,group如果Nacos没有修改这里应该也不用写。
这个是yml/yaml文件的格式,默认的是properties格式,写法不太一样,yml文件层次更清晰一些,不知道的话可以自己去搜一下这两个文件的区别,应该建议是用yml。
运行文件
package com.demonacos;
import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@NacosPropertySource(dataId = "demo.yml", groupId = "DEMO_GROUP")
public class DemonacosApplication {
public static void main(String[] args) {
SpringApplication.run(DemonacosApplication.class, args);
}
}
运行文件在自己运行文件的基础上加一个@NacosPropertySource注解,参数也是改成自己的,其实按说yml配置文件里有相应的配置,这里就不需要了,但是我还不可以,后面再看看吧,反正这样是可以的。
测试程序
package com.demonacos.controller;
import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@NacosValue(value = "${author}", autoRefreshed = true)
private String author;
@GetMapping("/test")
public String test() {
return author;
}
}
@NacosValue(value = "${author}", autoRefreshed = true)这个注解中的value就是你nacos配置的东西,autoRefreshed = true就是你nacos配置改变之后这边也可以不重新启动而获取新的配置。
我的nacos配置:
server:
port: 8081
author: Alkaid
也是用的yaml格式。所以我取author就能够取到Alkaid这个值,假如说我想取端口号,就可以写
value = "${server.port}"
所以我在nacos直接配了服务的运行端口号,如果我读nacos的配置成功了,我的项目在运行起来,看他端口号就能够看到是8081而不是默认的8080。