1. 背景
最近的一个趋势是Eureca用的少了,都在推荐使用Nacos ,本节我们学习Nacos。
2.知识
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
官方主页: https://nacos.io/
Nacos 是什么? Nacos 是 注册中心(Service Registry)和 配置中心(Config Center) ,也可以仅作为注册中心使用。
三个关键特性:
(1) 动态服务发现
- 服务发现,服务提供者使用 原生SDK、或 其他方式 注册 Service 后,服务消费者可以使用 HTTP API 查找和发现服务。
- 服务健康监测,Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。
(2) 配置管理
Nacos 的动态配置服务可以让您以 中心化
的方式管理配置文件,将配置文件上传到Nacos后服务提供者在启动后自动获得配置文件,使得配置更方便,统一。
(3) 服务管理 Nacos 提供了web 控制台,可等录入 web管理页操作服务的下线等。
一些概念知识
整体结构是:命名空间下有多个分组,分组下有多个服务。
结构
命名空间 不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
默认有个 public 空间,我们还可以建立 dev , test 等空间。
配置分组 配置文件可以用一个名字来分组,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。一般就 DEFAULT_GROUP 就够了。
健康检查 Nocos 以指定方式检查服务下挂载的实例 (Instance) 的健康度,从而确认该实例 是否能提供服务。
健康保护阈值是 为了防止因过多实例不健康导致流量全部流向健康实例,造成流量压力把健康实例 压垮并形成雪崩效应,当域名健康实例数 占总服务实例数 的比例小于该值时,无论实例是否健康,都会将这个实例返回给客户端。
3. 安装和启动
3.1 下载
前往官网下载 https://github.com/alibaba/nacos/releases
3.2 启动
单机模式运行,在 Linux/Unix/Mac 启动命令:
代码语言:javascript复制sh startup.sh -m standalone
在 Linux/Unix/Mac下 .关闭服务器
代码语言:javascript复制sh shutdown.sh
3.3 访问 web 地址
打开网址 Http://localhost:8848/nacos 默认账户和密码都是 nacos
4. 和 Springboot 集成
4.1 集成和使用:服务发现
(1)添加依赖
代码语言:javascript复制<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-discovery-spring-boot-starter</artifactId>
<version>${latest.version}</version>
</dependency>
(2) 修改配置文件 application.properties 中配置 Nacos server 的地址:
代码语言:javascript复制nacos.discovery.server-addr=127.0.0.1:8848
4.2 集成和使用:动态配置
上传 配置文件
将你的配置文件 application.properties 通过web 上传到nacos。文件名格式一般是:{prefix}-{spring.profiles.active}.
- ${prefix} 是你的 应用的名字
- ${spring.profiles.active} 是活动的 profile 的名字,比如 dev,test
- ${file-extension} 是扩展名,比如 yml 或者 properties
添加依赖
代码语言:javascript复制<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>${latest.version}</version>
</dependency>
修改配置文件 application.properties
在 application.properties 中配置 Nacos server 的地址:
代码语言:javascript复制nacos.config.server-addr=127.0.0.1:8848
5.参考:
https://github.com/alibaba/nacos https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html