什么是 Nacos?

2018年夏天,国内微服务领域,迎来了一位新成员。此后,在构建微服务注册中心和配置中心的过程中,国内开发者多了一个可信赖的选项。那便是Nacos。
Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

Nacos特性

Nacos 的关键特性包括:

  • 服务发现和服务健康监测Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDKOpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TODOHTTP&API查找和发现服务。Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等)服务的健康检查,Nacos 提供了 agent 上报模式和服务端主动检测2种健康检查模式。Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。
  • 动态配置服务动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。Nacos 提供了一个简洁易用的UI (控制台样例 Demo) 帮助您管理所有的服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助您更安全地在生产环境中管理配置变更和降低配置变更带来的风险。
  • 动态 DNS 服务动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以 DNS 协议为基础的服务发现,以帮助您消除耦合到厂商私有服务发现 API 上的风险。Nacos 提供了一些简单的 DNS APIs TODO 帮助您管理服务的关联域名和可用的 IP:PORT 列表.
  • 服务及其元数据管理Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。
  • 更多的特性列表 …

为什么要开源Nacos?

在大规模服务发现和服务治理领域,现有的开源解决方案并非已经非常完美,阿里巴巴从IOE集中式应用架构升级为互联网分布式服务架构的演化过程中,积累了大量有关服务注册和服务配置的实践经验,而这些经验是可以在各个行业大规模复用。除此之外,更重要的是,希望和社区开发者共同发展,让Nacos可以帮助国内企业更自由的构建基于云原声应用的动态服务发现、配置和服务管理。

相比于其他服务注册和配置中心开源方案,Nacos的起步虽然晚了点,但除了注册和配置中心的功能外,还提供了动态服务发现、服务共享与管理的功能,在大规模场景下具备更优秀的性能,在易用性上更便捷、分布式部署上更灵活。例如和Consul/Eureka/Zookeeper相比:(内容摘自《主流微服务注册中心浅析和对比》)

Nacos Consul Eureka Zookeeper
一致性协议 CP+AP CP AP CP
健康检查 TCP/HTTP/MYSQL/Client Beat TCP/HTTP/PRC/CMD Client Beat Keep Alive
负载均衡策略 权重/metadata/Selector Fabio Rabbion -
雪崩保护
自动注销实例 支持 不支持 支持 支持
访问协议 HTTP/TCP HTTP/DNS HTTP TCP
监听支持 支持 支持 支持 支持
多数据中心 支持 支持 支持 不支持
跨注册中心同步 支持 支持 不支持 不支持
Spring Cloud集成 支持 支持 支持 支持
Dubbo集成 支持 支持 不支持 支持
K8S集成 支持 不支持 不支持 不支持

阿里云微服务引擎MSE

阿里云微服务引擎(MSE)是开源注册、配置中心的全托管平台,提供高可用、免运维的ZooKeeper、Nacos注册中心和Eureka等集群,完全兼容开源产品标准接口,无需修改代码、开箱即用,并为客户提供相应的监控和运维工具。
产品官网:https://www.aliyun.com/product/mse
那么,MSE托管的注册中心,和开源自建注册中心究竟有什么区别?可以通过下面这张表进行对比。

对比项 自建注册中心 MSE注册中心
成本 资源成本 ECS费用 支持按时/包年包月
人力成本 专人维护运维 自动化运维,门槛低
高可用 容灾能力 支持多机房,多区域容灾
宕机处理 手动处理 自动探测,自动恢复
活性探测 不支持 支持进程活性探测,失败自动恢复
功能 数据管理 命令行 页面可视化,支持增删改查
访问方式 机器IP直连,代码要变 域名,转换器,不需要变动
业务报警 支持核心业务指标
网络方式 本地网络 VPC网络,公网
服务管理 不支持 服务提供者,订阅者管理页面
集群权限管理 不支持 支持子账号管理
TPS/QPS统计 不支持 提供TPS,QPS监控视图
运维 集群观测 页面可视化,查看节点健康状态,角色
监控图表 提供多种指标如Znode,链接树图形视图
配置运维 手动修改,手动重启 页面修改,一键重启生效
节点伸缩 手动扩缩容,手动重启 页面选择,一键扩缩容
性能伸缩 不支持 页面选择,一键伸缩

Nacos安装

Nacos下载地址:https://github.com/alibaba/nacos/releases
目前,Nacos的最新版本为2.1.0。
image.png

Windows

安装教程:略

Linux

  1. 下载

    1. curl -LJO https://github.com/alibaba/nacos/releases/download/v2.1.0/nacos-server-2.1.0.tar.gz
  2. 解压 ```shell tar -zxvf nacos-server-2.1.0.tar.gz

``` 3.启动

Nacos在Spring Cloud中的集成

参考文档

Nacos文档