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 小时前
[嵌入式系统-134]:智能体以及其嵌入式硬件架构
科技·嵌入式硬件·架构·嵌入式·gpu
fakerth2 小时前
【OpenHarmony】医疗传感器模块架构
架构·操作系统·openharmony
没有bug.的程序员4 小时前
云原生与分布式架构的完美融合:从理论到生产实践
java·分布式·微服务·云原生·架构
JanelSirry5 小时前
分布式和微服务的区别是什么?
分布式·微服务·架构
徐子童5 小时前
基于微服务的在线判题系统重点总结
java·微服务·架构
飞哥的AI笔记7 小时前
AI群星闪耀时:从识别到思考的认知升级
架构
迎風吹頭髮7 小时前
Linux内核架构浅谈44-Linux slab分配器:通用缓存与专用缓存的创建与使用
linux·spring·架构
在云上(oncloudai)7 小时前
Amazon ElastiCache 全解析:打造高性能的智能缓存架构
缓存·架构
半夏微凉半夏殇7 小时前
除了arm 还有那些开源的芯片架构
arm开发·架构·开源
白衣鸽子8 小时前
CAP理论:分布式系统的“不可能三角”
后端·架构