在 Nacos 中,分级存储模型指的是对配置数据进行按照环境、集群、命名空间等维度进行分级管理和存储的机制。这种分级存储模型可以帮助开发团队更好地管理和使用配置信息,提高配置管理的灵活性和可维护性。
在 Nacos 中,分级存储模型主要包括以下几个概念:
1
命名空间(Namespace)
命名空间是 Nacos 中用来隔离配置信息的最小单位,每个命名空间都有独立的配置信息存储空间。通过命名空间,可以实现不同环境(如开发、测试、生产)或不同业务线的配置信息隔离存储。
1
组(Group)
在命名空间内部,可以使用组来进一步划分配置信息。同一个命名空间内的不同组可以存储不同业务模块的配置信息,便于管理和维护。
1
配置集(DataId)
配置集是 Nacos 中存储配置信息的最小单元,它由命名空间、组和配置键(DataId)唯一确定一条配置信息。通过配置集,可以对每个具体的配置项进行管理。
1
分级存储
Nacos 支持在命名空间、组和配置集三个维度上进行配置信息的存储和管理。通过合理地组织命名空间、组和配置集的关系,可以实现灵活的配置信息管理,并且方便不同环境和不同业务需求下的配置隔离和管理。
通过 Nacos 的分级存储模型,开发团队可以更加灵活地管理和使用配置信息,支持多环境、多集群的配置管理,同时也为微服务架构下的配置管理提供了良好的支持。
1.3、Eureka服务注册流程
1
服务提供者注册
●
服务提供者启动时,会向 Eureka 服务器发送注册请求,包括自身的实例信息(如 IP 地址、端口、服务名称等)。
●
Eureka 服务器接收到注册请求后,将服务提供者的实例信息注册到服务注册表中。
1
服务续约
●
服务提供者会定时向 Eureka 服务器发送心跳续约请求,以确认自身仍然存活。
●
如果 Eureka 服务器在一定时间内没有收到服务提供者的续约请求,将会将该实例从服务注册表中剔除。
1
服务发现
●
服务消费者在需要调用服务提供者时,会向 Eureka 服务器发送服务发现请求,获取可用的服务实例列表。
●
Eureka 服务器会返回可用的服务实例信息给服务消费者,服务消费者根据负载均衡策略选择合适的实例进行调用。
1
服务下线
●
当服务提供者需要下线时,会向 Eureka 服务器发送取消注册请求。
●
Eureka 服务器收到取消注册请求后,将该服务实例从服务注册表中移除,不再向其他服务消费者返回该实例信息。
1.4、Nacos与Eureka的区别
Eureka和Nacos的相似点有:
●
都支持服务注册发现功能
●
都有基于心跳的健康监测功能
●
都支持集群,集群间数据同步默认是AP模式,即最全高可用性
Eureka和Nacos的区别有:
●
Eureka的心跳是30秒一次,Nacos则是5秒一次
●
Eureka如果90秒未收到心跳,则认为服务疑似故障,可能被剔除。Nacos中则是15秒超时,30秒剔除。
●
Eureka每隔60秒执行一次服务检测和清理任务;Nacos是每隔5秒执行一次。
●
Eureka只能等微服务自己每隔30秒更新一次服务列表;Nacos即有定时更新,也有在服务变更时的广播推送
●
Eureka仅有注册中心功能,而Nacos同时支持注册中心、配置管理
●
Eureka和Nacos都支持集群,而且默认都是AP模式
2、Openfegin相关
2.1、OpenFeign的服务调用流程
●
获取请求中的serviceId
●
根据serviceId负载均衡,找出一个可用的服务实例
●
利用服务实例的ip和port信息重构url
●
向真正的url发起请求