码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • DDIA读书笔记第八章——分布式系统的麻烦


    分布式系统中的两个主要问题:网络和时钟

    故障与部分失效

    分布式系统中的节点一定会失败,而且大多数时间是部分失效:即大部分组件是正常工作的,少部分失效。
    并且分布式系统中确定组件失效也极其困难
    用不可靠的组件构建可靠系统

    不可靠的网络

    1、异步网络
    2、只能通过超时来判断组件是否失效,但是超时时间很难确定,太长:系统RTO恢复过长;太短:容易造成错误检测,在高负载下可能进一步加重系统负载,造成雪崩

    不可靠的时钟

    使用普通硬件,很难得到一个准确的始终
    时钟漂移

    分布式系统中依赖时钟同步

    有序事件的时间戳

    系统依赖时间戳来决定有序事件的执行顺序,但是如果时钟漂移,会导致执行顺序错乱。这也是LLW的冲突解决策略,发生于多领导者写入或者无主写入。
    可以用逻辑时钟、全局时钟生成器、高精尖硬件时钟(google truetime API)等三种方式来解决

    全局快照的同步始终

    在创建快照时,后续的MVCC依赖于创建快照的准确时间,来确定后续读写的版本

    进程暂停

    进程在执行任何一条语句时可能会停顿(尤其是虚拟化的容器中,可以 挂起(suspend) 虚拟机(暂停执行所有进程并将内存内容保存到磁盘)并恢复(恢复内存内容并继续执行)。这个暂停可以在进程执行的任何时候发生,并且可以持续任意长的时间))。
    这样在分布式系统中依赖时间判断采取执行的动作就可能会有很多并发问题

    知识、真相与谎言

    既然分布式系统中网络不可靠、时钟不可靠,那么怎么得到一个相对可靠的真相:多数派

    领导者和锁

    分布式系统中的很多场景需要要求某些东西唯一:
    1、中心化结构中的领导者
    2、分布式锁

    分布式锁

    假如A服务获取到锁,并开启一个session,如果A进程停顿,导致session过期,之后,锁被B服务获取到,此时A服务停顿结束,认为它仍然持有锁,即系执行,就会错误。
    解决方法是“防护令牌”:A除了session,还有token,每次A执行时,需要校验token,token与锁的有效性绑定

  • 相关阅读:
    Java:三种代理模式示例
    神经网络图片怎么分类的,图神经网络怎么做分类
    springbootMysql文华学院青年志愿者服务预约系统97973-计算机毕业设计项目选题推荐(附源码)
    ParagonNTFS15.9.314新版Mac强大的读写工具
    从校园到职场 | YK菌的2022年中总结
    触发器,寄存器,三态输出电路
    LeetCode_数学_简单_507.完美数
    ```,```中间添加 # + 空格 + 空行后遇到的底部空行出错,书接上回,处理空行
    window10 ware解决“此平台不支持虚拟化的Intel VT-x/EPT”
    如何使用iMazing监督、配置器功能
  • 原文地址:https://blog.csdn.net/yh88623131/article/details/127502493
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号