Nacos 2.X核心架构源码剖析

概述

  • 注册中心并发处理,1.4.x 写时复制,2.1.0 读写分离;
  • nacos 一般使用 AP 架构,即临时实例,1.4.x 为 http 请求,2.1.0 优化为 gRPC 协议;
  • 源码中使用了大量的事件通知机制和异步定时线程池;
  • 源码中添加了对应的注释,后期再画流程图;

源码仓库:https://gitee.com/firechou/source-nacos-2.1.0.git

客户端启动

客户端 pom.xml 引入 client:

bash 复制代码
<spring-cloud-alibaba.version>2.2.8.RELEASE</spring-cloud-alibaba.version>

通过 spi 机制注入:

注册 NacosAutoServiceRegistration 对象:
NacosAutoServiceRegistration 对象实现了ApplicationListener 类,需要实现里面的 onApplicationEvent 方法,调用 this.start() 》 this.register() 》 this.serviceRegistry.register(this.getRegistration()) (即 NacosServiceRegistry#register,上图注入的 bean),再调用 namingService.registerInstance(serviceId, group, instance),最终调用源码中 client 包的 NacosNamingService#registerInstance(String, String, Instance) 方法,到此可以跟着下载的源码包继续分析了。

com.alibaba.cloud.nacos.registry.NacosServiceRegistry#register 所在位置:

源码如下图所示:

Nacos 中 gRPC

临时实例 AP 架构通过 gRPC 通讯;

相关推荐
闲人编程6 小时前
Django微服务架构:单体应用拆分解耦实践
微服务·架构·消息队列·django·api·通信·codecapsule
颜颜yan_6 小时前
基于CANN多Stream异步执行的智能推理管道:突破传统串行瓶颈
运维·架构·stream·昇腾·cann
吴法刚7 小时前
Gemini cli 源码分析之-Agent分析-Agent架构系统分析
架构·agent·ai编程·gemini
拾忆,想起7 小时前
Dubbo服务超时与重试策略配置指南:构建 resilient 微服务架构
服务器·网络·微服务·云原生·架构·dubbo
q***51898 小时前
【语义分割】12个主流算法架构介绍、数据集推荐、总结、挑战和未来发展
算法·架构
车载诊断技术8 小时前
电子电气架构 --- 国外对于EE架构的设计方案(上)
架构·汽车·硬件架构·电子电气架构·整车eea简述
颜颜yan_8 小时前
基于昇腾CANN的智能视频分析系统落地实践
架构·音视频·昇腾
杭州杭州杭州8 小时前
实验3 微服务介绍以及开发环境搭建
微服务·云原生·架构
r***86988 小时前
springboot三层架构详细讲解
spring boot·后端·架构