分布式理论
文章平均质量分 57
库昊天
这个作者很懒,什么都没留下…
展开
-
分布式事务理论与实践
一、产生背景业务服务化拆分,原本一个服务能完成的业务操作现在需要跨多个服务;分库分表,写操作可能跨多个数据库;二、理论基础2.1 2PC协议角色说明事务管理器:负责分布式事务的发起与结束,以及失败重试等(事务发起方);资源管理器:本地事务涉及资源的管理(事务参与方);协议过程阶段一:事务管理器开启分布式事务,通知资源管理器准备资源;(Prepare)阶段二:事务管理器判断资源准备情况,如果所有资源管理器都已经准备好资源,则通知资源管理进行提交;否则,进行回滚;(Comm原创 2020-07-29 16:44:49 · 461 阅读 · 0 评论 -
一致性哈希算法
解决问题 传统的数据路由/分片的做法是将key的哈希值对N取模,N为槽位数(槽位数即机器数)。这种方案的问题在于最终的路由结果会跟着机器数量的变化而变化(扩容、缩容和宕机等),从而导致请求查询不到数据或者请求出错等情况。 问题:机器数作为槽位数,当机器数量发生变化时,导致大量请求重哈希。一致性哈希算法 算法思想:槽位数取无限大的固定值,不再与机器数产生关联,如下图所示,这样无论机器数量如何变化,请求的哈希结果是不变的。机器与槽位的关系既可以通过算法分配,比如均分、平均轮询等,也可以通过映射表来原创 2020-07-20 17:24:42 · 280 阅读 · 0 评论 -
分布式强一致算法 —— Raft算法
背景 Paxos算法是最早的强一致性算法,1990年被Leslie Lamport提出,但是由于其难以理解和实现,导致没有被广泛使用。因此,2013年Raft算法被提出,功能与Paxos算法相同,更易于理解,实现简单,因此迅速被广泛推广使用,已经成为当前主流的强一致性算法。(从CAP角度,Raft算法选择了CP,舍弃了A,选主期间会出现短暂的不可用)Raft算法整体流程 Raft算法可以分为Leader Election选主和Log Replication日志复制两部分。算法的整体流程是:首先,原创 2020-07-15 20:42:50 · 797 阅读 · 0 评论 -
CAP与数据一致性
CAP定理一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)这三项中的两项。Consistency(数据一致性):分布式场景下,只要存在数据冗余/副本,就需要考虑数据一致性问题;Availability(系统可用性):系统/服务的可用性,一般通过不可用时间来衡量,如下所示;Partition Tolerance(分区容错性):网络出现局部故障时(如丢包、乱序、抖动、甚至是网络分区节点 cras原创 2020-07-14 16:35:02 · 461 阅读 · 0 评论 -
缓存相关概念
缓存穿透问题描述 描述:查询不存在的key,绕过缓存,给DB施压,如下图所示: 方案1:过滤器 如下图所示,通过增加过滤器对待查询的key进行过滤,过滤器的形式可以有多种,如白名单,符合某种规则等等。 方案2:缓存空值 当key对应的值不存在,用特殊的空值表示,加入缓存(时间不能过长,防止影响正常值);缓存雪崩问题描述描述:某一时刻,大部分缓存同时失效,导致大量的请求直接查询数据库,造成D原创 2018-05-06 11:38:05 · 210 阅读 · 0 评论 -
2PC
主要流程阶段一:事务执行 协调者向所有参与者发出事务执行请求,并等待所有参与者的ACK响应;阶段二:提交或回滚 如果协调者收到了所有参与者的ACK响应,并且为Yes,则参与者向所有参与者发送commit请求,且自身也提交事务;否则,发送rollback请求,自身回滚事务;问题分析阶段一问题数据一致性:不会造成数据不一致,事务还没有提交;性能问题:需要等待所有参与者的ACK响应;阶段二问题原创 2018-05-10 16:04:19 · 151 阅读 · 0 评论 -
负载均衡之LVS
什么是LVS? LVS是四层负载均衡器,Linux2.4内核以后天然支持(内核的一部分),其网络架构如下所示: 备注:LVS对外暴露的公网IP叫做“VIP”。LVS工作模式NAT模式 NAT(Network Address Translation)网络地址转换,即将一个IP地址转换为另一个IP地址的技术,如下图所示: LVS接收到请求,根据调度算法得到实际...原创 2018-04-01 18:00:48 · 368 阅读 · 0 评论 -
常见复杂均衡算法
轮询 算法描述:将所有请求,依次分发到每台服务器上,适用于服务器硬件配置相同的场景。 优点:每台服务器请求数目相同; 缺点:服务器配置不同时,会导致负载不均衡;随机 算法描述:请求随机分配到各个服务器。 优点:请求量大时,每台服务器请求基本相同; 缺点:服务器配置不同时,会导致负载不均衡;最少链接 算法描述:将请求分配到连接数最少的服务器。 优点:能够根据服务器运原创 2018-03-11 16:14:17 · 3101 阅读 · 0 评论 -
MurmurHash算法
算法介绍 MurmurHash 是一种非加密型哈希函数,适用于一般的哈希检索操作。已经被应用到很多开源项目如Redis,Memcached,Cassandra,HBase,Lucene等。与其它流行的哈希函数相比,对于规律性较强的key,MurmurHash的随机分布特征表现更良好。 MurmurHash is a non-cryptographic hash function suit原创 2018-03-11 14:51:18 · 16321 阅读 · 0 评论 -
负载均衡
什么是负载均衡? 负载均衡就是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁碟驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。一个典型的互联网应用的拓扑结构如下图所示: 负载均衡分类二层负载均衡(基于MAC地址) 二层负载均衡会通过一个虚拟MAC地址接收请求,然后通过改写报文的目标MAC地址的方原创 2017-12-02 11:29:41 · 353 阅读 · 0 评论 -
防雪崩利器Hystrix
简介: Netflix的 Hystrix 是一个帮助解决分布式系统交互时超时处理和容错的类库, 它同样拥有保护系统的能力。原创 2017-11-08 17:14:09 · 406 阅读 · 0 评论 -
服务雪崩效应
转载:https://segmentfault.com/a/1190000005988895定义 服务雪崩效应是一种因“服务提供者的不可用”(原因)导致“服务调用者不可用”(结果),并将不可用逐渐放大的现象。如下图所示: 上图中, A为服务提供者, B为A的服务调用者, C和D是B的服务调用者. 当A的不可用,引起B的不可用,并将不可用逐渐放大C和D时, 服务雪崩就形成了。形成原转载 2017-11-08 17:04:41 · 2752 阅读 · 0 评论