Nacos架构设计
整体架构分为用户层、业务层、内核层和插件,用户层主要解决用户使用的易用性问题,业务层主要解决服务发现和配置管理的功能问题,内核层解决分布式系统一致性、存储、高可用等核心问题,插件解决扩展性问题。
Nacos 配置模型
动态加载配置
在外部进行不重启外部配置热更新
提示
命名空间(Namespace):用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data D 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如数据库配置、限流阈值、降级开关)隔离等。如果在没有指定 Namespace 的情况下,默认使用 public 命名空间。
基础模型
- Nacos 提供可视化的控制台,可以对配置进行发布、更新、删除、灰度、版本管理等功能。
- SDK 可以提供发布配置、更新配置、监听配置等功能。
- SDK 通过 GRPC 长连接监听配置变更,Server 端对比 Client 端配置的 MD5 和本地 MD5是否相等,不相等推送配置变更。
- SDK 会保存配置的快照,当服务端出现问题的时候从本地获取。
配置管理
如何使用配置? Java SDK
Spring
Spring boot
拉取多个配置
服务管理
管理服务的基本操作是从服务中心根据名字(name)获取对应的主机ip或者是URL地址,类似于DNS。
- 服务注册
- 服务管理
Java SDK 服务注册
提示
要保证这个服务一直开着,注册信息才会一直显示在服务页面
Java SDK 服务发现
spring boot 服务注册发现
请参考:nacos spring 文档
spring cloud 服务注册(discovery)
引用@EnableDiscoveryClient服务注册,其实直接用spring带入即可
集群服务
修改conf/cluster文件,配置对应的ip地址,使用同一数据源启动进行配置即可。