建立分布式系统的需知

写这篇文章是为了 solve 在建立分布式系统时需要知道的慨念。

  1. 服务水平协议
    一个大的分布式系统每天会处理上百万的event。要如何测量系统的是正常的运行,这就需要可测量的 benchmark。
    availability - 99.99% , 或一年 50分钟的downtime
    accuracy - 资料需要 100% 正确吗
    capacity - 一秒钟多少request
    latency - 对95%的request,系统需要花多少时间回复. 对99%的request,系统又要花多少时间回复

  2. 一致性
    一致性是指系统上的节点,在同一时间,都看到和送回一样的资料。有几个consistency model, 例如 strong consistency, weak consistency, eventual consistency.

  3. 数据持久性
    持久性是指在资料加入到资料库后,资料会一直存在,不管系统有没有发生crash。持久性可在 machine level 或 cluster level。

  4. 信息持久性
    分布式系统中的节点会执行计算,存储数据和相互发送信息。 发送信息的关键特征是在这些信息到达的可靠性。 对于关键任务系统,通常不能丢失任何信息。

  5. 幂等 Idempotency
    幂等系统确保无论执行特定请求多少次,对该请求的实际执行仅发生一次。
    幂等的分布式系统设计需要某种分布式锁定策略,这是一些较早的分布式系统概念发挥作用的地方。 假设我们打算通过适当的锁定来实现幂等性,以避免并发更新。为了拥有乐观锁,系统需要保持高度一致,以便在操作时,我们可以使用某种形式的版本检查是否已启动另一个操作。(乐观锁机制采取了更加宽松的加锁机制。)

  6. 分片 Sharding 和 Quorum
    Sharding 是使用hash将数据以分配给分区。为了确保系统资料或计算操作以一致的方式执行,Quorum定义了一种基于投票的方法,其中一定数量的节点需要获得相同的结果,系统操作才能成功。

以上分布式系统的概念, 对支付系统都适用。

原文 :
https://blog.pragmaticengineer.com/distributed-architecture-concepts-i-have-learned-while-building-payments-systems/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值