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

相关推荐
π大星星️5 小时前
基于LNMP架构的个人博客系统部署
服务器·架构
程序员曼布5 小时前
主从架构:技术原理与实现
redis·mysql·架构
东阳马生架构9 小时前
Nacos源码—9.Nacos升级gRPC分析四
nacos
小小工匠13 小时前
架构思维:通用架构模式_系统监控的设计
架构·系统监控
敢敢のwings14 小时前
Dense 与 MoE 系列模型架构的全面对比与应用策略
架构
代码的奴隶(艾伦·耶格尔)15 小时前
微服务!!
微服务·云原生·架构
Cloud Traveler17 小时前
Kubernetes vs. OpenShift:深入比较与架构解析
架构·kubernetes·openshift
是垚不是土19 小时前
探秘高可用负载均衡集群:企业网络架构的稳固基石
运维·服务器·网络·云原生·容器·架构·负载均衡
RingWu1 天前
微服务架构-限流、熔断:Alibaba Sentinel入门
微服务·架构·sentinel
深蓝易网1 天前
深度拆解!MES如何重构生产计划与排产调度全流程?
大数据·运维·人工智能·重构·架构·制造