nacos 注册中心

最近发现了一个比较好的学习网站和工具下载网站,相当便宜,感兴趣的同学请移步:

 

昂炎数据(www.ayshuju.com)
tcp和grpc的keep-alive:https://blog.csdn.net/zhaominpro/article/details/103127023

协议:


一致性算法:强一致;最终一致;
区别在于:(重点在于获取更新后的数据)强一致发现失败就踢掉,能够保证所有节点都被更新上。所以获取数据时就能保证都能够不管访问那一台,都能获取到更新后的数据。
最终一致:在一定的时间后,访问所有机器,能获取到更新后的数据。
raft协议:其实就是理解的 哨兵模式;强一致性算法
paxos算法:一致性协议,比较难;
distro:最终一致性算法;
gossip:最终一致性算法;
renew(eureka):最终一致性算法;

CAP:c(一致性),A(可用性),p(分区容错)
AP:当网络分区后,为了保证可用性,系统B可以返回旧值,保证可用
CP:当网络分区后,为了保证一致性,可以拒绝请求,保证一致性

zk是cp,当发现客户端挂掉后,把客户端踢掉;一致性协议:ZAB协议。
eureka是ap,当发现客户端挂掉后,仍然提供服务;renew协议(自己开发的)
nacos:distro(AP)最终一致性。raft:强一致性。
ap就是最终一致性的;cp就是强一致性的;


强一致性和最终一致性:https://blog.csdn.net/qq_43183527/article/details/101929099


nacos选择的协议:raft和distro

distro协议(给服务注册用的):

客户端请求时,如果长时间不响应,请求其他服务器。
Nacos 每个节点是平等的都可以处理写请求,同时把新数据同步到其他节点。
每个节点只负责部分数据,定时发送自己负责数据的校验值到其他节点来保持数据一致性。 
每个节点独立处理读请求,及时从本地发出响应

数据初始化:
新加入的节点全量拉取数据,从所有节点。


数据校验:
服务器之间有联系,相互发送心跳信息。心跳信息:本地保存的数据元信息(元信息比较重要,数据量很小)。
这个心跳的作用:
告诉大家自己活着。
检查自己信息是否是正确的。如果不正确,全量拉取一波


写操作来临时:
客户端发送写操作时,是随机选取的,他知道所有的服务端地址,随机选一个。
服务端收到请求后,先通过filter。
filter作用:
拦截到请求后,查看下该客户端的责任节点。如果是自己,直接给controller处理
如果不是,转发给这个责任节点。

责任节点上的controller对请求进行处理

服务器定期进行sync任务,把本机负责的示例信息同步给其他机器。


读操作:
直接从本机拉取数据,快速响应。

总结:
1. 当该节点接收到属于该节点负责的实例的写请求时,直接写入。
2. 当该节点接收到不属于该节点负责的实例的写请求时,将在集群内部路由,转发给对应的节点,从而完成读写。
3. 当该节点接收到任何读请求时,都直接在本机查询并返回(因为所有实例都被同步到了每台机器上)。

nacos服务器寻址:
文件寻址:每个服务器下保存着一个cluster.conf的文件,文件内容就是ip地址列表。
当启动的时候,发现这个配置文件被改动了,就需要修改集群下所有机器的配置文件。nacos内部有文件变动检测中心,会重新读取文件内容。
这里就需要一个操作,修改集群下所有机器的配置文件。这个操作nacos没去做,需要手动去做的
地址服务器寻址

服务发现模块:
spring-cloud-nacos自动注册:https://www.cnblogs.com/kjcc/p/13932926.html

临时节点和持久化节点。
区别:
临时节点类似于业务客户端,可以发送心跳给服务端的。
持久化节点类似于redis,mysql节点。不能发送心跳。
这两个区别在健康检查的时候。
临时节点可以自己发送心跳,服务端只需要统计信息就好。
持久化节点需要服务端去探测,发送一个ack报文,收到回复后需要根据回复内容调用不同的接口。同时需要关注线程池,重试等机制。


负载均衡:
客户端负载均衡,服务端负载均衡
ribbon是客户端负载均衡
nacos是服务端和服务端负载均衡

配置中心客户端获取配置源码:https://www.cnblogs.com/dyg0826/p/11404678.html

distro协议源码解析:Nacos 2.0源码分析-Distro协议概览 - 不会发芽的种子 - 博客园

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值