我是靠谱客的博主 俭朴超短裙,最近开发中收集的这篇文章主要介绍【分布式】目录大纲,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

分布式架构

分布式系统产生的原因:

  • 高可用:防止单点故障引起系统的不可用。
  • 高性能:通过负载均衡,提升整体系统的性能和负载能力

分布式一致性问题:
分布式环境中引入数据复制机制后,不同数据节点间可能出现的,并无法依靠计算机应用程序自身解决的数据不一致的情况。通俗一句话,就是主从一致。

如何保证一致性(解决方案思路)
弱一致性,强一致性,最终一致性。具体可以参考这里

分布式架构的知识点
分布式系统的特点:可以不同机柜,不同机房,不同城市。
但是必须满足如下特点:

  • 分布性
    分布式系统中的多台计算机都会在空间上随意分布,同时,机器的分布情况也会随时变动。
  • 对等性
    没有主从之分,没有控制整个系统的主机,也没有被控制的从机,组成分布式系统的所有节点都是对等的。副本是分布式系统最常见的概念之一,指的是分布式系统对数据和服务提供的一种冗余方式。
  • 并发性
    并发共享资源,如何高效协调分布式并发操作是最大的挑战
  • 缺乏全局时钟
  • 故障总会发生

分布式环境的各种问题

  • 通信异常:受制因素有网络光纤,路由器,DNS硬件设备或是系统不可用,网络延时,网络抖动。
    单机内存访问延时纳米数量级通常10ns,网络通信的延迟在0.1 ~ 1ms。相当于内存访问延时的105 ~106倍。
    导致的结果:消息丢失和消息延迟。
  • 网络分区
    当网络异常,可能分布式系统中只有部分节点能正常通信,而另一些节点则不能,我们称这个现象为网络分区,俗称“脑裂”。
  • 三态
    成功、失败与超时。
    超时通常由如下两种情况:
  • 网络原因、该请求并没有被成功的发送到接收方,而是在发送过程就发生了消息丢失现象。
  • 该请求成功的被接收放接收后,并进行了处理,但是在响应反馈给发送方的过程中,发生了丢失现象。
  • 节点故障
    服务器节点发生宕机或者僵死现象。而且每个节点都有可能会出现故障,每天都在发生。

从ACID->CAP/BASE,具体参考这里

Paxos的工程实践

Google Chubby
提供分布式锁服务,底层实现以Paxos算法为基础。
GFS(Google File System )谷歌文件系统使用Chubby锁服务来实现对GFS Master服务器选举。
为什么设计为分布式锁服务而不是算法库?

  • 对上层应用程序的侵入性更小
  • 便于提供数据的发布与订阅
  • 开发人员对基于锁的接口更为熟悉
  • 更便捷的构建更为可靠的服务

Chubby的设计需求:

  • 提供一个完整的、独立的分布式锁服务,而非仅仅是一个一致性协议的客户端库
  • 提供粗粒度的锁服务
  • 提供锁服务的同时提供对小文件的读写功能
  • 高可用、高可靠
  • 提供事件通知机制
    具体深入研究内容,面试以后再补充

Hypertable
C++语言开发的开源高性能,可伸缩的数据库,以Google的BigTable相关论文为基础指导,采取Hbase类似的分布式模型,目的是构建一个针对分布式海量数据的高并发数据库。支持CRUD操作但是事务和关联查询不支持。其他与habse类似。

Zookeeper与Paxos

一致性协议

2PC与3PC

分布式一致性算法

paxos算法、raft算法、zab算法、nwr算法、Gossip,一致性哈希

  • paxos算法
  • Raft 算法
  • zab算法
  • NWR算法
  • Gossip算法
  • 一致性Hash
    raft协议和zab协议区别
    在这里插入图片描述在这里插入图片描述

分布式缓存

最后

以上就是俭朴超短裙为你收集整理的【分布式】目录大纲的全部内容,希望文章能够帮你解决【分布式】目录大纲所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部