一、什么是Nacos
Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。
官方介绍是这样的:
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。
二、Nacos的作用
服务发现和服务健康监测
Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TODO 或HTTP&API TODO查找和发现服务。
Nacos 提供实时健康检查,阻止服务向不健康的主机或服务实例发送请求。Nacos 支持传输层(PING 或 TCP)和应用层(如 HTTP、Redis、MySQL、用户自定义)的健康检查。 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘服务等)服务的健康检查,Nacos 提供了 agent 模式和服务端2种健康检查模式。Nacos 还提供统一的健康检查仪表盘,帮助您管理服务可用性及流量。
动态配置服务
动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。
动态配置消除了配置变更时重新部署应用和服务的需要,让配置变得更加高效和敏捷。
配置中心化管理让无状态服务实现变得更简单,让服务按需弹性扩展变得更容易。
Nacos 提供了一个 简单易用的UI TODO 帮助您管理所有的服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、回滚配置以及客户进程配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助您更安全地管理配置变更和控制配置变更的风险。
动态 DNS 服务
动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。
Nacos 提供了一些简单的 DNS APIs TODO 帮助您管理服务的关联域名和可用的 IP:PORT 列表.
服务及其元数据管理
Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 Metrics 统计数据。
三、与其他类似组件对比
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集成
支持
不支持
支持
支持
不支持
四、Docker安装Nacos
Clone 项目
git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
集群模式
docker-compose -f example/cluster-hostname.yaml up
Nacos 控制台