nacos系列 (nacos整合springcloud)
nacos与springcloud集成
版本对应关系参考:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
springcloud各版本区别:
常见版本号说明
举个瓜:2.0.3 RELEASE
2:主版本号,当功能模块有较大更新或者整体架构发生变化时,主版本号会更新
0:次版本号。次版本表示只是局部的一些变动。
2:修改版本号。一般是bug的修改或者是小的变动
RELEASE:希腊字母版本号。此版本号用户标注当前版本的软件处于哪个开发阶段
希腊字母版本号
Base:设计阶段。只有相应的设计没有具体的功能实现。
Alpha:软件的初级版本。基本功能已经实现,但存在较多的bug。
Bate:相对于Alpha已经有了很大的进步,消除了严重的BUG,但还存在一些潜在的BUG,还需要不断测试。
RELEASE:最终版本,没有太大的问题。
SpringCloud的版本号
1)为什么springcloud版本用的是单词而不是数字呢?
设计的目的是为了更好的管理每个SpringCloud子项目的清单,避免自己的版本号与子项目的版本号混淆。
2)有什么规则么?
(常用了英国伦敦地铁站的名称来命名)首字母越靠后表示版本号越大
3)关于版本发布说明?
BUILD-XXX 开发版 开发团队内部使用,不是很稳定
GA 稳定版 相比于开发版,基本上可以使用了
PRE(M1、M2) 里程碑版 主要是修复了一些BUG的版本,一个GA后通常有多个里程碑版
RC 候选发布版 该阶段的软件类似于最终版的一个发行观察期,基本只修复比较严重的BUG
SR 正式发布版 ~~~~这个就没啥好说啦
springcloud alibaba
1. 搭建环境
配置注册和服务发现同时配置引入
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
2.2.3.RELEASE
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
2.2.3.RELEASE
2. 配置扫描
注意:
@NacosValue : 配置配置类上加扫描配置文件路径采用获取最新值
@Value + @RefreshScope : 这个是springcloud中获取最新配置属性值
以上两个注解都可以设置默认值
bootstrap.properties配置
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=huhy
spring.cloud.nacos.config.file-extension=properties
#spring.cloud.nacos.config.file-extension=yaml
在 Nacos Spring Cloud 中,
dataId
的完整格式如下:${prefix}-${spring.profiles.active}.${file-extension}
prefix
默认为spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置。spring.profiles.active
即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当spring.profiles.active
为空时,对应的连接符-
也将不存在,dataId 的拼接格式变成${prefix}.${file-extension}
file-exetension
为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension
来配置。目前只支持properties
和yaml
类型。
@RestController
@RefreshScope
public class NacosConfigController {
@Value("${useLocalCache:false}")
private boolean useLocalCache;
@Value("${user.nickname}")
private String nickname;
@NacosValue(value = "${user.address:henan}",autoRefreshed = true)
private String address;
/**
* http://localhost:8080/get
*/
@RequestMapping("/get")
public boolean get() {
return useLocalCache;
}
@RequestMapping("/get2")
public String get2() {
return nickname + address;
}
}
3. 注册服务
在集成springboot中介绍过,在cloud版本中,只需要使用@EnableDiscoveryClient注解就可以了
@SpringBootApplication
@EnableDiscoveryClient
public class ConfigControllerApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigControllerApplication.class, args);
}
}
注意: @EnableDiscoveryClient 注解必须引入 spring-cloud-starter-alibaba-nacos-discovery ,不引人代码不会报错,注册服务不会成功