分布式基础知识汇集

一.CAP

  • 数据一致性(C),等同于所有节点访问同一份最新的数据副本;
  • 对数据更新具备高可用性(A);
  • 能容忍网络分区(P)。

概念: 必须注意的是,P:Partition Tolerance 指的是 The system works well despite physical network partitions. 网络上很多说P指的是数据分区,都他妈是扯淡,实际应该是如果物理网络进行了隔离,能否正常工作。

理解CAP理论的最简单方式是想象两个节点分处分区两侧。允许至少一个节点更新状态会导致数据不一致,即丧失了C性质。如果为了保证数据一致性,将分区一侧的节点设置为不可用,那么又丧失了A性质。除非两个节点可以互相通信,才能既保证C又保证A,这又会导致丧失P性质。

分布式系统的特性是能够在高延迟或不可靠的传输条件下进行状态交换。如果要保证系统的操作的可靠性,必须保证在节点及网络两方面故障发生时的健壮性,但并非所有系统都能够满足我们所要求的安全能力。在本文中,我们将探索分布式数据库在设计上的一些考虑,以及它们是如何对网络分区的情况作出响应。

在两个节点间发送消息时,IP网络可能会任意地删除、延迟、重新排序或复制消息,因此许多分布式系统都使用TCP以防止消息的重新排序与复制。但TCP/IP在本质上仍然是异步的:网络会任意地延迟消息,连接可能会被随时切断。此外,对故障的诊断也并不可靠:要判断某个节点是否出现故障、网络连接是否被切断、或者操作是否比预计中运行得慢也许是不可能实现的。

消息被任意地延迟或切断的这种故障叫做网络分区。分区可能出于多种原因发生在生产环境的网络中:垃圾回收(GC)的压力、网卡(NIC)故障、交换机故障、配置出错、网络拥塞等等。由于分区的发生,使CAP定理限制了分布式系统能够达到的最大担保能力。当消息被切断时,“一致的”(CP)系统会拒绝某些节点的请求,以保持线性一致性。“可用的”(AP)系统虽然能够处理所有节点上的请求,但必须牺牲线性一致性,因为不同的节点对于操作的顺序可能会产生不同意见。当网络情况良好时,系统可以保证一致性与可用性,但由于真实的网络中总会产生分区,因此不存在能够完全做到“一致且可用”(CA)的系统。

1.1 infoQ, CAP理论十二年回顾:"规则"变了 :http://www.infoq.com/cn/articles/cap-twelve-years-later-how-the-rules-have-changed/

1.2 CP、CA系统测试, 终极版:http://www.linuxeden.com/html/news/20131218/146570.html

1.3 ACID, BASE: http://blog.sina.com.cn/s/blog_3fe961ae010139u6.html

二. CDRT

2.1、CDRT:Conflict-Free Replicated Data Types:  http://www.tuicool.com/articles/a63eiu

2.2. CDRT paper: http://hal.upmc.fr/file/index/docid/555588/filename/techreport.pdf

2.3 hbase中的ACID:  http://archfan.sinaapp.com/2012/04/18/acid-in-hbase/

6. 读写分离

-- TODO

时间: 2024-12-13 14:48:25

分布式基础知识汇集的相关文章

浅谈群集与分布式基础知识

长期以来对于做IT的人员来说可能会经常听见一个名词,群集,什么负载均衡群集,高可用群集,双活群集,这对于非相关人员来说根本不明白是什么意思,好像群集很神秘,很高大上,其实群集的概念并没有想象中那么复杂,本文老王会试着用比较简单的语言,来为大家分享我所学习了解的群集知识,尽量让只有简单服务器 网络基础的朋友也可以听懂,如果有说的不对的地方欢迎指正 什么是群集呢,简单来说,群集就是把一堆计算机组合起来做一件事情,把一堆计算机组合起来一起干活,它们就可以叫做群集,通常群集给人的感觉就好像是一个"整体计

分布式基础知识

参考 https://github.com/CyC2018/Interview-Notebook/blob/master/notes/ 基本概念 (1)异常: 1. 服务器宕机 内存错误.服务器停电等都会导致服务器宕机,此时节点无法正常工作,称为不可用. 服务器宕机会导致节点失去所有内存信息,因此需要将内存信息保存到持久化介质上. 2. 网络异常 有一种特殊的网络异常称为 网络分区 ,即集群的所有节点被划分为多个区域,每个区域内部可以通信,但是区域之间无法通信. 3. 磁盘故障 磁盘故障是一种发

git下的团队合作模型及git基础知识汇集

https://www.atlassian.com/git/tutorials/syncing/git-fetch Syncing svn使用单个中央库来作为开发者之间沟通的桥梁,而协同合作是通过在开发者和中央库之间传递changeset来实现的.这种情况对于GIT的协同模型是有区别的,在git下每一个开发者都拥有他们自己的整库copy.取而代之于从working copy来提交变更集到一个中央库中,git允许你在不同的repo之间分享整个分支. 下面的命令允许你管理你和其他repo之间的连接,

Python3分布式爬虫(scrap+redis)基础知识和实战详解

背景 随着业务需求的变化,大规模爬虫遇到各种问题.python爬虫具有先天优势,社区资源比较齐全,各种框架也完美支持.爬虫性能也得到极大提升.本次分享从基础知识入手,涉及python 的两大爬虫框架pyspider.scrapy,并基于scrapy.scrapy-redis 做了分布式爬虫的介绍(直接粘贴的ppt截图)会涉及 redis.mongodb等相关知识. 一.前沿 1.1 爬虫是什么? 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本.

转帖--计算机网络基础知识大总汇 https://www.jianshu.com/p/674fb7ec1e2c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

计算机网络基础知识大总汇 龙猫小爷 关注 2016.09.14 23:01* 字数 12761 阅读 30639评论 35喜欢 720 一.什么是TCP/IP 网络和协议 1.     TCP/IP是一类协议系统,它是一套支持网络通信的协议集合.网络是计算机或类似计算机的设备之间通过常用的传输介质进行通信的集合. 2.     网络协议就是一套通用规则,用来帮助定义复杂数据传输的过程.数据传输从一台计算机上的应用程序开始,通过计算机网络硬件,经过传输介质到正确目的地,然后上传到目的地计算机网络硬

hadoop学习笔记——基础知识及安装

1.核心 HDFS  分布式文件系统    主从结构,一个namenoe和多个datanode, 分别对应独立的物理机器 1) NameNode是主服务器,管理文件系统的命名空间和客户端对文件的访问操作.NameNode执行文件系统的命名空间操作,比如打开关闭重命名文件或者目录等,它也负责数据块到具体DataNode的映射 2)集群中的DataNode管理存储的数据.负责处理文件系统客户端的文件读写请求,并在NameNode的统一调度下进行数据块的创建删除和复制工作. 3)NameNode是所有

JDBC 基础知识总结

1.  何谓JDBC  --- Java Database Connectivity. 由Sun 公司提供的访问数据库的一组java类和接口,用来对数据库进行链接.发送SQL语句.处理返回结果,为开发人员提供了统一的访问数据库入口API,使得开发人员可以不用绑定到特定数据库访问API. 2. 应用程序,JDBC API,JDBC 驱动程序,数据库之间的层次关系如下图: 3. 4.  JDBC 有四种驱动: 4.1  JDBC-ODBC 桥链接:   把对JDBC接口的访问翻译成对应的ODBC的访

DNS&BIND——基础知识

DNS & BIND(1) what-DNS& BIND DNS: Domain Name Service 已于C/S架构的协议 53/udp:  域名解析 53/tcp  :  区域传输 BIND: Bekerley Internet Name Domain BIND对DNS协议的开源实现,包含对域名的查询和响应所需的所有软件 BIND是互联网上最广泛使用的一种DNS服务器 传输方式 1)区域传输 的时候使用TCP协议 : 主DNS服务器: 从自己本机的数据文件中读取该区的DNS数据信息

这技术太纯了|5分钟学会OpenStack 基础知识(转)

原文地址:http://mt.sohu.com/20160511/n448800357.shtml ——<从入门到精通云服务器>第六讲 前五期的<从入门到精通云服务器>受到了广泛好评,收到留言,有很多读者对云计算相关的技术非常感兴趣.应观众要求,我们这期要安利一条纯技术内容.准备好瓜子.花生,随小编一起进入OpenStack 基础知识大讲堂吧. 了解OpenStack OpenStack 是最火的开源软件之一,活跃度呈指数级别上升:它是一组开源项目,诞生之初是由两个项目组成,目前十