分布式理论注意点 | 青训营笔记

87 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天

这篇文章主要是收集了笔者在学习今天的课程,在学习了一些分布式理论设计与实现课程后,总结了一些注意点。

分布式理论注意点

分布式系统的概念

分布式系统就是由多个系统程序组成,且各个程序都占有一个节点结构。这些节点类似网状一样互相连接,形成整体的分布式结构。实际上,这种结构类似于之前学的用于微服务的分布式架构。

分布式系统的特点,主要有:成本低而效率高、具有弹性、可靠性好,并且用于系统程序节点的本身结构特点,使得分布式系统有最大特点:去中心化。这使得分布式系统中某个程序节点在发生故障时,其他节点收到影响的程度相比与传统系统更小。

etcd

etcd是一个开源的分布式键值存储系统,在分布式系统中常利用其强一致性的特点来维护微服务架构。对于分布式键值存储系统,常常在java中,使用的是zookeeper;而在golang中,就常使用etcd。当然在,若使用kafka消息队列等常与zookeeper搭配使用的技术时,也可以使用zookeeper帮忙维护系统功能。

分布式事务

事务在一个系统中,应该保持四个一致的ACID特性:原子性、持久性、隔离性和一致性。但在不同的程序节点中,又不可能各自单独实现属于各自的业务模块,故使用分布式事务来维护系统整体的事务性质。

Raft协议和Leader选举过程

etcd和zookeeper都实现了Leader选举过程!其中,etcd和zookeeper的Leader选举过程正是依据了Raft协议,刚好与今天学习的课程对应。

而选举过程,简单来讲,就是Follower们不断地进行投票,选出最多选票的Leader;当遇到节点故障失效时,就会重新进行选取,选出新Leader。例如在Zookeeper中,依据的主要是每个节点Zid的大小。

待补充