(1)nacos的主要功能:
(1)服务发现和服务健康检测
(2)动态配置服务
(3)动态DNS服务
(4)服务及元数据管理
(2)拉取源代码进行启动:https://github.com/alibaba/nacos 这个是nacos的管理页面 默认登录名:nacos 密码:nacos
下载下来直接启动,就是配置管理中心
(3)测试项目: https://github.com/nacos-group/nacos-examples/blob/master/nacos-spring-boot-example 这是一个demo,里面有相应的配置管理
使用方式:
(1)下载下来nacos-service的zip,解压之后,进去bin文件夹里面启动startup.cmd
(2)访问页面:localhost:8848/nacos/index.html 登录名和密码都是:nacos
(3)添加配置项,在列表最右边有个加号,Data Id就相当于springcloud的配置文件的文件名
有两种方式:一种是springboot的,这种好像现在没有分布式的。就是简单的配置一下,然后获取内容,springboot项目也可以直接使用springcloud的包,直接搞成分布式。
spring boot的jar:<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.1</version>
</dependency> <dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-discovery-spring-boot-starter</artifactId>
<version>0.2.1</version>
</dependency>
配置文件里面添加:nacos.config.server-addr=127.0.0.1:8848
nacos.discovery.server-addr=127.0.0.1:8848 这个是发现配置项的,但是要先提交信息才能发现。
提交的方式:PUT http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=bamboo.test&ip=127.0.0.1&port=8081
获取的方式,就是写一个路径查询Data Id等于bamboo.test的instance,暂时没发现有啥作用。
@RequestMapping("/get")
@ResponseBody
public List<Instance> get(@RequestParam String serviceName) throws NacosException {
List<Instance> list = namingService.getAllInstances(serviceName);
return list;
}
在项目启动的地方添加@NacosPropertySource(dataId = "bamboo.test",autoRefreshed = true) bamboo.test就是Data Id
然后获取配置信息:@Value("${配置项名称}")
private String xxx;
第二种方式,就是springcloud这种方式,分布式的,而且可以配置多环境,可以代替springcloud自带的config
springcloud的jar:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
配置文件里面添加:spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
分布式是因为可以把nacos项目添加到eureka-service里面,同个项目里面不同环境配置文件做区分,就是靠Data Id的名字做区分的。
跟springcloud的config配置相似。
结构:${prefix}-${spring.profile.active}.${file-extension}
第一个参数prefix就是项目的spring.application.name
第二个参数spring.profile.active就是项目的环境名称,dev或者online,test
第三个参数file-extension,就是文件后缀 yml,properties 默认是properties。
若nacos里面的配置文件是yml结尾的话,则需要在配置文件里面添加:spring.cloud.nacos.config.file-extension=yml
这个的使用方式就比较简单,只需要在对用的使用的地方加上@RefreshScope注解,表示可以实时刷新,项目会自动去读取与名字相对应的配置文件。
若是还是不懂,看官网,英文版的,人都是被逼出来的。 记得把百度翻译打开。
总结:nacos比config要简单一点,最主要的就是没有使用到rabbitmq来推送实时更新。而且还有可视化界面。你