x
博客园Logo
首页
新闻
博问
专区
闪存
班级
代码改变世界
搜索
注册
登录
返回主页
bluedarkni
笨鸟也要飞,蜗牛也要爬呀…
博客园
首页
新随笔
联系
订阅
管理
nacos注册中心源码流程分析
作为一个注册中心,和eureka类似,核心的功能点:
1.服务注册:nacos客户端携带自身信息向nacos服务端进行注册。
2.服务心跳:客户端定时向服务端发送心跳,告知服务端自己处于可用状态
3.服务健康检查:服务端定时检查客户端是否有发送心跳,如果超过15s没有收到心跳,那么就会将该客户端实例设置为不健康状态,如果超过30s没有收到心跳则会剔除该客户端实例
4.服务同步:服务端为了高可用,通常都是集群模式,那么集群之间需要进行数据的同步。
5.服务发现:客户端向服务端查询所有注册的服务列表。客户端获取到之后会放入自己的本地缓存,需要使用的时候,先从本地缓存拿,没有再去服务获取。同时还有定时任务,去服务端拉取注册列表,更新本地缓存,如果失败拉取的间隔时间会根据失败次数增加。
源码分析:
从客户端开始入手,切入点当然是spring-cloud-starter-alibaba-nacos-discovery包的spring.factories文件中的自动配置类
1.最为关键的就是NacosDiscoveryAutoConfiguration 和 NacosServiceRegistryAutoConfiguration 这两个配置类了,eureka是通过SmartLifecycle整合进spring的,从配置类中创建的NacosAutoServiceRegistration这个类,追溯一下可以看到这个是实现了ApplicationListener接口,所以nacos是通过这个接口整合进spring的
2.nacos源码中很多地方都是初始化的时候就设置好了定时任务,或者线程池,后续的任务都是直接扔进去执行就是了。
3.nacos提供了AP和CP 两种模式。非持久化实例注册,数据放在内存中,和eureka类似,集群节点之间都是点对点的。如果是持久化实例,则是CP模式,集群节点会有leader和follower,客户端注册的数据会写入磁盘,节点重启时会从磁盘上把数据读取出来。
4.和eureka不同的是,nacos还有主动推送功能,eureka的注册列表发生改变的时候,eureka是失效读写缓存,等待下一次只读缓存(如果使用了)来更新时,重建读写缓存,或者客户端拉取数据时重建读写缓存。nacos并没有使用多级缓存。当注册列表发生改变时,会发送ServiceChangeEvent事件,然后主动向客户端推送信息
源码关键流程图:基于1.4.0
分类: cloudAlibaba
好文要顶 关注我 收藏该文
白露非霜
关注 - 36
粉丝 - 23
+加关注
0 0
« 上一篇: nacos配置中心使用
posted @ 2020-12-23 21:19 白露非霜 阅读(56) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
登录后才能发表评论,立即 登录 或 注册, 访问 网站首页
写给园友们的一封求助信
【推荐】News: 大型组态、工控、仿真、CADGIS 50万行VC++源码免费下载
【推荐】有你助力,更好为你——博客园用户消费观调查,附带小惊喜!
【推荐】博客园x丝芙兰-圣诞特别活动:圣诞选礼,美力送递
【推荐】了不起的开发者,挡不住的华为,园子里的品牌专区
【福利】AWS携手博客园为开发者送免费套餐+50元京东E卡
【推荐】未知数的距离,毫秒间的传递,声网与你实时互动
【推荐】新一代 NoSQL 数据库,Aerospike专区新鲜入驻
相关博文:
· AlibabaNacos学习(四):NacosDocker
· KubernetesNacos
· Nacos简单配置
· Nacos配置中心
· springboot+springcloud+nacos实战
» 更多推荐…
最新 IT 新闻:
· 红帽为CentOS的决定辩护 声称Stream版本可以覆盖当前95%的用户场景
· 美国宇航局可能已经捕捉到了太阳纳米耀斑的全生命周期
· 京东“京蜓”无人机在自贡成功首飞
· 《光环:士官长合集》开发商宣布加入腾讯:会变得更好
· 游族爆高层内斗CEO被投毒住院 警方通报来了:光速反转
» 更多新闻…
公告
昵称: 白露非霜
园龄: 3年4个月
粉丝: 23
关注: 36
+加关注
< 2020年12月 >
日 一 二 三 四 五 六
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9
搜索
找找看
谷歌搜索
最新随笔
1.nacos注册中心源码流程分析
2.nacos配置中心使用
3.基于nacos注册中心的ribbon定制规则
4.Zookeeper(5)—分布式锁
5.Eureka相关相关接口和代码位置
6.Zookeeper(4)—ZK集群部署和选举
7.Zookeeper(3)—java客户端的使用
8.Zookeeper(2)—节点属性、监听和权限
9.Zookeeper(1)—初识
10. RocketMQ(2)—核心概念、特性、使用等
积分与排名
积分 - 65372
排名 - 15157
随笔分类
cloudAlibaba(5)
ELK(4)
hibernate(2)
java(7)
javaee(4)
java并发(7)
jvm(5)
MyBatis(3)
Mysql(3)
Nginx(3)
redis(6)
spring(8)
Spring_boot/cloud(10)
springMVC(2)
struts2(3)
更多
随笔档案
2020年12月(4)
2020年11月(2)
2020年10月(3)
2020年6月(4)
2020年5月(9)
2020年4月(12)
2020年3月(11)
2020年2月(9)
2020年1月(2)
2019年12月(7)
2019年11月(1)
2019年10月(4)
2019年9月(3)
2019年8月(4)
2019年7月(4)
更多
最新评论
- Re:nacos配置中心使用
@可少 看自己喜欢用什么呗…
–白露非霜 - Re:nacos配置中心使用
nacos的前端配置管理功能就是个半成品
–可少 - Re:mysql索引数据结构
@五十块钱行不行 是不是图灵学院的诸葛老师…
–学习路中。。 - Re:面试问题—JAVA程序CPU占用过高怎么定位
赞
–娄思毅 - Re:Swagger结合mustache模板生成后台接口代码、以及前后台建模代码
有些人私信我,这里有个项目可以直接运行的,里面有Test直接运行就可以了,,可以生成controller文件,service的接口,还有对应的实体bean的文件 链接: 提取码:04wc…
–白露非霜
阅读排行榜 - mysql索引数据结构(14946)
- 搭建一个简单的Eureka程序(5821)
- Redis集群搭建及选举原理(4410)
- Swagger结合mustache模板生成后台接口代码、以及前后台建模代码(3168)
- VMware安装虚拟机及网络配置(3159)
评论排行榜 - 算法—贪心算法和动态规划(3)
- mysql索引数据结构(3)
- Swagger结合mustache模板生成后台接口代码、以及前后台建模代码(3)
- nacos配置中心使用(2)
- Elasticsearch基础入门(2)
推荐排行榜 - Synchronized加锁、锁升级和java对象内存结构(3)
- 大数据(1)—大数据及HDFS简述(3)
- jvm(1)—java内存结构(3)
- 算法—贪心算法和动态规划(2)
- 数据结构—栈及四则运算实现(2)
Copyright © 2020 白露非霜
Powered by .NET 5.0.1-servicing.20575.16 on Kubernetes
访问量