随着请求量的增大,为了高可用和容错,常常采用维护多个冗余副本的办法来实现,因此需要维护这些副本之间的一致性。
随着数据量的增大,单个节点难以承载所有数据,分布式系统还会将数据进行分区,如何维护分区间事务是一个问题。
分布式集群搭建在网络上,而网络通信是复杂的,数据包的丢失、重复、乱序需要被妥善处理,此外节点宕机或者网络分区的情况也需要被考虑。CAP 理论认为一致性、可用性和分区容错不可能同时做到。
分布式系统中常出现以下的一些应用场景:分布式锁、负载均衡、发布订阅模型、选举、分布式队列。
本篇文章以 DDIA 以及作者的讲解视频为骨架,辅以业界的相关实现,来综述性探讨上述的一些问题。