数据模型

NameSpaceGroupService/DataId目的是为了将数据模型分类,从而形成一定的效果,比如服务隔离,不同的NameSpace中的服务不能够相互访问

数据模型的最佳实践

  • NameSpace:代表不同的运行环境,Dev/Test/Prod
  • Group:代表某一类配置,如中间件配置,数据库配置等
  • Service/DataId:代表某服务的具体配

领域模型


Nacos的三层分级模型(服务、集群、实例)主要是为了解决大型互联网公司多集群,跨DC的解决方案

  • NameSpace:实现环境隔离,默认值Public
  • Group:不同的Service可以组成一个Group,默认值为Default-Group
  • Service:服务名称
  • Cluster:对指定的微服务虚拟划分,默认值为Default
  • Instance:某个服务的具体实例

Nacos服务注册中心架构


由官网给出的Nacos服务注册中心架构图来看,在Nacos Server中对外开放了一套OpenAPI,在服务注册与发现的所有流程中都必须通过Nacos Server提供的OpenAPI调用,Nacos Server中还有Config ServiceNaming Service分别提供配置中心与服务注册发现的功能,Consistency Protocol则是分布式一致性协议,Nacos Console则是提供的可视化操作界面

Nacos服务注册中心基本原理


当服务启动完成后,服务提供方使用OpenAPI发起服务注册,服务提供方与Nacos Server建立心跳,服务消费者去查询服务提供方注册的实例列表,并且每10S轮询拉取,这里不断去轮询新列表主要是为了避免通过心跳检查服务状态发生异常,保证消费者永远都是消费的活服务

如果通过心跳机制发现服务提供者发生异常,无法提供服务,Nacos Server会基于UDP协议对服务消费者进行推送更新,对发生异常的服务进行剔除,由于Nacos内部是使用ConcurrentHashMap存储服务的注册信息,所以会直接从mapremove

最后修改:2021 年 11 月 15 日 05 : 28 PM
如果觉得我的文章对你有用,请随意赞赏