美文网首页
Nacos 2.1 注册中心原理

Nacos 2.1 注册中心原理

作者: 枫叶红花 | 来源:发表于2023-01-18 17:40 被阅读0次

一、Nacos的核心要点

服务注册:Nacos Client通过发送请求的方式,向Nacos Server注册自己的服务,同时客户端提供元数据、IP地址、端口等信息。Nacos Server接收到client的请求之后,会把该实例注册到内存中的注册表(Map)中。
服务心跳:(2.1使用了grpc长链接方式,因此变成服务端检查客户端心跳)nacos 1.4中在服务注册成功后,Nacos client会维护一个定时心跳来持续通知Nacos Server,说明当前Nacos Client一直处于运行中,防止被Nacos Server剔除。Nacos Client默认5s发送一次心跳信息。
服务端健康检查:Nacos Server开启一个定时任务,每隔3s执行一次。Nacos Client超过20s没有发送心跳给Nacos Server,Nacos Server将发送请求探活,探活失败后将该Client剔除。
服务的发现:Nacos 2.1中新增了服务的订阅功能,Nacos Client在获取服务端注册表的数据时,会默认订阅该服务,Nacos Client会定时查询注册表数据并更新到本地副本中,默认6s一次。如果订阅的服务有变动,Nacos Server也会主动推送给所有订阅该服务的Client。
服务的同步:Nacos Server集群之间会互相同步服务实例,用于保证服务信息的一致性。

二、Nacos Client向服务端注册实例

2.1 Nacos Client发送注册请求

首先找到Nacos Client的自动配置类: image.png 在自动配置类NacosServiceRegistryAutoConfiguration里面找到NacosAutoServiceRegistration#register()。 image.png

2.2 Nacos Server处理客户端的注册请求

InstanceRequestHandler#registerInstance将处理客户端注册实例的请求: image.png

然后EphemeralClientOperationServiceImpl#register方法会把实例信息添加到注册表中,接着会发布ClientEvent.ClientChangedEvent、ClientOperationEvent.ClientRegisterServiceEvent、MetadataEvent.InstanceMetadataEvent这三个事件。

2.3 当服务端注册表发生改变时,会主动推送数据

NacosDelayTaskExecuteEngine在这个类中,会去处理变动的服务,并推送给所有订阅了该服务的客户端。

最终会在PushExecuteTask#run()方法中向所有订阅的客户端发起推送: image.png

三、客户端获取服务端最新的注册表

3.1 客户端发起请求

入口在NacosNamingService.selectInstances() image.png

3.2 服务端响应请求

入口在SubscribeServiceRequestHandler.handle() image.png

四、服务端检查客户端是否存活

入口在ConnectionManager.start()
1.在这个方法中,主要是区分哪些client已经过期,并把过期的client存放到outDatedConnection集合中。
2.服务端会对过期的client进行一次探活操作,没有1s无响应,直接剔除该客户端。
3.发送该事件ClientDisconnectEvent,然后执行异步更新注册表、集群数据同步。

五、Nacos集群节点同步数据

入口在DistroClientDataProcessor.onEvent() image 分支逻辑: image

相关文章

  • Nacos 2.1 注册中心原理

    一、Nacos的核心要点 服务注册:Nacos Client通过发送请求的方式,向Nacos Server注册自己...

  • 从实现原理来讲,Nacos 为什么这么强?

    今天来分享一下Nacos注册中心的底层原理,从服务注册到服务发现,非常细致 一. Nacos介绍 再讲Nacos之...

  • 000-[Dubbo]开局

    1、写作背景 在此记录,以备遗忘 2、核心操作 2.1、[Dubbo]Nacos注册中心

  • 微服务技术栈

    1,注册中心:Eureka: 2,注册中心:Nacos: 3,统一配置:Nacos

  • Spring Cloud Alibaba Nacos 原理:推+

    上篇文章《Nacos 配置中心原理分析》我和大家分析了 Nacos 的配置中心原理,主要分析了 Nacos 客户端...

  • 【Spring Cloud Alibaba】Nacos

    《Nacos》 启动注册中心 您需要先下载 Nacos 并启动 Nacos server。操作步骤参见 Nacos...

  • nacos学习一服务注册

    1、启动nacos注册中心 nacos可视化页面地址 http://localhost:8848/nacos/in...

  • Nacos使用备忘

    写在前面 Nacos就是注册中心+配置中心,基本等价于:Nacos = Eureka + Config + Bus...

  • 简单微服务项目搭建

    本示例服务注册中心使用nacos-discovery,配置中心使用nacos-config,网关使用Spring ...

  • nacos注册中心

    一、作用 微服务架构中最核心的部分是服务治理,服务治理最基础的组件是注册中心 二、注册中心 1、常见的注册中心 S...

网友评论

      本文标题:Nacos 2.1 注册中心原理

      本文链接:https://www.haomeiwen.com/subject/rfkfhdtx.html