article cover

Nacos源码学习计划-Day23-Nacos2.x-服务实例信息变化如何同步到集群节点 技术文档

前面我们了解了Nacos2.X版本下以gRpc为客户端和服务端之间的通讯下,客户端如何注册和查询实例,以及服务端如何处理注册请求,如何将服务变更通知到订阅的客户端,也在这几个过程中加深了对于Nacos2.X版本下内存注册表的结构。 在看Nacos服务端处理服务注册的时候,我们最后是探索到了AbstractClient类下的addServiceInstance...
ZealSinger 发布于 
article cover

Nacos源码学习计划-Day22-Nacos2.x-服务变动如何通知订阅客户端 技术文档

服务变更如何通知订阅服务的客户端 我们在Nacos源码学习计划-Day20-Nacos2.x-服务端处理客户端gRPC注册请求 的最后面有看到,服务端处理gRPC的注册请求的最后,即addPublisherIndexes()的最后一行,可以看到是发布了一个ServiceChangedEvent服务变更的事件 private void addPublisher...
ZealSinger 发布于 
article cover

Nacos源码学习计划-Day21-Nacos2.x-从服务调用链路上来加深对于内存注册表的理解 技术文档

这一章,主要是从服务调用的链路角度,来帮我们对于Nacos2.X版本中的内存注册表结构的理解,在服务调用的链路中,客户端肯定会需要发起从服务端查询对应的服务实例,服务端也会处理这个请求从而查找内存注册表从而进行响应,这个过程中自然就会需要我们去了解内存注册表的结构 客户端服务查询逻辑 这里我们之前其在Nacos1.4.X版本的分析中有说过的,当时我们对于Na...
ZealSinger 发布于 
article cover

Nacos源码学习计划-补档-Nacos服务订阅链路分析纠错 技术文档

对于之前在《Nacos源码学习计划-Day05-服务调用时的调用链路(如何获取服务信息)》一文中,在开始介绍Nacos高版本中通过SCLB来实现客户端实例发现,在一开始做高版本和低版本之间的区别总结,提到如下内容 - 旧版本中,优先查本地缓存,然后再Nacos服务端进行辅助和更新,是以本地缓存为主,Nacos服务端为辅,这个点其实很容易看出来会有实时性的问题...
ZealSinger 发布于 
article cover

Nacos源码学习计划-Day20-Nacos2.x-服务端处理客户端gRPC注册请求 技术文档

Nacos2.x服务端处理gRPC注册请求 上一章节我们分析了Nacos2.X的客户端中是如何利用gRPC发起注册请求的,那么接下来自然就是找服务端这边对于该注册请求的处理。 我们可以看到,最终发出请求的方法doRegisterService,其代码回顾一下如下 public void doRegisterService(String serviceName...
ZealSinger 发布于 
article cover

开源项目HashSmith分享-一次PR经历-SwissTable和Robin Hood的学习 技术文档

记录在reddit上看到一个UU发的贴子,发帖人bluuewhale提到了想写一个优于JDK底层的HashMap的Map,也就是本文要介绍的他所写的hash-smith: Fast & memory efficient hash tables for Java,在阅读他的这个项目的过程中,我尝试进行了Fork和PR,虽然只是一个很小的点,并且最终的因...
ZealSinger 发布于 
article cover

Nacos源码学习计划-Day19-Nacos2.x-客户端gRPC发起注册请求 技术文档

对于Nacos 1.4.1版本的注册中心模块和配置中心模块,两个最重要的功能模块在单体和集群下的主要使用,我们已经学习的差不多了,经过Nacos 1.4.1版本的学习,我们还是能收获到很多的,整洁的代码风格和异步任务;内存队列;推拉结合等优秀的设计。 但是Nacos依旧在更新,其中在Nacos 2.x的版本上,进行了不少的更新包括但不局限于 Nacos集群内...
ZealSinger 发布于 
article cover

Nacos源码学习计划-Day18-配置中心-集群-集群节点间如何同步配置信息 技术文档

在之前的内容中,我们知道了客户端通过NacosPropertySourceLocator在SpringCloud读取配置的拓展点上进行拓展从而读取Nacos远端配置,Nacos服务端通过ConfigService进行配置发布,ConfigWorker利用线程池进行定期的HTTP请求从而拥有感知配置更新的能力,实现配置的动态更新。 那么单点上的配置中心的比较核...
ZealSinger 发布于 
article cover

Nacos源码学习计划-Day17-配置中心-配置变化推送与客户端感知配置变化 技术文档

上一章中我们讨论了Nacos客户端是如何加载和读取远程配置,通过源码了解到了Nacos远程配置的优先级和读取顺序以及读取位置在磁盘而不是数据库 在上一章最后,我们也说到了,直接修改数据库是无法被感知的,那么今天探讨的内容是:Nacos中,服务端配置变化之后,是如何通知的客户端?客户端又是如何感知到这个变化的呢? 在讲解配置中心第一个章节的时候,在源码中我们看...
ZealSinger 发布于 
article cover

Nacos源码学习计划-Day16-配置中心-加载远程配置源码解析 技术文档

在上一节中,我们看到了Nacos读取配置中心内容的相关代码locate方法部分内容如下 // 加载共享配置文件loadSharedConfiguration(composite);// 加载额外配置文件loadExtConfiguration(composite);// 加载自身应用配置文件loadApplicationConfiguration(compo...
ZealSinger 发布于