zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Nacos 学习笔记

2023-04-18 12:31:53 时间

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 启动命令:

sh startup.sh -m standalone

在 Linux/Unix/Mac下 .关闭服务器

sh shutdown.sh

3.3 访问 web 地址

打开网址 Http://localhost:8848/nacos 默认账户和密码都是 nacos

4. 和 Springboot 集成

4.1 集成和使用:服务发现

(1)添加依赖

<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-discovery-spring-boot-starter</artifactId>
    <version>${latest.version}</version>
</dependency>

(2) 修改配置文件 application.properties 中配置 Nacos server 的地址:

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

添加依赖

<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-config-spring-boot-starter</artifactId>
    <version>${latest.version}</version>
</dependency>

修改配置文件 application.properties

在 application.properties 中配置 Nacos server 的地址:

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