【nacos源码】 第一集 初识nacos原理

1、学习目标,nacos源码要学什么

作为微服务注册中心,主要功能包括 服务注册,服务发现,服务配置拉取,服务配置更改同步,服务心跳健康,暂时也就研究这些吧。

2、nacos服务注册

首先,先明确nacos只不过是一个spring项目,跟我们平时写的项目一样,里面的服务注册发现配置等功能都被封装成一组组 restful接口,使用功能时,只需要调用这些接口。
以下是服务注册时的两种调用方式

(1) 硬编码注册

我们的springboot项目启动后,需要把自身注册给注册中心,nacos有一个接口v1/instance可以实现post请求来注册服务;所以说,我们可以采用硬编码方式去调用这个url来注册自身

(2) spring扩展监视者模式注册

spring 事件机制,应用启动成功时,会发布一个web应用启动成功事件,实现监听器就可以钩到事件发生那一刻。在listener里,写上注册的代码就可以了。

3、微服务配置

思考: 配置有哪些功能需要研究,或我们有哪些疑问

(1)微服务如何拉取自己服务的配置
(2)一旦配置中心的配置改变了,我的服务如何知晓且同步更新数据

知道了问题以后,就可以着手思考答案了。
首先,前面所说的监视器扩展方式,我们仍可以使用,也就是在容器启动的某一个事件中,调用api拉取nacos的配置内容,然后装填进容器,就可以做到拉取远程配置。而springboot中,是有一些关于配置文件的机制的,其中顶级bootstrap配置文件就是最先加载的,现在我还没看源码,但是我猜测,一定是在应用初步启动起来能http通讯后,进行了一波配置文件整合,那个时候就是拉取配置的最佳时机!

然后再考虑第二个问题,配置文件更改了,应用端怎么获知,那不用想,肯定是发起请求了,对比一下子两头的配置,不过据网上的朋友讨论说,是对比md5值。那就是减少传输信息了。然后还运用了长连接。

4、后续

希望我一直debug下去nacos源码,因为我真的很感兴趣分布式系统内容,下一次更新nacos源码就是开始看源码了,
加油,奥里给

你可能感兴趣的:(nacos,springboot,java,开发语言)