什么是 Nacos
Nacos 是阿里巴巴开源的一款优秀的中间件,在分布式微服务场景下用的非常多。
Nacos 英文全称 Naming and Configuration Service,其中 Na 是 naming 的缩写,注册中心;co为 configuration 的缩写, 配置中心;
不管是配置中心还是注册中心本质都是围着服务(微服务)转的,用官方的话来说:服务在 Nacos 里是一等公民。
Nacos 分为服务端和客户端,这一点不要含糊。
Nacos Server
Nacos Server 使用 Java 语言编写,提供了服务注册发现和服务配置功能;对外提供了 SDK 接入以及HTTP RESTful 开放接口,SDK 接入和 RESTful 接口的功能是一致的。
Nacos Client
Nacos提供了官方的 SDK,遗憾的是只有 Java 版本,官方的 SDK 可以很方便与一些主流的框架进行集成,比如:Spring Cloud、Dubbo 等。
Nacos Client 主要的作用是订阅获取服务实例信息以及配置信息。
数据模型
在 Nacos中最重要的就是服务,为了方便管理还引入了数据模型这个概念,数据模型主要分为命名空间、集群、服务。
数据模型主要作用是给服务分类,方便维护管理。如果觉得抽象,简单举个例子:假如你叫张三,生活在武汉,国籍是中国,在其他城市或者省也有张三这个人。
Nacos 注册中心原理
服务注册成功后,为了向 Nacos Server 报告自己的健康状态,客户端每5秒向 Nacos server发送一次心跳,心跳带上了服务名,服务ip,服务端口等信息。当然 Nacos server 也会向 client 主动发起健康检查,支持tcp/http检查。
如果15秒内无心跳且健康检查失败则会将该实例标记为不健康的状态,如果30秒内健康检查再次失败则会直接剔除实例。
服务消费者订阅成功后,如果服务提供者的实例不健康或者被剔除掉了,Nacos Server 会发送变更通知。
热门跟贴