Nacos是阿里巴巴开源开源框架。
所解决的问题是:注册中心| 分布式配置中心。
可以替代之前学习Eureka和config| 携程阿波罗
Nacos 服务注册和发现
官网:[https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html](https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html)
源码原理图:
产生的背景:
在项目中定义配置文件,最大的缺陷是什么?
如果在生产环境正在运行的时候突然需要修改配置文件的话,必须重启我们的服务器。
轻量级与重量级分别表示什么意思?
轻量级:部署、架构设计原理都比较简单,学习成本也是比较低:
重量级:部署、架构设计、体量都是非常大,学习成本是比较高。
如何判断配置文件是否发生变化:版本号 + MD5。
分布式配置中心实现原理:
1、本地应用读取我们云端分布式配置中心文件(第一次建立长连接)
2、本地应用读取到配置文件之后,本地jvm和硬盘中都会缓存一份。
3、本地应用与分布式配置中心服务器端一直保持长连接。
4、当我们的配置文件发生变化(MD5 | 版本号)实现区分,将变化的结果通知给我们的本地应用及时的刷新我们的配置文件
注意:Nacos分布式配置中心和注册中心都部署在同一个应用,就是一个单体的应用。
安装与下载忽略
导入依赖
<!--nacos服务注册/发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
nacos服务发现
spring:
application:
name: league-service-user
cloud:
nacos:
config:
# 注册中心地址
server-addr: localhost:8081
namespace: DEV
group: user
username: nacos
password: nacos
# 配置文件类型,有yml和properties
fileExtension: yml
enabled: true # 如果不想使用 Nacos 进行服务注册和发现,设置为 false 即可
refresh:
enabled: true
启动类上注解 @EnableDiscoveryClient
eureka和nacos区别
配置中心
导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>