Skip to the content.

分布式

ETCD 应用场景

ETCD 应用场景

CAP 理论

概述

CAP 只能满足其2,不能全部满足。其中 P 分区在分布式系统中由于网络原因,是始终会存在的,所以通常谈 CAP 都指的是 CA 的取舍。

CP without A: 不要求可用性。相当于在 node 之间要求强一致性,一些传统数据库的分布式事务就是属于这种。 AP without C: 不要求一致性。在分区发生时,节点之间可能失去联系,为了高可用,每个节点只能使用本地数据提供服务,这回导致全局数据的不一致性,目前很多 NoSQL 是属于此类。

分布式系统一致性

会引申到 CAP 理论

raft 算法细节

动态图

属于强一致性的 CP 系统,牺牲了部分可用性(在分区后的少节点分区中发生)

常见中间件使用的一致性算法

最终一致性

RPC 是什么

在分布式系统中,远程过程调用(Remote Procedure Call, RPC) 是一个计算机通信协议,该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(不用关注细节)。

RPC 相对于传统 API 优点

服务调度中心的感知与动态上下线

grpc

一种 rpc(远程过程调用) 框架,使客户端和服务端能够透明的通信,使构建连接系统变得更加容易。

基于 HTTP/2 协议标准设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,支持很多语言。

thrift

facebook 出品的 rpc 框架,后交给 apache 基金会维护。是基于 tcp 协议实现的通讯协议,也是一种接口描述语言,和 grpc 很类似。