nacos在同一个命名空间下的不同分组内可以有相同名称的配置文件
同一分组下是不可以的
启动时的分组可以在bootstrap.properties中指定.
定义配置文件时,只有默认的配置文件名(默认与服务同名)可以和 profile 联合使用, 公共配置文件可以在bootstrap.properties中指定 shared-configs(支持数组) 或 extension-configs
当出现多个公共配置文件时,后读取到的配置文件会覆盖先读取同等优先级的公共配置文件(下标越大优先级越大),
配置文件的优先级为:profile> 默认配置文件>extension-configs(下标越大优先级就越大)>shared-configs(下标越大)
服务注册结构
Nacos采用了数据的分级存储模型,最外层是Namespace,用来隔离环境。然后是Group,用来对服务分组。接下来就是服务(Service)了,一个服务包含多个实例,但是可能处于不同机房,因此Service下有多个集群(Cluster)Cluster下是不同的实例 (Instance)。 对应到ava代码中,Nacos采用了一个多层的Map来表示。结构为Map<String,Map<String,Service>>,其中最外层Map的key就是namespaceld,值是一个Map。内层Map的key是qroup拼接serviceName,值是Service对象。Service对象内部又是一个Map,key是集群名称,值是Cluster对象。而Cluster对象内部维护了Instance的集合。
namespace(map) ---> key:nameSpace value:group分组
group(map) ---> key:groupName value : Service对象
service(map) ---> key:集群名称 value:cluster (本身对象集合)
cluster (set) ---> Set(Instance)