前言
服务发现的数据模型。
1. 服务发现数据模型
Nacos在经过阿里内部多年生产经验后提炼出的数据模型,则是一种服务-集群-实例的三层模型,这样基本可以满足服务在所有场景下的数据存储和管理。
命名空间
用于进行租户粒度的配置隔离,命名空间不仅适用于nacos的配置管理,同样适用于服务发下。Namespace的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置,服务)隔离等。
服务
提供给客户端的软件功能,通过预定义接口网络访问。
实例
提供一个或多个服务的具有可访问网络地址的进程,启动一个服务,就产生一个服务实例。
元信息
nacos数据描述信息,如服务版本,权重,容灾策略,负载均衡策略,鉴权配置,各种自定义标签,从作用范围来看,分为服务级别的元信息,集群的元信息以及实例的元信息。
元信息能够让nacos更具备扩展性,用于可以自定义数据用于描述实例,服务,集群等
集群
服务实例的集合,服务实例组成一个默认集群,集群可以被进一步按需求划分,划分的单位可以是虚拟集群,相同集群下的实例才能相互感知。
应用通过Namespace,Service ,Cluster(DEFAULT)的配置,描述了该服务向哪个环境的哪个集群注册实例。
spring:
application:
name: provider
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
namespace: 869a0c6d-267e-4aa1-96cb-552cb1632c72开发环境
cluster-name: DEFAULT集群的名称(默认为DEFAULT)
TIPS: 集群作为实例的隔离,同一个集群的实例才能互相感知。
TIPS: namepsace,cluster-name 如果不填写将会采用默认值,namespace的默认命名空间public,cluster-name的默认值是DEFAULT集群
2. 将实例注册到自定义的命名空间和集群
在配置里指定命名空间和集群后,重启实例。
此时可以看到dev下面注册了provider服务,并且该服务下包含一个TEST集群