跳到主要内容

Nacos架构设计

整体架构分为用户层、业务层、内核层和插件,用户层主要解决用户使用的易用性问题,业务层主要解决服务发现和配置管理的功能问题,内核层解决分布式系统一致性、存储、高可用等核心问题,插件解决扩展性问题。

Nacos 配置模型

动态加载配置

在外部进行不重启外部配置热更新

提示

命名空间(Namespace):用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data D 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如数据库配置、限流阈值、降级开关)隔离等。如果在没有指定 Namespace 的情况下,默认使用 public 命名空间。

基础模型

  1. Nacos 提供可视化的控制台,可以对配置进行发布、更新、删除、灰度、版本管理等功能。
  2. SDK 可以提供发布配置、更新配置、监听配置等功能。
  3. SDK 通过 GRPC 长连接监听配置变更,Server 端对比 Client 端配置的 MD5 和本地 MD5是否相等,不相等推送配置变更。
  4. SDK 会保存配置的快照,当服务端出现问题的时候从本地获取。

配置管理

如何使用配置? Java SDK

Spring

Spring boot

拉取多个配置

服务管理

管理服务的基本操作是从服务中心根据名字(name)获取对应的主机ip或者是URL地址,类似于DNS。

  1. 服务注册
  2. 服务管理

Java SDK 服务注册

提示

要保证这个服务一直开着,注册信息才会一直显示在服务页面

Java SDK 服务发现

spring boot 服务注册发现

请参考:nacos spring 文档

spring cloud 服务注册(discovery)

引用@EnableDiscoveryClient服务注册,其实直接用spring带入即可

集群服务

修改conf/cluster文件,配置对应的ip地址,使用同一数据源启动进行配置即可。