什么是Nacos
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
NACOS解决两个核心问题:动态配置管理,服务注册发现
几天使用下来,Nacos动态配置挺方便的,有自己的控制台,而且还支持不同namespace切换,已经可以考虑上生产,服务注册方面支持spring cloud、dubbo等,切换过去十分方便
体验是基本上可以替代spring-cloud-config + Eureka
本文使用版本Nacos: 1.0.1
Nacos启动
启动很简单
wget https://github.com/alibaba/nacos/releases/download/1.0.1/nacos-server-1.0.1.tar.gz
tar -zxvf nacos-server-1.0.1.tar.gz
#进入目录下的bin(这里单机启动) 执行shell
sh startup.sh -m standalone
输入 http://ip:8848/nacos
账号、密码:nacos
进入就是nacos的控制台
动态配置管理
以spring boot为例,新建一个web项目nacos-sb(不演示)
这里先介绍几个概念
最外层的namespace是可以用于区分部署环境的,比如dev,uat,product等,其它两个领域模型不用多解释了,见名知意。其目的也非常明显,就是为了能够逻辑上区分两个目标对象
简单配置
在启动类加上注解
@NacosPropertySource指定的dataId,最终会对应到配置文件,autoRefreshed=true代表配置改变时会自动刷新
@EnableNacosConfig 配置开启nacosConfig功能,globalProperties是强制要求要输入,但其实我并没有为它赋值,只是用它默认的@NacosProperties,注解会指定许多值从自动从配置文件里取,例如String namespace() default "${nacos.namespace:}";
@NacosValue 类似spring boot的@Value
ok,现在我们启动项目
进入http://localhost:8080/get
根据profile和namespace实现多种环境切换
首先创建多个namespace
配置profile 这里由于生产测试环境用的nacos都是同一个 所以就直接配在这里了 增加application-prod.properties 注意这里的namespace用的是namespace的id接着增加prod的配置
启动项目 可以查看到
就这样环境已经被切换到prod这个namespace了