按 Nacos 官网 的说法,它是一个提供便捷的服务发现、管理和配置平台。推敲 Nacos 的出产,首先它基于问题域思考所需实现的功能特性和非功能特性;再由特性思忖到逻辑架构图、领域模型、部署架构图、类视图等架构层面;再结合特性和架构图深入业务场景,完善功能实现策略;然后从开发生态这个宏观视角寻味 Nacos 需要支持的语言、技术栈;最后从市场投放这个目标视角总结 Nacos 的各种优势,并予以战略上的肯定。可以推想,Nacos 基于领域模型设计,比领域模型走得更远。
一句话需求
Nacos 充当微服务中的注册中心和配置中心。
当巨石项目被切割成多个支持动态扩展的微服务后,各个微服务的调用地址和数量都是动态可变的,注册中心的核心功能就是维护可调用的服务清单。遵循 C/S 架构,server 服务器维护着 client 可调用服务清单,并提供接口给 client 以查询其他服务信息;client 客户端一方面会将自己注册到 server 上,另一方面会从 server 上获取依赖的其他服务信息。常见的注册中心有 Eureka、Zookeeper、Consul、Dubbo。应用在不同环境中会有不同的配置,配置中心的目的即在于提供不同的配置能力。常见的配置中心有 spring cloud config、Apollo、Disconf、Diamond。
领域模型
注册中心
注册中心基于以下概念:Service 服务