Alibaba微服务组件Nacos注册中心Nacos

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

Nacos

简介

一个更易于构建云原生应用的动态服务发现(Nacos Discovery)、服务配置(Nacos Config)和服务管理平台。就是一个集成 注册中心 + 配置中心 + 服务管理 平台。

特性

  • 服务发现和服务健康监测
  • 动态配置服务
  • 动态DNS服务
  • 服务及元数据管理

Nacos 注册中心校演变过程

核心功能

服务注册

Nacos Client 会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如:ip地址、端口等信息。Nacos Server接受到注册请求后,就会把这些元数据信息存储到一个双层的内存Map中。

服务心跳

在服务注册后,Nacos Client会维护一个定时心跳来持续通知Nacos Server,说明服务一直处于可用状态,防止被剔除。默认5s一次心跳。

服务同步

Nacos Server集群之间会互相同步服务实例,用来保证服务信息一致性。

服务发现

服务消费者(Client)再调用服务提供者的服务时,会发送一个REST请求给Nacos Server,获取上面注册的清单,并且缓存在Nacos Client本地,同时会在Nacos Client本地开启一个定时任务定时拉取服务端最新的注册表信息更新到本地缓存。

服务健康检查

Nacos Service会开启一个定时任务用来检查注册服务实例的健康情况,对于超过15s没有收到客户端心跳的实例会将他的healthy属性改为false(客户端服务发现时不会发现),如果某个实例超过30s没有收到心跳,直接剔除该实例(被剔除的实例如果恢复发送心跳则会重新注册)

注册中心对比

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 Robin Fabio RoundRobin 不支持
雪崩保护 支持 支持 不支持 不支持 不支持
自动注销实例 支持 支持 支持 不支持 支持
访问协议 HTTP/DNS HTTP HTTP/DNS DNS TCP
监听支持 支持 支持 支持 不支持 支持
多数据中心 支持 支持 支持 不支持 不支持
跨注册中心同步 支持 不支持 支持 不支持 不支持
Spring Cloud集成 支持 支持 支持 不支持 支持
Dubbo集成 支持 不支持 支持 不支持 支持
K8S集成 支持 不支持 支持 支持 不支持

CAPC一致性;A可用性;P分区容错性