远方的灯塔 - 专注于服务端技术分享 远方的灯塔 - 专注于服务端技术分享
首页
  • Java SE
  • Struts2
  • Hibernate
  • MyBatis
  • JAX-WS
  • 并发
  • 分布式
  • Git
  • 文章分类
  • 文章标签
  • 文章归档
  • 《C程序设计语言》
心情随笔
友情链接
给我留言 (opens new window)
关于我
GitHub (opens new window)

Terwer Green

一个后端老菜鸟
首页
  • Java SE
  • Struts2
  • Hibernate
  • MyBatis
  • JAX-WS
  • 并发
  • 分布式
  • Git
  • 文章分类
  • 文章标签
  • 文章归档
  • 《C程序设计语言》
心情随笔
友情链接
给我留言 (opens new window)
关于我
GitHub (opens new window)
  • JavaSE

  • 开源框架

  • Linux

  • Struts2

  • Hibernate

  • Webservice

  • 分布式

    • RPC架构设计及IO模型
    • NIO编程及其三大核心原理
    • NIO三大核心之缓冲区(Buffer)
    • NIO三大核心之通道(Channel)
    • NIO三大核心之选择器(Selector)
    • Netty核心原理
    • 线程模型以及传统IO阻塞模型
    • Reactor模型
    • Netty线程模型
    • Netty核心API介绍
    • Netty入门与异步模型
    • Netty高级进阶之Netty编解码器
    • Netty高级进阶之基于Netty的群聊天室案例
    • Netty高级进阶之基于Netty的HTTP服务器开发
    • Netty高级进阶之基于Netty的Websocket开发网页聊天室
    • Netty高级进阶之Netty中的粘包和拆包的解决方案
    • Nety源码剖析
    • 自定义RPC框架之分布式架构网络通信理论
    • 自定义RPC框架之基于Netty实现RPC框架
    • 分布式架构理论
    • 分布式理论之数据一致性
    • 分布式理论之CAP定理
    • 分布式理论之BASE定理
      • 分布式一致性协议之两阶段提交协议(2PC)
      • 分布式一致性协议之三阶段提交协议(3PC)
      • 分布式一致性协议之NWR协议
      • 分布式一致性协议之Gossip协议
      • 分布式一致性协议之Paxos协议
      • 分布式一致性协议之Raft协议
      • 分布式一致性协议之Lease机制
      • 分布式系统设计策略之心跳检测
      • 分布式系统设计策略之高可用
      • 分布式系统设计策略之容错性
      • 分布式系统设计策略之负载均衡
      • 分布式架构服务调用
      • 分布式服务治理之服务协调
      • 分布式服务治理之服务削峰
      • 分布式服务治理之服务降级
      • 分布式服务治理之服务限流
      • 分布式服务治理之服务熔断
      • 分布式服务治理之服务链路追踪
      • 架构设计基本原则之开闭原则(OCP)
      • 架构设计基本原则之单一职责原则(SRP)
      • 架构设计基本原则之接口隔离原则(ISP)
      • 架构设计基本原则之里式替换原则(LSP)
      • 架构设计基本原则之依赖倒置原则(DIP)
      • 架构设计基本原则知识扩展
      • 分布式架构知识拓展与总结
    • 分布式框架

    • 后端开发
    • 分布式
    terwer
    2022-04-28
    目录

    分布式理论之BASE定理

    # BASE定理

    CAP不可能同时满足,但是分区容错性对于分布式系统来说,是必须的。如果能够同时满足CAP就好了,于是出现了BASE理论。

    BASE:全称Basically Availability(基本可用),Soft State(软状态),和Eventually Consistency(最终一致性),三个短语的缩写。

    BASE定理是对CAP中一致性和可用性权衡的结果,来源于对大型互联网分布式实践的总结,是基于CAP定理逐步演化而来。

    核心思想是:即使无法做到强一致性(Strong Consistency),但是每个应用可以根据自身的特点,采取适当的方式让系统达到最终一致性(Eventually Consistency)。

    1. Basically Availability(基本可用)

      什么是基本可用?就是相对于正常系统而言,系统虽然出现了不可预知的故障,但是还是能用。

      • 响应时间上的损失:正常情况下的搜索引擎在0.5秒给出搜索结果,基本可用的搜索引擎在1秒给出搜索结果

      • 功能上的损失:在电商网站上,正常情况下,用户可以完成每一笔订单,但是,在大促销期间,为了保证购物系统的稳定,部分消费者会被引导到一个降级页面

    image-20220318175020403

    1. Soft State(软状态)

      什么是软状态?对于原子性而言,要求多个节点的副本数据是一致的,这是一种硬状态。

      软状态指的是:允许系统中的数据存在中间状态,并认为该状态不会影响系统的整体可用性。

      就是允许系统在多个不同节点的数据副本存在数据延迟。

    2. (Eventually Consistency)最终一致性

      软状态不可能一致持续,必须有个期限。

      在期限过后,应当保证所有副本的数据一致性。从而达到数据的最终一致性。

      时间期限取决于网络延迟,系统负载,数据复制方案设计等因素。

    编辑 (opens new window)
    #rpc#base#basically#availability
    上次更新: 2023/02/22, 13:47:25
    分布式理论之CAP定理
    分布式一致性协议之两阶段提交协议(2PC)

    ← 分布式理论之CAP定理 分布式一致性协议之两阶段提交协议(2PC)→

    最近更新
    01
    解决css部分border被圆角切掉之后圆角的边框消失问题
    03-18
    02
    使用TypeScript开发一个自定义的Node-js前端开发脚手架
    03-08
    03
    Github-Actions使用release-please实现自动发版
    03-06
    更多文章>
    Theme by Vdoing | Copyright © 2011-2023 Terwer Green | MIT License | 粤ICP备2022020721号-1 | 百度统计
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式