Nacos 简介
Nacos 在阿里巴巴起源于 2008 年五彩石项目,该项目完成了微服务拆分和业务中台建设,随着云计算和开源环境的兴起,2018 年我们深刻感受到开源软件行业的影响,因此决定将 Nacos 开源,输出阿里十年关于服务发现和配管管理的沉淀,推动微服务行业发展,加速企业数字化转型。
目前 Nacos 支持主流微服务开发语言 & 主流服务框架和配置管理框架,比如支持 Duboo 和 SCA, 还对接了一些云原生的组件比如 coreDNS 和 sentinel 等。
客户端语言方面支持诸如 Java、go python 等主流语言,还有近期刚发布正式版本的 C# 和 C++,在此感谢所有社区贡献者的支持。
Nacos 开源 2 年多以来,共发布了 34 个版本,其中有一些比较重要的里程碑版本;Nacos 还非常年轻,有很大的进步空间,欢迎社区及各界大佬一起共同建设。
Nacos 1.X 架构及问题
接下来我们看一下 nacos1.x 架构及其分析一下存在的比较重要的问题。首先来看一下架构简图。
Nacos 1.X 架构层次
Nacos 1.X 大致分为 5 层, 分别是接入、通信、功能、同步和持久化。
接入层是用户最直接交互的层面,主要有 Nacos 客户端,以及依赖客户端的 Dubbo 和 SCA 以及用户操作的控制台 Console 组成。客户端和 Console 进行服务和配置操作,统一通过 HTTP 的 OpenAPI 发起通信请求。
通信层主要基于 HTTP 的短连接请求模型进行,部分推送功能通过 UDP 进行通信。
功能目前有服务发现和配置管理,这层也就是实际管理服务和配置的业务层。
同步层有数据同步的 AP 模式 Distro 和 CP 模式 Raft,还有有一个最简易的水平通知 Notify,用处各不相同ÿ