当前位置: 首页 > news >正文

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:

<spring-cloud-alibaba.version>2.2.8.RELEASE</spring-cloud-alibaba.version>

通过 spi 机制注入:
image.png
注册 NacosAutoServiceRegistration 对象:
image.pngNacosAutoServiceRegistration 对象实现了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 所在位置:
image.png
源码如下图所示:
image.png

Nacos 中 gRPC

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

http://www.lryc.cn/news/249956.html

相关文章:

  • C语言--每日选择题--Day31
  • chrome vue devTools安装
  • Spring Security 6.x 系列(7)—— 源码分析之Builder设计模式
  • PyQt6 中自定义浮点型滑块类
  • 笔记,B+树
  • 代码随想录刷题题Day2
  • 【JAVA面向对象编程】--- 探索子类如何继承父类
  • 从浏览器控制台发送get,post请求
  • 海外问卷调查怎么批量做?可以用指纹浏览器吗?
  • HarmonyOS 位置服务开发指南
  • ThinkPHP6学生选课管理系统
  • uniapp如何与原生应用进行混合开发?
  • Csharp(C#)无标题栏窗体拖动代码
  • 李宏毅2020机器学习课程笔记(二)- 深度学习
  • 解决电脑蓝屏问题:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED,回到系统还原点
  • connectivity_plus 安卓build的时候报错
  • 系统部署安装-Centos7-Kafka
  • 94.STM32外部中断
  • 【Linux】快速上手自动化构建工具make/makefile
  • HarmonyOS
  • Docker安装Oracle18c 坑已排完,放心食用
  • 2023年第十二届数学建模国际赛小美赛C题雪崩防范求解分析
  • Nginx Openresty通过Lua+Redis 实现动态封禁IP
  • .Net 字符集与编解码
  • Spinnaker 基于 jenkins 触发部署
  • FLASK博客系列6——数据库之谜
  • Clickhouse UPDATE 和 DELETE操作
  • golang channel执行原理与代码分析
  • OpenCvSharp从入门到实践-(04)色彩空间
  • 100.有序数组的平方(力扣)