Skip to main content

Nacos架构设计

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

Nacos 配置模型​

动态加载配置​

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

tip

命名空间(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 服务注册​

tip

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

Java SDK 服务发现​

spring boot 服务注册发现​

请参考:nacos spring 文档

spring cloud 服务注册(discovery)​

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

集群服务​

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