• 一些基本定义


    网络分区 分布式通常假设网络是异步的,意味着网络可能会导致任意的重复、丢失、延迟或者乱序的节点间消息传递。在实际中,TCP状态机会保证节点间消息传递的不丢失、不重复、保证时序。但是,在Socket级别上,节点接发消息会阻塞,超时等等。 
    检测 网络失败 是有困难,由于我们唯一能得到其他节点状态的信息就是通过网络来得到,延迟跟网络失败也无从区分。这里就会产生一个基本的网络分区问题:高延迟可以考虑作为失败。当分区产生后,我们没有渠道去了解到其他节点到底发生了什么事: 
    它们是否还存活?或者已经crash?是否有收到消息?是否正在尝试回应。当网络最终恢复后,我们需要重新建立连接然后尝试解决在不一致状态时的不一致。 
    很多系统在解决分区时会进入一个特殊的降级操作模式。CAP理论也告诉我们要么得到一致性要么高可用性,但是很少有数据库系统能够达到CAP理论的极限,多数只是丢失数据。

  • 相关阅读:
    04--Spring知识汇总
    01--Java集合知识
    03-Servlet 体系结构知识梳理
    02--Tomcat总体结构分析一
    01--Java开发中文乱码问题分析
    HTTP05--HTML常用知识
    3--Java NIO基础1
    02--Java Socket编程--IO方式
    01--TCP状态转换
    java之泛型理解(高效java之泛型)
  • 原文地址:https://www.cnblogs.com/fanguangdexiaoyuer/p/8719165.html
Copyright © 2020-2023  润新知