码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 《架构设计2.0大型分布式系统架构方法论与实践》三高笔记


    目录

      • 前言
      • 高并发
        • 高并发读
          • 动静分离与CDN加速
          • 缓存
          • 并发读与Pipeline
          • 重写轻读
          • 读写分离
          • 批量
        • 高并发写
          • 数据分片
          • 任务分片
          • 异步化
          • 批量
      • 高可靠
        • 七板斧
      • 高可用
        • 高可用架构几个核心问题

    前言

    • 因为本人没多少三高的实战经验,所以对《架构设计2.0大型分布式系统架构方法论与实践》这本书的三高比较感兴趣,在此做个记录,并加入一点自己的理解(如果有错误的地方请批评指出,感激不尽)。
    • 何为三高?
      • 高并发:高并发是为了让系统变得更有效率。
      • 高可靠:为了让系统变得更靠谱,尽可能减少故障发生次数。
      • 高可用:为了故障发生后,故障恢复时间尽可能的短。

    高并发

    • 高并发:高并发是为了让系统变得更有效率。高并发又可以分为几种侧重类型:高并发读、高并发写、高并发读写。

    高并发读

    动静分离与CDN加速

    • 静态内容常用的处理策略就是CDN。

    缓存

    • 本地缓存或集中式缓存(如Redis/Memcached)。

    并发读与Pipeline

    • 并发读:串行改并行,可以使用FutureTask、CompleteService、CompletableFuture实现,FutureTask使用具体可参考拙作使用FutureTask优化业务代码。

    • Pipeline:多个Get操作一个个发出去,不等等返回结果,就像流入一个管道一样,结果从另一个管道流出。这块很像HTTP Pipeline。

    重写轻读

    • 书中举例微博Feeds流,要查询用户Feeds流时,要先查询关注的用户列表,不利于高并发查询,所以为每个用户准备一个收件箱。某人发了条微博后,给粉丝的信箱都投递一条数据。这样把计算逻辑从“读”的一端移到了“写”的一端。
    • 宽表:其实就是冗余字段。

    读写分离

    • 例如MySQL可以做集群,读写分离,读的节点可以多一些。

    批量

    • 可以参考拙作高并发场景下请求合并(批量)。

    高并发写

    数据分片

    • 例如MySQL分库分表。

    任务分片

    • 任务分片:例如把生产汽车的过程分成多道工序。虽然对每辆汽车来说依旧是串行的,但工序之间是并行的。对应代码与FutureTask的含义有所关联,FutureTask使用具体可参考拙作使用FutureTask优化业务代码。

    异步化

    • 书中举例短信验证码的例子:请求发送验证码加入到消息队列,由另一个程序消费。

    批量

    • 书中提到了广告计费系统的合并扣费,把用户分组,多个扣款的请求合并成一个,也就是说只需要调用一次数据库,减少了数据库压力,也提高了执行效率。虽然这是高并发写,但同样可以参考拙作高并发场景下请求合并(批量)。

    高可靠

    • 高可靠:为了让系统变得更靠谱,尽可能减少故障发生次数。总结下面7个有效措施。

    七板斧

    • 1、限流
    • 2、降级
    • 3、熔断
    • 4、超时与重试
    • 5、隔离
    • 6、灰度发布、滚动发布、备份、回滚
    • 7、监控体系和日志报警

    高可用

    • 高可用:为了故障发生后,故障恢复时间尽可能的短。要想快速恢复,要避免单点。

    高可用架构几个核心问题

    • 故障探测。
    • 脑裂问题。
    • 数据一致性。
    • 对客户端透明。
    • 高可用依赖的连环套问题。
  • 相关阅读:
    Python毕业设计开题报告房屋租赁租房数据分析和展示系统
    Qt+Win10使用QAxWidget控件实现远程桌面控制
    不同的方式检查Null
    python-爬虫-三字代码网站爬取
    数据仓库概念
    IDEA如何运行SpringBoot项目(超详细截图)
    不懂就学—什么是autoML?
    Linux学习总结
    基于SSM的鲜花商城系统
    Stable Diffusion 模型下载:A-Zovya RPG Artist Tools(RPG 大师工具箱)
  • 原文地址:https://blog.csdn.net/baidu_19473529/article/details/125907181
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号