Nacos是阿里巴巴开源开源框架。
所解决的问题是:注册中心| 分布式配置中心。
可以替代之前学习Eureka和config| 携程阿波罗
image.png

Nacos 服务注册和发现

官网:[https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html](https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html)

源码原理图:

image.png

产生的背景:

在项目中定义配置文件,最大的缺陷是什么?
如果在生产环境正在运行的时候突然需要修改配置文件的话,必须重启我们的服务器。
轻量级与重量级分别表示什么意思?
轻量级:部署、架构设计原理都比较简单,学习成本也是比较低:
重量级:部署、架构设计、体量都是非常大,学习成本是比较高。
如何判断配置文件是否发生变化:版本号 + MD5。

分布式配置中心实现原理:

1、本地应用读取我们云端分布式配置中心文件(第一次建立长连接)
2、本地应用读取到配置文件之后,本地jvm和硬盘中都会缓存一份。
3、本地应用与分布式配置中心服务器端一直保持长连接。
4、当我们的配置文件发生变化(MD5 | 版本号)实现区分,将变化的结果通知给我们的本地应用及时的刷新我们的配置文件
注意:Nacos分布式配置中心和注册中心都部署在同一个应用,就是一个单体的应用。


安装与下载忽略
导入依赖

  1. <!--nacos服务注册/发现-->
  2. <dependency>
  3. <groupId>com.alibaba.cloud</groupId>
  4. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  5. </dependency>

nacos服务发现

  1. spring:
  2. application:
  3. name: league-service-user
  4. cloud:
  5. nacos:
  6. config:
  7. # 注册中心地址
  8. server-addr: localhost:8081
  9. namespace: DEV
  10. group: user
  11. username: nacos
  12. password: nacos
  13. # 配置文件类型,有ymlproperties
  14. fileExtension: yml
  15. enabled: true # 如果不想使用 Nacos 进行服务注册和发现,设置为 false 即可
  16. refresh:
  17. enabled: true

启动类上注解 @EnableDiscoveryClient

nacos页面中可以发现注册的服务

image.png


eureka和nacos区别

image.png

配置中心

导入依赖

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  4. <version>0.9.0.RELEASE</version>
  5. </dependency>