目录
下载源码
- 克隆git地址到本地
cs
# 下载nacos源码
git clone https://github.com/alibaba/nacos.git
-
切换分支到1.4.7, maven编译(3.5.1+)
-
找到启动类com.alibaba.nacos.Nacos
-
启动VM参数设置单机模式, RUN 启动类
java
-Dnacos.standalone=true

- 启动本地服务注册到本地nacos

注: nacos1.4 springcloud版本依赖参考
版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub
XML
<spring-boot.version>2.6.3</spring-boot.version>
<spring-cloud-alibaba.version>2021.0.1.0</spring-cloud-alibaba.version>
<spring-cloud.version>2021.0.1</spring-cloud.version>
注册服务
客户端注册流程

注册接口API
路径:/nacos/v1/ns/instance

服务端处理注册请求
设计亮点
- CopyOnWrite, 拷贝副本, 修改副本数据, 再赋值. 修改期间读真实数据
- BlockingQueue阻塞队列, 单线程处理任务, 避免并发, 业务解耦, 及时唤醒减少延迟
- 实例变更后, udp主动推送客户端, 减少客户端实例列表有延迟
服务端流程图
