Author: Gorit
Date:2021年1月
Refer:阿里云大学
2021年发表博文: 9/50
Nacos 核心帮助我们做的事情
注册中心:没有必要将数据持久化到数据库中,可以持久化到本地硬盘。(需要在 注册中心的 server-addr 指定 nacos 的服务,可以指定多个)
分布式配置中心:默认是将数据持久化到本地嵌入式数据库,改为 mysql 数据库
本地搭建伪集群,开启三个不同端口的 nacos 服务,然后在 cluster.conf 中加入三个 nacos 服务的路径 + 端口
Nacos 在不同版本下运行集群是不一样的。
注意:
Raft 到底是什么问题:分布式一致性算法
分布式系统一致性算法 应用于系统软件实现集群保持每个节点数据的同步性
保持我们集群中每个节点数据一致性问题,专业术语分布式一致性的。
场景:
分布式事务一致性算法 与 分布式系统一致性算法有哪些
前者框架:核心解决我们实际系统产生的跨事务导致的分布式事务问题。
核心靠最终一致性:rocketmaq事务消息、rabbitmq补单、lcn、seata等。
后者框架:解决系统之间集群之后每个节点保证数据一致性
raft(nacos)、zab(zookeeper)、paxos等
整个集群为保证数据一致性问题,必须满足大多数情况 > n /2+1,可运行的接地那才可以使用
ZAB 协议实现原理
ZAB 协议实现原理是通过比较 myidmyid 谁最大谁谁就可能成为领导角色,只要满足过半机制即可成为领导角色,后来启动的节点也不会参与成为领导角色
数据一致性
注意:任何算法都来源生活
存在的疑问:
多个竞选者:产生的票数都完全一样,这样谁才能成为领导角色
核心设计的原理:谁超时时间最短大概率的为领导角色
那么随机性树有可能出现一样的情况下:
故障重新实现选举. 如果我们跟随者节点不能及时的收到领导角色的消息的,那么这时候跟随者状态就会变 为竞选者状态,发给其他的节点发出选举投票通知,只要该竞选者有超过半数以上即可 选举为领导角色 数据如何保证一致性 类似 zab 两阶段提交协议
新一代服务网关 SpringCloud Gateway