下载Nacos安装包:https://github.com/alibaba/nacos/releases。
解压后目录结构如下:
启动脚本在bin目录下:
windows下:
startup.cmd -m standalone
Linux下:
startup.sh -m standalone
下面以windows安装为例演示:
启动成功后,访问:http://127.0.0.1:8848/nacos/, 用户名/密码 默认:nacos/nacos
以windows安装为例
将解压后的文件夹再复制2份,共3份,使用本地测试,本地IP为192.168.0.105,使用不同端口来区分
nacos-1: 192.168.0.105:8848
nacos-2: 192.168.0.105:8849
nacos-3: 192.168.0.105:8850
修改conf/cluster.conf(没有的话,新增一个)内容如下:
192.168.0.105:8848
192.168.0.105:8849
192.168.0.105:8850
nacos-1、nacos-2、nacos-3 都修改为以上内容;
新增mysql数据库:nacos,将conf/nacos-mysql.sql 脚本导入到nacos数据库中;
修改conf/application.properties配置文件(3个文件夹下server.port都相应调整下):
server.port=8848
spring.datasource.platform=mysql
db.num=1
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=nacos
db.password=nacos
配置修改完成后,分别到nacos-1/bin, nacos-2/bin, nacos-3/bin 文件夹下,使用命令启动
startup.cmd -m cluster
集群启动成功后,可以在nacos后台查看:
新建maven项目:springcloud-nacos
添加依赖:
org.springframework.boot
spring-boot-starter-parent
2.1.3.RELEASE
org.springframework.cloud
spring-cloud-starter-alibaba-nacos-discovery
0.9.0.RELEASE
org.springframework.cloud
spring-cloud-starter-alibaba-nacos-config
0.9.0.RELEASE
org.springframework.boot
spring-boot-starter-web
在bootstrap.yml(一定是bootstrap.yml文件,不是application.yml文件)文件配置以下内容:
spring:
application:
name: nacos
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
prefix: nacos
profiles:
active: dev
在上面的配置中,配置了nacos config server的地址,配置的扩展名是ymal(目前仅支持ymal和properties)。注意是没有配置server.port的,sever.port的属性在nacos中配置。上面的配置是和Nacos中的dataId 的格式是对应的,nacos的完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
进入Nacos Console,新建一个Data ID。
新建启动类如下:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class NacosApplication {
public static void main(String[] args) {
SpringApplication.run(NacosApplication.class, args);
}
}
新建Controller,加上@RefreshScope注解
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RefreshScope
public class ConfigController {
@Value("${username}")
private String username;
@RequestMapping("username")
public String getConfig() {
return username;
}
}
启动NacosApplication ,从控制台可以看出,tomcat端口号从nacos中读取8081。
此时访问:http://127.0.0.1:8081/username,可以看到返回配置的内容:Jason,此时修改nacos中 username的值,会立即同步到应用中。