Spring cloud - Nacos
注册instance是什么存储的? 临时节点存在内存,持久节点持久化到磁盘文件 data/naming/namespace的id
nacos: 拉取 持久实例和临时实例一次性全部拉取的。
配置数据是什么存储的?derby mysql
服务心跳:默认5s发送一次心跳;
服务健康检查:对于超过15s没有收到客户端心跳的实例会将它的healthy属性设置为false(客户端服务发现时不会发现),如果某个实例超过30秒没有收到心跳,直接剔除该实例(被剔除的实例如果恢复心跳则会重新注册)
内存注册表:
service 就是微服务
Map<namespace, Map(group::serviceName, Service);
namespace: 隔离的作用 因为隔离所以环境没有处理好可能会出现:No instance available from xxx
group::serviceName 隔离作用; group:所有服务用同一个group(通常用于配置中心,起到环境隔离作用)
Map<String, Cluster> clusterMap 集群 性能:尽可能的同一集群(ribbon 负载均衡算法:优先使用同一集群的节点)
@JsonIgnore
private Set<Instance> persistentInstances = new HashSet<>(); # 持久实例
@JsonIgnore
private Set<Instance> ephemeraInstances = new HashSet<>(); # 临时实例
RestTemplate扩展点:ClientHttpRequestInterceptor
Nacos是如何完成自动注册的?
NacosNamingService#registerInstance <---NacosServiceRegistry#registry <---- AbstractAutoServiceRegistration(完成自动注册的核心,实现了ApplicationListenerj监听器) <--- ApplicationListener#onApplicationEvent
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)