目录
2、为什么 Nacos 选择了 Raft 以及 Distro
一、简介
Nacos 起源
Nacos 在阿里巴巴起源于 2008 年五彩石项目(完成微服务拆分和业务中台建设),成长于十年双十⼀的洪峰考验,沉淀了简单易用、稳定可靠、性能卓越的核心竞争力。 随着云计算兴起,2018 年将 Nacos(阿里内部 Configserver/Diamond/Vipserver 内核) 开源,输出阿里十年的沉淀,推动微服务行业发展,加速企业数字化转型!
Nacos 定位
Nacos/nɑ:k əʊ s/ 是 Dynamic Na ming and Co nfiguration S ervice 的首字母简称;⼀个更易于构 建云原生应用的动态服务发现、配置管理和服务管理平台。官网: https://nacos.io/ 仓库: https://github.com/alibaba/nacos![]()
Nacos 优势
- 易⽤:简单的数据模型,标准的 restfulAPI,易用的控制台,丰富的使用文档。
- 稳定:99.9% 高可用,脱胎于历经阿里巴巴 10 年生产验证的内部产品,支持具有数百万服务的大规模场景,具备企业级 SLA 的开源产品。
- 实时:数据变更毫秒级推送生效;1w 级,SLA 承诺 1w 实例上下线 1s,99.9% 推送完成;10w 级,SLA 承诺 1w 实例上下线 3s,99.9% 推送完成;100w 级别,SLA 承诺 1w 实例上下线 9s 99.9% 推送完成。
- 规模:十万级服务/配置,百万级连接,具备强大扩展性。
![]()
二、Nacos 总体设计
1)Nacos 架构
1、设计原则
- 极简原则,简单才好用,简单才稳定,简单才易协作。
- 架构⼀致性,⼀套架构要能适应开源、内部、商业化(公有云及专有云)3 个场景。
- 扩展性,以开源为内核,商业化做基础,充分扩展,方便用户扩展。
- 模块化,将通用部分抽象下沉,提升代码复用和健壮性。
- 长期主义,不是要⼀个能支撑未来 3 年的架构,而是要能够支撑 10 年的架构。
- 开放性,设计和讨论保持社区互动和透明,方便大家协作。
2、架构图
整体架构分为用户层、业务层、内核层和插件,用户层主要解决用户使用的易用性问题,业务层主要解决服务发现和配置管理的功能问题,内核层解决分布式系统⼀致性、存储、高可用等核心问题,插件解决扩展性问题。![]()
3、用户层
- OpenAPI:暴露标准 Rest 风格 HTTP 接口,简单易用,方便多语言集成。
- Console:易用控制台,做服务管理、配置管理等操作。
- SDK:多语言 SDK,目前几乎支持所有主流编程语言。
- Agent:Sidecar 模式运行,通过标准 DNS 协议与业务解耦。
- CLI:命令行对产品进行轻量化管理,像 git ⼀样好用。