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 通讯;

相关推荐
郭涤生1 小时前
第七章:从类库到服务的分布式基石_《凤凰架构:构建可靠的大型分布式系统》
笔记·分布式·架构
“逛丢一只鞋”2 小时前
从2G到5G:认证体系演进与网元架构变迁深度解析
5g·架构
郭涤生4 小时前
第十三章:持久化存储_《凤凰架构:构建可靠的大型分布式系统》
笔记·分布式·架构·系统架构
郭涤生4 小时前
第二章:访问远程服务_《凤凰架构:构建可靠的大型分布式系统》
笔记·架构·系统架构
橙序员小站5 小时前
探究分布式哈希算法:哈希取模与一致性哈希
算法·架构
阿湯哥6 小时前
VLAN详解
架构
扫地的小何尚9 小时前
使用NVIDIA NIM微服务加速科学文献综述
开发语言·数据结构·人工智能·深度学习·微服务·云原生·架构
郭涤生9 小时前
第十章: 可观测性_《凤凰架构:构建可靠的大型分布式系统》
笔记·分布式·架构·系统架构
zkmall13 小时前
ZKmall开源商城多云高可用架构方案:AWS/Azure/阿里云全栈实践
架构·开源·aws
javastart14 小时前
深入解析大型应用架构:以dify为例进行分析
人工智能·架构·开源