一:什么是Nacos?
二:服务心跳与服务注册原理?
在spring容器启动的时候,nacos客户端会进行两步操作。
- 向nacos服务端发送心跳
- 向nacos服务端注册当前服务
服务心跳
客户端在启动的时候,会开启一个心跳线程,每隔5s调用一次服务端的心跳接口(Http调用),服务端将心跳请求封装成一个task,放到线程池中。由服务端的线程池执行task,更新对应服务的最后心跳时间。
服务注册
客户端启动的时候,向服务端发起Http接口调用,调用服务注册的接口。服务端收到注册请求,将新的注册信息和老的服务列表封装为一个Pair对象,并放入阻塞队列。服务端在启动的时候会创建一个线程池,并提交一个任务,这个任务就是循环从阻塞队列里拿Pair对象,对其解析,更新服务所在的service内部的clusterMap中的服务列表。