服务注册
将服务通过REST请求发送给nacos-server, 包含服务自身的元数据
服务心跳
服务提供者定时向nacos-server 发送心跳,默认5s,表明自己还活着
服务健康检查
nacos-server定时检测一下服务列表, 如果15s内没有收到心跳,则把服务改成不健康状态,不健康的服务不能被发现。 如果30s内没有收到心跳,则把服务剔除掉,再次收到心跳会重新注册
服务发现
nacos-client定时向nacos-server发送请求获取服务列表,并缓存,以提供给自己调用。
服务同步
Nacos-server集群之间会相互同步服务实例,用例保证服务信息一致
Nacos服务端原理
Nacos客户端原理
Nacos源码启动
- 源码下载:https://github.com/alibaba/nacos nacos-develop.7z
- 下载Protoc,并安装 下载 Protoc版本:windows版本的3.17.2,地址:https://github.com/protocolbuffers/protobuf/releases 安装Protoc环境变量 Protoc 把环境搭建起来,所以找到你下载的Protoc,解压到目录下 然后要配置环境变量,路径是你的Protoc的bin目录下!
- 进入源码目录然后mvn编译 mvn clean package -Dmaven.test.skip=true -Dcheckstyle.skip=true
- IDEA打开,pom.xml以项目方式打开
- 展开查看详情
- 启动Nacos 找到nacos-console这个模块,找到启动类,编辑启动类 设置启动参数:-Dnacos.standalone=true -Dnacos.home=你的项目目录 启动之后,访问:http://localhost:8848/nacos 账号和密码:nacos
- 问题1:运行nacos源码 com.alibaba.nacos.consistency.entity包下类缺失问题 接下来进入到源码的consistency/src/main/proto/路径下,使用cmd命令,运行如下指令 protoc --java_out=../java/ ./consistency.proto protoc --java_out=../java/ ./Data.proto
- 问题2:Nacos缺少Istio依赖问题
checkstyle检查导致的问题,执行maven命令时,忽略掉checkstyle。 解决办法:
mvn clean package -Dcheckstyle.skip=true