Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
nacos简介
Nacos 的关键特性包括:
- 服务发现和服务健康监测
- 动态配置服务
- 动态 DNS 服务
- 服务及其元数据管理
nacos架构
基础架构
逻辑架构及组件
nacos配置模型
上图是 Nacos 配置管理的基础模型:
Nacos 提供可视化的控制台,可以对配置进行发布、更新、删除、灰度、版本管理等功能。
SDK 可以提供发布配置、更新配置、监听配置等功能。
SDK 通过 GRPC 长连接监听配置变更,Server 端对比 Client 端配置的 MD5 和本地 MD5是否相等,不相等推送配置变更。
SDK 会保存配置的快照,当服务端出现问题的时候从本地获取。
nacos服务发现模块
服务发现
nacos健康检查机制
如果我们需要知道⼀个服务是否还健康,那么 第⼀种方式是客户端主动上报,告诉服务端自己健康状态,如果在⼀段时间没有上报,那么我们就认为服务已经不健康。第二种,则是服务端主动向客户端进行探测,检查客户端是否还被能探测到。
Nacos 中两种健康探测方式均有使用。
nacos配置管理模块
配置一致性模型
Server 间的⼀致性协议
有 DB 模式(读写分离架构)
⼀致性的核心是 Server 与 DB 保持数据⼀致性,从而保证 Server 数据⼀致;Server 之间都是对 等的。数据写任何⼀个 Server,优先持久化,持久化成功后异步通知其他节点到数据库中拉取最新 配置值,并且通知写入成功。
无 DB 模式
Server 间采用 Raft 协议保证数据⼀致性,行业大部分产品采用此模式,因此不展开介绍。Nacos提供此模式,是方便用户本机运行,降低对存储依赖。
SDK 与 Server 的⼀致性协议
SDK 与 Server ⼀致性协议的核心是通过 MD5 值是否⼀致,如果不⼀致就拉取最新值。
nacos2.x 长链接模式,配置变更,启动建立长链接,配置变更后,服务端推送变更配置列表,然后 SDK 拉取配置更新,因此通信效率大幅提升。
文档信息
- 本文作者:yindongxu
- 本文链接:https://iceblow.github.io/2021/12/07/Nacos/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)