文档章节

分布式理论

STINGWOH
 STINGWOH
发布于 2017/08/02 15:33
字数 672
阅读 4
收藏 0
CAP

CAP

著名的CAP理论提出一致性,可用性,分区容错性,三者不可兼得

C:Consistency,一致性, 在不同的地方和时间点上数据总是一致的
A:Availability,可用性, 在任何地点和时间都可以使用服务
P:Partition tolerance,分区容错性,即使出现网络故障系统依然具有可靠

大多数 nosql 产品都选择了牺牲强一致性,保证可用性和分区容错性,以及最终一致性,Cassandra 也是如此

ACID

传统关系数据库用 ACID 来保证强一致性, 这个 Cassandra 是做不到的

A: Atomicity,原子性
C: Consistency,一致性
I: Isolation,隔离性
D: Durability,持久性

BASE

大多数 NOSQL 系统采用的方式

BA:Basically Available,基本可用
S:Soft State,软状态,即中间可能不一致的状态
E:Eventually Consistent,最终一致性

分布式哈希表和一致性哈希

DHT-distributed hash table 分布哈希表, 一种去中心化的分布式系统, 提供类似于哈希表查找服务, 键值对存储在DHT中, 任何参于的节点都可根据 key 来存储相应的值

DHT的特点是
1) 独立自主性: 各个节点各自为战, 不需要中央的协调和控制节点
2) 容错性: 任何一个节点加入,离开或损毁, 系统依然可用
3) 可扩展性: 可以任意增加节点以提高系统容量

打个比方, 我有一篮12个鸡蛋, 可以放在三个篮子里
用最简单的取余法, 将鸡蛋编号0~17除以3, 每个篮子里放4个鸡蛋
假如增加或减少一个篮子, 都不是问题, 我只要根据编号取余一下子就能确定地找到那个鸡蛋
当然这里的取余法太 low 了, 虽然数据分布绝对均匀, 但是一旦增减篮子我们就需要移动鸡蛋来满足约束条件

一致性哈希就是比取余法更高级点的哈希算法, 一致性表示即使有篮子的增减, 无需移动数据依然可以根据编号确定地找到想找的鸡蛋, 并且通过虚拟节点技术使得数据分布也比较均匀

Gossip 协议

流言协议, 俗话说, 流言蜚语, 一传十, 十传百, 尽人皆知. Gossip 协议就是采用了类似的方法将消息迅速从一个结点复制到其他结点. 传递时需要注意的就是传递的广度和深度, 不要造成回环

具体实现可参见 https://github.com/apache/incubator-gossip

© 著作权归作者所有

共有 人打赏支持
STINGWOH
粉丝 2
博文 49
码字总数 11745
作品 0
苏州

暂无文章

精通Spring Boot——第十二篇:分页查询功能的实现

本文将介绍如何实现分页查询功能,推荐使用github的pagehelper插件实现(事实上大家基本都是这么干的),但本文的实现方式和大多数不同,废话少说,现在就带着大家看看区别在哪里。 先看pom...

developlee的潇洒人生
8分钟前
0
0
平淡的秋招之路

1. 概述 在八月中旬之前,我还没有秋招这个概念,认为找工作就是通过学校举办的招聘会。后来慢慢的了解到,由于学校实力的问题,许多好的公司只会去门当户对的学校进行招聘。我们学校只是一个...

firepation
11分钟前
0
0
设置布局中的子控件不可用

RelativeLayout R2 = findViewById(R.id.act_menu_level2_rl); //设置当前R2中的子控件不可用 int childCount = R2.getChildCount(); ......

lanyu96
22分钟前
0
0
分布式系统中处理参数配置的 4 种方案

一个系统中包含有各种各样的配置信息,如一个日志文件需要配置以下几个信息。 日志文件生成主目录 日志文件名称,不同的日志级别对应不同的文件 当前日志级别 还有其他各种业务参数、系统参数...

Java技术栈
23分钟前
1
0
MongoDB的使用学习之(七)MongoDB的聚合查询(两种方式)附项目源码

MongoDB的使用学习之(七)MongoDB的聚合查询(两种方式)附项目源码 先来张在路上…… 铛铛铛……项目源码下载地址:http://files.cnblogs.com/ontheroad_lee/MongoDBDemo.rar 此项目是用M...

Airship
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部