1.下载nacos服务
nacos-server 进入bin目录下 startup.cmd -m standalone 单机启动
nacos的可视化界面地址:http://localhost:8848/nacos
账号:nacos 密码:nacos
引入依赖
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<!--此处版本官网是2.2的,但是会和mybatis-plus 3版本起冲突,所以退回了2.1-->
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
nacos作为服务注册与发现
1.引入依赖
<!--服务治理与发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
在配置文件中配置 application:name和nacos的地址
spring:
application:
name: gulimall-coupon
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
然后在SpringBoot的启动类上添加开启服务发现注解
@SpringBootApplication
//开启服务发现
@EnableDiscoveryClient
public class GulimallCouponApplication {
public static void main(String[] args) {
SpringApplication.run(GulimallCouponApplication.class, args);
}
}
重启服务,然后再nacos可视化界面中即可看到这个服务
多个服务同理
nacos配置管理
支持分布式系统中的外部化配置,配置更改时自动刷新。
创建一个bootstrap.yaml文件(这地方必须要另起一个bootstrap文件,config.server-addr必须写这里面,写appliacation.yaml里面不行,user.username,user.age可以写在application.yaml中)
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
user:
username: zhangsan
age: 18
写一个controller,主要是@RefreshScope这个注解,这个注解加上后,当你修改配置后他会将修改后的数据他会刷新数据
@RestController("/test")
//配置更改时刷新数据
@RefreshScope
public class TestController {
@Value("user.username")
private String username;
@Value("user.age")
private Integer age;
@RequestMapping("/test")
public String test() {
return "username:" + username + ",age:" + age;
}
}
请求接口
然后在nacos的配置列表中添加一条数据
DataId 的拼接格式如下
${prefix} - ${spring.profiles.active} . ${file-extension}
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档
注意,当 activeprofile 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 {file-extension}
file-extension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension来配置。 目前只支持 properties 类型**(我测试了yaml也是可以的)**。
或者去控制台找一下dataId给你也写好了
创建好配置
重启下服务再次访问,看,变了。哎呦卧槽,没变
这里需要说一个参数,file-extension 默认是properties,因为我没有修改这个参数,然后nacos中我用的是yaml,所以此处有两种方法,1、将nacos的配置文件改为properties。2、设置file-extension: yaml,如果用此种方法,dataId需要更改,因为其拼接格式中有file-extension 这个字段我就直接将nacos中的配置类型改成properties了
好了
再多实验几次。