分布式学习总结

知识点总结

最近要忙着找工作了,为了准备面试,就发奋图强的看了和分布式相关的书籍,对知识点进行了一个总结,总结如下:
1. 分布式系统是将服务分布在不同的机器上,或者是在同一台机器上启动多个进程或者线程来应对不断变化的变化的客户端数量,所有分布式系统应该应该具有可扩展性,由于系统涉及到多个进程和线程之间的相互协作,所有可靠的通信以及多线程同步是非常重要的。
2. 分布式系统一个重要的功能就是数据的存储,为了保证数据的可容错性,需要对数据进行冗余备份,而且为了让数据能均匀的分布在服务器集群中,可以通过一致性hash算法来实现数据的均匀存储。
3. 数据的可容错性,可以通过增加数据的副本来实现,这样还有一个好处就是可以使得数据的并发访问,由于一个数据具有多个副本,所以可以将用户对数据的访问请求分散到不同的服务器上,并发的执行。当然这样也就存在另外一个问题:如何保证多个副本数据的一致性?目前比较热门的有2PC、3PC、Paxos、ZooKeeper的ZAB算法。

总结

没有十全十美的解决方案,根据不同的应用需求在CAP(C:一致性,A:可用性,P:分区容错性)之间进行权衡。

你可能感兴趣的:(分布式学习总结)