nacos源码解析1.4.1版本
1、下载源码
https://github.com/alibaba/nacos/releases
2、导入源码到idea中
注意事项:
所以需要在maven的setting文件添加
<mirror> <id>sona</id> <url>https://oss.sonatype.org/content/repositories/snapshots/</url> <mirrorOf>central</mirrorOf> <name>Nexus aliyun nacos</name> </mirror>
3、运行项目
注意事项:
需要添加:-Dnacos.standalone=true,以单机模式启动
5、访问地址
nacos注册原理:
理解:nacos客户端服务发送post请求到服务器,服务端把实例放到队列,然后异步去实现注册,就返回给客户端了,提高了效率问题。
注册是使用的copyonwrite的方式,不是加锁。
注册表结构map<string,map<string,service>>是为了支持dev、test、prod环境的支持。
客户端发送心跳接口,定时发送,服务端根据当前时间判断上次心跳时间,是否15秒,如果大于15秒设置健康状态为false,如果30秒还没有收到就下线。
微服务客户端(注册、发送心跳)
openfeign---ribbon实现域名地址解析
三高架构如何设计:
高可用、高并发、高扩展一步一步设计:微服务包括,服务注册、网关、服务熔断、服务降级、分布式事务。
服务熔断和降级
理解:一个流程里面会调用很多微服务、如果某个服务出现错误,不影响流程。
可以使用sentinel框架实现服务的降级处理。
服务熔断理解:当一个服务不可用的时候,超过设置的阈值就会走降级方法