大型互联网产品架构技术体系梳理

发布于: 2020 年 07 月 01 日

总结:业务增长倒逼架构升级

一般的架构演进流程:单机模式,集群模式,分布式系统,三者之间的差异可以参考:https://www.zhihu.com/question/20004877

由于本文需要解析的是大型互联网产品,当下的大型互联网一般都是分布式架构。

话说天下大事,合久必分,分久必合。其实系统的演进也类似遵循这样的准则。当前还出与由合到分的阶段,于是产生了当下流程的分布式系统,以及微服务架构。拆倒是拆得爽了,拆开之后,就涉及到协作的问题,可以直接预料导的问题如下:

  • 互斥问题怎么解?

  • 主节点怎么产生?

  • 共识问题?

  • 分布式事务怎么解?

  • 时间不同步怎么办?时钟问题

  • 如何做好负载?流量控制?

  • Cap之前如何权衡?

这些问题是设计分布式系统所需要的解决的问题。就算不是从零开始设计一个分布式系统或者框架,当下也逃不出是用分布是框架或者组件的需求。那么我们怎么来解这些问题呢?或者说,在业界是怎么解决这些问题的呢?下面请容许我一一道来

  1. 分布式互斥解法

  2. 集中式

  3. 分布式

  4. 令牌环解法

  5. 分布式锁

  6. 基于数据库

  7. 分布式选举

  8. bully

  9. raft

  10. zab

  11. 分布式共识

  12. 拜占庭将军问题

  13. PoW

  14. PoS

  15. DPoS

  16. 分布式事务

  17. 事务ACID

  18. CAP

  19. BASE

  20. 2PC

  21. 3PC

  22. 基于消息队列的最终一致性方案 -- 同步拆异步

  23. 时钟问题 -- 为了解决计算的准确性

  24. 墙上时钟

  25. 逻辑时钟 -- Lambert时钟(全序与偏序)

  26. 向量时钟

  27. 原子时钟

  28. 发号器

  29. 分布式资源调度

  30. 单体调度

  31. 最差匹配

  32. 最佳匹配

  33. 两层调度

  34. 第一层:任务与资源分配

  35. 第二层:资源管理与分配

  36. 共享状态调度

  37. 乐观并发调度

  38. 悲观并发调度

  39. 分布式通信

  40. 远程过程调用

  41. 远程方法调用

  42. 消息系统 -- 消息中间件

  43. 推送

  44. 发布订阅

  45. 负载均衡

  46. 轮询&加权轮询

  47. 随机

  48. 哈希

  49. 一致性哈希

  50. 有限负载一致性哈希

  51. 带虚拟节点的一致性哈希

  52. 流控算法

  53. 漏桶

  54. 令牌桶

  55. 冗余算法

  56. 三副本

  57. 纠删码

以上为之前的一些学习总结,更多的是从解决问题办法的原理方面来描述,其中可以窥见分布式系统中的一些问题以及解法,包括分布式节点选举,分布式共识,分布式一致,流控,负载均衡,通过冗余解决实现数据的可靠性,为了保证计算的正确性产生的时钟系统等。至于在解决具体的问题到底是选择什么样的组件或者框架,或者自研系统,就得深入理解业务场景,例如业务场景到底是AP场景还是TP场景?实时性要求高不高?并发高不高?读写比例?等等。就是具体的业务场景,也会有不同的细分,在不同的细分场景做出的技术选型也会有差异。

补充:在这里只是列举了之前分享的ppt的提纲,后期将内容填充进去,也当做自己的一些总结。

用户头像

lei Shi

关注

还未添加个人签名 2018.05.24 加入

还未添加个人简介

评论

发布
暂无评论
大型互联网产品架构技术体系梳理