阿里Nacos系列——为什么要选择Nacos和Nacos的基础概念(持续更新)"/>
阿里Nacos系列——为什么要选择Nacos和Nacos的基础概念(持续更新)
前言
本系列是从头开始进行学习Nacos的相关知识,从相关概念到业务开发等等。本篇是第一篇,主要了解下Nacos的基础信息,方便大家技术选型。
入门篇:阿里Nacos系列——为什么要选择Nacos和Nacos的基础概念
入门篇:阿里Nacos系列——Nacos的核心概念
搭建篇:阿里Nacos系列——Nacos安装教程(带图–手把手教学)
搭建篇:阿里Nacos系列——(超详细、带图带源码)Nacos注册中心的搭建与测试
1 为什么要用Nacos
1.eureka 2.0闭源码了
2.开箱即用,上手简洁,暂时也没发现有太大的坑
3.nacos使用的raft协议,nacos集群的一致性要远大于eureka集群
4.因为nacos功能更加丰富,社区更加活跃
5.背靠国内大厂(经受双十一的考验),中英文文档
6.界面美观
Raft 的数据一致性策略
Raft 协议强依赖 Leader 节点来确保集群数据一致性。即 client 发送过来的数据均先到达 Leader 节点,Leader 接收到数据后,先将数据标记为 uncommitted 状态,随后 Leader 开始向所有 Follower 复制数据并等待响应,在获得集群中大于 N/2 个 Follower 的已成功接收数据完毕的响应后,Leader 将数据的状态标记为 committed,随后向 client 发送数据已接收确认,在向 client 发送出已数据接收后,再向所有 Follower 节点发送通知表明该数据状态为committed。
对比图
Nacos与Eureka详细对比图
Nacos与各种注册中心产品对比图
功能特点 | Nacos | Eureka | Consul | CoreDNS | Zookeeper |
---|---|---|---|---|---|
一致性协议 | CP+AP | AP | CP | — | CP |
健康检查 | TCP/HTTP/MYSQL/Client Beat | Client Beat | TCP/HTTP/gRPC/Cmd | — | Keep Alive |
负载均衡策略 | 权重/ metadata/Selector | Ribbon | Fabio | RoundRobin | — |
雪崩保护 | 有 | 有 | 无 | 无 | 无 |
自动注销实例 | 支持 | 支持 | 不支持 | 不支持 | 支持 |
访问协议 | HTTP/DNS | HTTP | HTTP/DNS | DNS | TCP |
监听支持 | 支持 | 支持 | 支持 | 不支持 | 支持 |
多数据中心 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
跨注册中心同步 | 支持 | 不支持 | 支持 | 不支持 | 不支持 |
SpringCloud集成 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
Dubbo集成 | 支持 | 不支持 | 不支持 | 不支持 | 支持 |
K8S集成 | 支持 | 不支持 | 支持 | 支持 | 不支持 |
ps: 简单来说,NB就完事了
2 什么是Nacos
Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。(配置中心、注册中心)
官方说明:Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
官方网址:
2.1 服务发现
动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。Nacos支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现。Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,您可以更容易地为您的服务实现断路器。
描述 | 主要开发者 | 状态 |
---|---|---|
服务注册与发现 | nkorange | 稳定 |
健康检查(服务端探测、客户端心跳) | xuanyin | 稳定 |
路由策略(权重、保护阈值、就近访问) | wangjianwei | 稳定 |
2.2 配置管理
动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易
描述 | 主要开发者 | 状态 |
---|---|---|
配置管理(发布、修改、查询、监听配置) | yanlinly | 稳定 |
灰度配置 | yanlinly | 稳定 |
加密配置 | 不支持 |
3 Nacos的特点
易于使用
- 动态配置管理、服务发现和动态的一站式解决方案
- 20多种开箱即用的以服务为中心的架构特性
- 基本符合生产要求的轻量级易用控制台
更适应云架构
- 无缝支持Kubernetes和Spring Cloud
- 在主流公共云上更容易部署和运行(例如阿里云和AWS)
- 多租户和多环境支持
生产等级
- 脱胎于历经阿里巴巴10年生产验证的内部产品
- 支持具有数百万服务的大规模场景
- 具备企业级SLA的开源产品
丰富的应用场景
- 支持限流、大促销预案和异地多活
- 直接支持或稍作扩展即可支持大量有用的互联网应用场景
- 流量调度和服务治理
4 现已支持的客户端
描述 | 主要开发者 | 状态 |
---|---|---|
Java客户端 | Nacos | 稳定 |
Go客户端 | atlanssia, lzp0412 | 稳定 |
Node.js客户端 | czy88840616, gxcsoccer | 稳定 |
Python客户端 | sanwei | beta |
C#客户端 | catcherwong | 推荐 |
C++客户端 | ||
PHP客户端 | ||
Spring客户端 | chuntaojun | 稳定 |
SpringBoot客户端 | chuntaojun | 稳定 |
5 总结
- Nacos = Spring Cloud注册中心 + Spring Cloud配置中心。
- Nacos是阿里开源的,Nacos 支持基于 DNS 和基于 RPC 的服务发现
- Nacos只需要简单的配置就可以完成服务的注册发现。
- Nacos还支持动态配置服务,可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置
- nacos功能更加丰富,社区更加活跃,背靠国内大厂(经受双十一的考验),中英文文档,界面美观。
更多推荐
阿里Nacos系列——为什么要选择Nacos和Nacos的基础概念(持续更新)
发布评论